In a previous change(https://crrev.com/c/5872759) we are creating an
Android InputReceiver on Viz, in this change we send the input transfer
token for receiver back to Browser so that it can be used for
transferring a touch sequence later.
This change does the following:
* Update `SetSurface` api in
`/content/public/browser/android/compositor.h` to return
std::optional<int> the surface id in case set surface leads to adding
a native widget in `GpuSurfaceTracker`.
* Add a binder call to `IGpuProcessCallback.aidl` for sending the input
transfer token back from Viz to Browser.
* Introduce InputTransferHandler for handling logic related to touch
transfer, it doesn't do much yet but more logic will be added
incrementally.
* A thread safe map from surface id to input transfer handler for
associating input transfer token with correct handler. There could be
multiple handlers in case of split window with multiple chrome
instances.
* Finally embedders using these to create input transfer handler, and
adding and removing them from the map.
Bug: 364201006
Change-Id: Iead01d6063512a3dcf7ec04fdcf0743f83478d05
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5899517
Reviewed-by: Colin Blundell <blundell@chromium.org>
Reviewed-by: Alexander Timin <altimin@chromium.org>
Reviewed-by: Jonathan Ross <jonross@chromium.org>
Reviewed-by: Kinuko Yasuda <kinuko@chromium.org>
Commit-Queue: Kartar Singh <kartarsingh@google.com>
Cr-Commit-Position: refs/heads/main@{#1371279}