commit | 6a4a425fdd7343dab3948c2dce293c109e0aabf8 | [log] [tgz] |
---|---|---|
author | David Bokan <bokan@chromium.org> | Tue Dec 11 18:00:32 2018 |
committer | Commit Bot <commit-bot@chromium.org> | Tue Dec 11 18:00:32 2018 |
tree | 11d3191c229bf9d9cc4d73cc1b728f66658ab6f8 | |
parent | 0d5d9e6b4c1ede29757150b2c26c68a798578a73 [diff] |
[BlinkGenPropertyTrees] Fix layer commit for wheel handler region When a wheel event listener is added or removed on a page, we set each layer as having a WheelEventHandlerRegion equal to the entire bounds of the layer. This happens in Layer::PushPropertiesTo. This means that when an event listener is changed, we need to cause all layers to need a push properties and commit. Prior to this CL, this happens in LayerTreeHost::SetEventListenerProperties by setting SetNeedsFullTreeSync and SetSubtreePropertyChanged. However, as noted by surrounding comments, this looks wrong; SetNeedsFullTreeSync only causes the tree structure to be synced, properties aren't pushed. SetSubtreePropertyChanged causes a property sync only on the root layer. This works prior to BGPT because SetNeedsFullTreeSync causes a property tree rebuild during which all layers are marked as needing a property push. See PropertyTreeBuilderContext::BuildPropertyTreesInternal which calls SetLayerPropertyTreeChangedForChild for all child layers as the tree is built. When BGPT is turned on, property trees are built in Blink independent of the layer tree so this doesn't cause us to SetNeedsPushProperties. This CL fixes SetEventListenerProperties to set the correct flags to propagate the listener state to the active tree. This CL fixes: PointerLockBrowserTest.PointerLockWheelEventRouting TouchpadPinchBrowserTest.WheelListenerAllowingPinch/0 TouchpadPinchBrowserTest.WheelListenerAllowingPinch/1 With BGPT turned on. Bug: 912334,881011 Change-Id: I4446ccfd32de12e618219e5fa15c48f5093bcc98 Reviewed-on: https://chromium-review.googlesource.com/c/1369059 Reviewed-by: Philip Rogers <pdr@chromium.org> Commit-Queue: David Bokan <bokan@chromium.org> Cr-Commit-Position: refs/heads/master@{#615579}
Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all users to experience the web.
The project's web site is https://www.chromium.org.
Documentation in the source is rooted in docs/README.md.
Learn how to Get Around the Chromium Source Code Directory Structure .