Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(713)

Unified Diff: content/browser/renderer_host/input/render_widget_host_latency_tracker_unittest.cc

Issue 2268163002: Add sub-metrics for Event.Latency.TouchToFirstScrollUpdateSwapBegin (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: git cl try Created 4 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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(

Powered by Google App Engine
This is Rietveld 408576698