Resend unconsumed scroll updates from guest back to embedder.
(WebView scroll bubbling)
This CL provides a pathway for a guest process to return
unconsumed scroll updates to its embedder, in order to allow
scroll bubbling. The events are marked with the embedder's
BrowserPlugin instance id so that when the BrowserPlugin sees
the re-sent event it will know to mark it as not-handled so
the normal bubbling process can occur within Blink.
Note that any scroll event that targets a WebView guest is,
by definition, on Blink's main-thread so that it can be
processed by BrowserPlugin and forwarded to the guest.
ScrollUpdates going to the guest outside of a
GestureScrollBegin and GestureScrollEnd/GestureFLingStart
pair are surpressed: these are generated by fling curves, but
will cause problems in the guest's InputHandlerProxy since it
never expects to get them.
This CL depends on
https://codereview.chromium.org/1308313005/
landing first as it provides the necessary modifications to
events to (1) carry the resend source info, and (2) forward
GestureFlingStart to the guest via BrowserPlugin.
Finally: note that when WebView-tag transitions to OOPIF that
much of this code will be redundant and can be removed as
part of the larger effort to cleanup (i.e. remove)
BrowserPlugin.
BUG=
491940
Committed:
https://crrev.com/73b15a29e89b0150b8ba5ed4b43af298d30bc3da
Cr-Commit-Position: refs/heads/master@{#350838}