Index: content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc |
diff --git a/content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc b/content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc |
index f75acf43d27b72b4ef89b946bac3ab5c37f595dc..be6774a75ff1952f915a1481b9508c26364f14bf 100644 |
--- a/content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc |
+++ b/content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc |
@@ -72,6 +72,10 @@ class RenderWidgetHostLatencyTrackerTest : public testing::Test { |
} |
} |
+ void HistogramTotalCountEq(const std::string& name, int count) { |
tdresser
2016/08/24 12:48:57
Since this contains an expectation, it should have
lanwei
2016/08/25 04:17:11
Done.
|
+ histogram_tester_->ExpectTotalCount(name, count); |
+ } |
+ |
RenderWidgetHostLatencyTracker* tracker() { return &tracker_; } |
void ResetHistograms() { |
histogram_tester_.reset(new base::HistogramTester()); |
@@ -90,7 +94,7 @@ class RenderWidgetHostLatencyTrackerTest : public testing::Test { |
}; |
TEST_F(RenderWidgetHostLatencyTrackerTest, TestHistograms) { |
- for (bool rendering_on_main : { false, true }) { |
+ for (bool rendering_on_main : {false, true}) { |
for (bool is_running_navigation_hint_task : {false, true}) { |
ResetHistograms(); |
{ |
@@ -99,7 +103,8 @@ TEST_F(RenderWidgetHostLatencyTrackerTest, TestHistograms) { |
scroll.timeStampSeconds = |
(base::TimeTicks::Now() - base::TimeTicks()).InSecondsF(); |
ui::LatencyInfo scroll_latency; |
- AddFakeComponents(*tracker(), &scroll_latency); |
+ scroll_latency.AddLatencyNumber( |
+ ui::INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT, 0, 0); |
AddRenderingScheduledComponent(&scroll_latency, rendering_on_main); |
tracker()->OnInputEvent(scroll, &scroll_latency); |
EXPECT_TRUE(scroll_latency.FindLatency( |
@@ -167,6 +172,24 @@ TEST_F(RenderWidgetHostLatencyTrackerTest, TestHistograms) { |
HistogramSizeEq("Event.Latency.TouchToScrollUpdateSwapBegin_" |
"IsRunningNavigationHintTask", |
is_running_navigation_hint_task ? 1 : 0)); |
+ EXPECT_TRUE(HistogramSizeEq( |
+ "Event.Latency.FirstScrollUpdate.FirstTouchToHandled_Main", |
+ rendering_on_main ? 1 : 0)); |
+ EXPECT_TRUE(HistogramSizeEq( |
+ "Event.Latency.FirstScrollUpdate.FirstTouchToHandled_Impl", |
+ rendering_on_main ? 0 : 1)); |
+ EXPECT_TRUE(HistogramSizeEq( |
+ "Event.Latency.FirstScrollUpdate.HandledToRendererSwap_Main", |
+ rendering_on_main ? 1 : 0)); |
+ EXPECT_TRUE(HistogramSizeEq( |
+ "Event.Latency.FirstScrollUpdate.HandledToRendererSwap_Impl", |
+ rendering_on_main ? 0 : 1)); |
+ EXPECT_TRUE(HistogramSizeEq( |
+ "Event.Latency.FirstScrollUpdate.RendererSwapToBrowserNotified", 1)); |
+ EXPECT_TRUE(HistogramSizeEq( |
+ "Event.Latency.FirstScrollUpdate.BrowserNotifiedToBeforeGpuSwap", 1)); |
+ EXPECT_TRUE( |
+ HistogramSizeEq("Event.Latency.FirstScrollUpdate.GpuSwap", 1)); |
EXPECT_TRUE( |
HistogramSizeEq("Event.Latency.ScrollUpdate.TouchToHandled_Main", |
rendering_on_main ? 1 : 0)); |
@@ -184,6 +207,81 @@ TEST_F(RenderWidgetHostLatencyTrackerTest, TestHistograms) { |
EXPECT_TRUE(HistogramSizeEq( |
"Event.Latency.ScrollUpdate.BrowserNotifiedToBeforeGpuSwap", 1)); |
EXPECT_TRUE(HistogramSizeEq("Event.Latency.ScrollUpdate.GpuSwap", 1)); |
+ |
+ { |
+ auto second_scroll = SyntheticWebGestureEventBuilder::BuildScrollUpdate( |
+ 5.f, -5.f, 0, blink::WebGestureDeviceTouchscreen); |
+ ui::LatencyInfo scroll_latency; |
+ scroll_latency.AddLatencyNumber( |
+ ui::INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT, 0, 0); |
+ scroll_latency.AddLatencyNumber( |
+ ui::INPUT_EVENT_LATENCY_TERMINATED_FRAME_SWAP_COMPONENT, 0, 0); |
+ scroll_latency.AddLatencyNumber( |
+ ui::INPUT_EVENT_GPU_SWAP_BUFFER_COMPONENT, 0, 0); |
+ scroll_latency.AddLatencyNumber( |
+ ui::INPUT_EVENT_LATENCY_RENDERER_SWAP_COMPONENT, 0, 0); |
+ scroll_latency.AddLatencyNumber( |
+ ui::INPUT_EVENT_BROWSER_RECEIVED_RENDERER_SWAP_COMPONENT, 0, 0); |
+ AddRenderingScheduledComponent(&scroll_latency, rendering_on_main); |
+ tracker()->OnInputEvent(second_scroll, &scroll_latency); |
+ EXPECT_TRUE(scroll_latency.FindLatency( |
+ ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, |
+ tracker()->latency_component_id(), nullptr)); |
+ EXPECT_TRUE(scroll_latency.FindLatency( |
+ ui::INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT, 0, nullptr)); |
+ EXPECT_FALSE(scroll_latency.FindLatency( |
+ ui::INPUT_EVENT_LATENCY_FIRST_SCROLL_UPDATE_ORIGINAL_COMPONENT, 0, |
+ nullptr)); |
+ EXPECT_EQ(1U, scroll_latency.input_coordinates_size()); |
+ tracker()->OnInputEventAck(second_scroll, &scroll_latency, |
+ INPUT_EVENT_ACK_STATE_NOT_CONSUMED); |
+ tracker()->OnFrameSwapped(scroll_latency, |
+ is_running_navigation_hint_task); |
+ } |
+ |
+ HistogramTotalCountEq("Event.Latency.TouchToFirstScrollUpdateSwapBegin", |
+ 1); |
+ HistogramTotalCountEq( |
+ "Event.Latency.TouchToFirstScrollUpdateSwapBegin_" |
+ "IsRunningNavigationHintTask", |
+ is_running_navigation_hint_task ? 1 : 0); |
+ HistogramTotalCountEq("Event.Latency.TouchToScrollUpdateSwapBegin", 2); |
+ HistogramTotalCountEq( |
+ "Event.Latency.TouchToScrollUpdateSwapBegin_" |
+ "IsRunningNavigationHintTask", |
+ is_running_navigation_hint_task ? 2 : 0); |
+ HistogramTotalCountEq( |
+ "Event.Latency.FirstScrollUpdate.FirstTouchToHandled_Main", |
+ rendering_on_main ? 1 : 0); |
+ HistogramTotalCountEq( |
+ "Event.Latency.FirstScrollUpdate.FirstTouchToHandled_Impl", |
+ rendering_on_main ? 0 : 1); |
+ HistogramTotalCountEq( |
+ "Event.Latency.FirstScrollUpdate.HandledToRendererSwap_Main", |
+ rendering_on_main ? 1 : 0); |
+ HistogramTotalCountEq( |
+ "Event.Latency.FirstScrollUpdate.HandledToRendererSwap_Impl", |
+ rendering_on_main ? 0 : 1); |
+ HistogramTotalCountEq( |
+ "Event.Latency.FirstScrollUpdate.RendererSwapToBrowserNotified", 1); |
+ HistogramTotalCountEq( |
+ "Event.Latency.FirstScrollUpdate.BrowserNotifiedToBeforeGpuSwap", 1); |
+ HistogramTotalCountEq("Event.Latency.FirstScrollUpdate.GpuSwap", 1); |
+ HistogramTotalCountEq("Event.Latency.ScrollUpdate.TouchToHandled_Main", |
+ rendering_on_main ? 2 : 0); |
+ HistogramTotalCountEq("Event.Latency.ScrollUpdate.TouchToHandled_Impl", |
+ rendering_on_main ? 0 : 2); |
+ HistogramTotalCountEq( |
+ "Event.Latency.ScrollUpdate.HandledToRendererSwap_Main", |
+ rendering_on_main ? 2 : 0); |
+ HistogramTotalCountEq( |
+ "Event.Latency.ScrollUpdate.HandledToRendererSwap_Impl", |
+ rendering_on_main ? 0 : 2); |
+ HistogramTotalCountEq( |
+ "Event.Latency.ScrollUpdate.RendererSwapToBrowserNotified", 2); |
+ HistogramTotalCountEq( |
+ "Event.Latency.ScrollUpdate.BrowserNotifiedToBeforeGpuSwap", 2); |
+ HistogramTotalCountEq("Event.Latency.ScrollUpdate.GpuSwap", 2); |
} |
} |
} |
@@ -265,6 +363,19 @@ TEST_F(RenderWidgetHostLatencyTrackerTest, |
EXPECT_TRUE( |
HistogramSizeEq("Event.Latency.TouchToFirstScrollUpdateSwapBegin", 1)); |
EXPECT_TRUE(HistogramSizeEq("Event.Latency.TouchToScrollUpdateSwapBegin", 1)); |
+ EXPECT_TRUE(HistogramSizeEq( |
+ "Event.Latency.FirstScrollUpdate.TouchToHandled_Main", 0)); |
+ EXPECT_TRUE(HistogramSizeEq( |
+ "Event.Latency.FirstScrollUpdate.TouchToHandled_Impl", 0)); |
+ EXPECT_TRUE(HistogramSizeEq( |
+ "Event.Latency.FirstScrollUpdate.HandledToRendererSwap_Main", 0)); |
+ EXPECT_TRUE(HistogramSizeEq( |
+ "Event.Latency.FirstScrollUpdate.HandledToRendererSwap_Impl", 0)); |
+ EXPECT_TRUE(HistogramSizeEq( |
+ "Event.Latency.FirstScrollUpdate.RendererSwapToBrowserNotified", 0)); |
+ EXPECT_TRUE(HistogramSizeEq( |
+ "Event.Latency.FirstScrollUpdate.BrowserNotifiedToBeforeGpuSwap", 0)); |
+ EXPECT_TRUE(HistogramSizeEq("Event.Latency.FirstScrollUpdate.GpuSwap", 0)); |
EXPECT_TRUE( |
HistogramSizeEq("Event.Latency.ScrollUpdate.TouchToHandled_Main", 0)); |
EXPECT_TRUE( |