summaryrefslogtreecommitdiffstats
path: root/cc
diff options
context:
space:
mode:
authordtapuska <dtapuska@chromium.org>2016-03-21 08:45:41 -0700
committerCommit bot <commit-bot@chromium.org>2016-03-21 15:46:39 +0000
commit1936b3f6dcdd44c9a7db4e1686437568a7dd1aad (patch)
tree9ef8d07b2501bf3e32a64307955d652c9f4bdbae /cc
parent8c23988bd97f67eec4e4091416a2cde98a4a5da6 (diff)
downloadchromium_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.cc26
-rw-r--r--cc/debug/debug_rect_history.h1
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);