Implement AddInputBlockCallback for remote APZCTreeManager
Categories
(GeckoView :: General, task, P3)
Tracking
(firefox96 fixed)
Tracking | Status | |
---|---|---|
firefox96 | --- | fixed |
People
(Reporter: jnicol, Assigned: jnicol)
References
Details
Attachments
(1 file)
(deleted),
text/x-phabricator-request
|
Details |
In bug 1633322 an API AddInputBlockCallback
was added to APZCTreeManager
. This is used by android, and since there is no GPU process on Android it was not implemented for APZCTreeManagerChild
.
I am now working on getting the GPU process running on Android, so we now need a remote implementation of this.
Updated•3 years ago
|
Assignee | ||
Comment 1•3 years ago
|
||
In bug 1633322 the AddInputBlockCallback API was added to
APZCTreeManager. This is only used by android, and since there is no
GPU process on Android it was not implemented for
APZCTreeManagerChild. This patch adds a remote APZCTreeManager
implementation in preparation for adding a GPU process for Android.
APZCTreeManagerChild::AddInputBlockCallback() works by maintaining a
local map of the added callbacks. It sends a message to the parent via
SendAddInputBlockCallback(), and in RecvAddInputBlockCallback() the
parent calls AddInputBlockCallback() on its local APZCTreeManager
instance. This callback is simply responsible for sending a message
back to the child with SendCallInputBlockCallback(). Upon receiving
this message the child will, finally, look up the original callback
from its local map and call it.
Some care must be taken with the intermediate callback described
above, as because APZCTreeManagerParent is not a refcounted type we
cannot safely capture a reference to it. Instead, we capture the
APZCTreeManagerParent's LayersId, and then look up the instance from
the CompositorBridgeParent using the ID.
Depends on D131120
Comment 3•3 years ago
|
||
bugherder |
Description
•