diff options
author | dtapuska <dtapuska@chromium.org> | 2016-03-21 08:45:41 -0700 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-21 15:46:39 +0000 |
commit | 1936b3f6dcdd44c9a7db4e1686437568a7dd1aad (patch) | |
tree | 9ef8d07b2501bf3e32a64307955d652c9f4bdbae /cc | |
parent | 8c23988bd97f67eec4e4091416a2cde98a4a5da6 (diff) | |
download | chromium_src-1936b3f6dcdd44c9a7db4e1686437568a7dd1aad.zip chromium_src-1936b3f6dcdd44c9a7db4e1686437568a7dd1aad.tar.gz chromium_src-1936b3f6dcdd44c9a7db4e1686437568a7dd1aad.tar.bz2 |
Re-land fix display of wheel event listeners on a page.
Fields were getting duplicated for scrollbars. Mark the entire
inner viewport as blocked on scroll if we have a wheel listener
we don't need to iterate the tree.
This was reverted in https://codereview.chromium.org/1816723003 because
the sheriff thought it caused a build failure; but the actual failure was
from merge of https://chromium.googlesource.com/chromium/src/+/58cef5be289f5004932682c17694aaa7724bae70
and subsequent fix https://chromium.googlesource.com/chromium/src/+/98aba017dee34d0c08df009095e1fe7bbd6acb49
BUG=595591
CQ_INCLUDE_TRYBOTS=tryserver.blink:linux_blink_rel
TBR=aelias@chromium.org
Review URL: https://codereview.chromium.org/1816083002
Cr-Commit-Position: refs/heads/master@{#382295}
Diffstat (limited to 'cc')
-rw-r--r-- | cc/debug/debug_rect_history.cc | 26 | ||||
-rw-r--r-- | cc/debug/debug_rect_history.h | 1 |
2 files changed, 13 insertions, 14 deletions
diff --git a/cc/debug/debug_rect_history.cc b/cc/debug/debug_rect_history.cc index 80c58383..cc8d123 100644 --- a/cc/debug/debug_rect_history.cc +++ b/cc/debug/debug_rect_history.cc @@ -174,26 +174,26 @@ void DebugRectHistory::SaveTouchEventHandlerRectsCallback(LayerImpl* layer) { } } -void DebugRectHistory::SaveWheelEventHandlerRects(LayerImpl* layer) { - LayerTreeHostCommon::CallFunctionForSubtree(layer, [this](LayerImpl* layer) { - SaveWheelEventHandlerRectsCallback(layer); - }); -} - -void DebugRectHistory::SaveWheelEventHandlerRectsCallback(LayerImpl* layer) { +void DebugRectHistory::SaveWheelEventHandlerRects(LayerImpl* root_layer) { EventListenerProperties event_properties = - layer->layer_tree_impl()->event_listener_properties( + root_layer->layer_tree_impl()->event_listener_properties( EventListenerClass::kMouseWheel); if (event_properties == EventListenerProperties::kNone || - (layer->layer_tree_impl()->settings().use_mouse_wheel_gestures && + (root_layer->layer_tree_impl()->settings().use_mouse_wheel_gestures && event_properties == EventListenerProperties::kPassive)) { return; } - debug_rects_.push_back( - DebugRect(WHEEL_EVENT_HANDLER_RECT_TYPE, - MathUtil::MapEnclosingClippedRect(layer->ScreenSpaceTransform(), - gfx::Rect(layer->bounds())))); + // Since the wheel event handlers property is on the entire layer tree just + // mark inner viewport if have listeners. + LayerImpl* inner_viewport = + root_layer->layer_tree_impl()->InnerViewportScrollLayer(); + if (!inner_viewport) + return; + debug_rects_.push_back(DebugRect( + WHEEL_EVENT_HANDLER_RECT_TYPE, + MathUtil::MapEnclosingClippedRect(inner_viewport->ScreenSpaceTransform(), + gfx::Rect(inner_viewport->bounds())))); } void DebugRectHistory::SaveScrollEventHandlerRects(LayerImpl* layer) { diff --git a/cc/debug/debug_rect_history.h b/cc/debug/debug_rect_history.h index bea3467..0057817 100644 --- a/cc/debug/debug_rect_history.h +++ b/cc/debug/debug_rect_history.h @@ -87,7 +87,6 @@ class DebugRectHistory { void SaveTouchEventHandlerRects(LayerImpl* layer); void SaveTouchEventHandlerRectsCallback(LayerImpl* layer); void SaveWheelEventHandlerRects(LayerImpl* layer); - void SaveWheelEventHandlerRectsCallback(LayerImpl* layer); void SaveScrollEventHandlerRects(LayerImpl* layer); void SaveScrollEventHandlerRectsCallback(LayerImpl* layer); void SaveNonFastScrollableRects(LayerImpl* layer); |