Index: cc/trees/layer_tree_host_impl.cc |
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc |
index 88873601ec85467f6e2235e8eb5fc89502be5707..fd91b10aaf1f8193cd446bf28ab251e048ae4ca2 100644 |
--- a/cc/trees/layer_tree_host_impl.cc |
+++ b/cc/trees/layer_tree_host_impl.cc |
@@ -36,6 +36,7 @@ |
#include "cc/input/scroll_elasticity_helper.h" |
#include "cc/input/scroll_state.h" |
#include "cc/input/scrollbar_animation_controller.h" |
+#include "cc/input/scroller_size_metrics.h" |
#include "cc/layers/append_quads_data.h" |
#include "cc/layers/effect_tree_layer_list_iterator.h" |
#include "cc/layers/heads_up_display_layer_impl.h" |
@@ -2768,6 +2769,22 @@ InputHandler::ScrollStatus LayerTreeHostImpl::ScrollBegin( |
scrolling_node = FindScrollNodeForDeviceViewportPoint( |
device_viewport_point, type, layer_impl, &scroll_on_main_thread, |
&scroll_status.main_thread_scrolling_reasons); |
+ if (!scroll_on_main_thread && scrolling_node && |
+ (settings_.is_layer_tree_for_subframe || |
+ (!scrolling_node->scrolls_outer_viewport && |
+ !scrolling_node->scrolls_inner_viewport))) { |
+ if (IsWheelBasedScroll(type)) { |
+ UMA_HISTOGRAM_CUSTOM_COUNTS( |
+ "Event.Scroll.ScrollerSize.OnScroll_Wheel", |
+ scrolling_node->scroll_clip_layer_bounds.GetArea(), 1, |
+ kScrollerSizeLargestBucket, kScrollerSizeBucketCount); |
+ } else { |
+ UMA_HISTOGRAM_CUSTOM_COUNTS( |
+ "Event.Scroll.ScrollerSize.OnScroll_Touch", |
+ scrolling_node->scroll_clip_layer_bounds.GetArea(), 1, |
+ kScrollerSizeLargestBucket, kScrollerSizeBucketCount); |
+ } |
+ } |
} |
if (scroll_on_main_thread) { |