Commit dc34b9c2 authored by Annie Sullivan's avatar Annie Sullivan Committed by Commit Bot

Add InteractiveTiming.FirstInputDelay to PageLoad.Clients.FromGoogleSearch UMA metric.

Change-Id: I90ab7c395012cedcccd48b54423b75a5b7a3906d
Reviewed-on: https://chromium-review.googlesource.com/1213550Reviewed-by: default avatarBryan McQuade <bmcquade@chromium.org>
Commit-Queue: Annie Sullivan <sullivan@chromium.org>
Cr-Commit-Position: refs/heads/master@{#590458}
parent af12279a
......@@ -39,6 +39,8 @@ const char kHistogramFromGWSParseDuration[] =
"PageLoad.Clients.FromGoogleSearch.ParseTiming.ParseDuration";
const char kHistogramFromGWSParseStart[] =
"PageLoad.Clients.FromGoogleSearch.ParseTiming.NavigationToParseStart";
const char kHistogramFromGWSFirstInputDelay[] =
"PageLoad.Clients.FromGoogleSearch.InteractiveTiming.FirstInputDelay";
const char kHistogramFromGWSAbortNewNavigationBeforeCommit[] =
"PageLoad.Clients.FromGoogleSearch.Experimental.AbortTiming.NewNavigation."
......@@ -410,6 +412,12 @@ void FromGWSPageLoadMetricsObserver::OnFirstContentfulPaintInPage(
logger_.OnFirstContentfulPaintInPage(timing, extra_info);
}
void FromGWSPageLoadMetricsObserver::OnFirstInputInPage(
const page_load_metrics::mojom::PageLoadTiming& timing,
const page_load_metrics::PageLoadExtraInfo& extra_info) {
logger_.OnFirstInputInPage(timing, extra_info);
}
void FromGWSPageLoadMetricsObserver::OnParseStart(
const page_load_metrics::mojom::PageLoadTiming& timing,
const page_load_metrics::PageLoadExtraInfo& extra_info) {
......@@ -616,6 +624,16 @@ void FromGWSPageLoadMetricsLogger::OnFirstContentfulPaintInPage(
}
}
void FromGWSPageLoadMetricsLogger::OnFirstInputInPage(
const page_load_metrics::mojom::PageLoadTiming& timing,
const page_load_metrics::PageLoadExtraInfo& extra_info) {
if (ShouldLogForegroundEventAfterCommit(
timing.interactive_timing->first_input_delay, extra_info)) {
PAGE_LOAD_HISTOGRAM(internal::kHistogramFromGWSFirstInputDelay,
timing.interactive_timing->first_input_delay.value());
}
}
void FromGWSPageLoadMetricsLogger::OnParseStart(
const page_load_metrics::mojom::PageLoadTiming& timing,
const page_load_metrics::PageLoadExtraInfo& extra_info) {
......
......@@ -22,6 +22,7 @@ extern const char kHistogramFromGWSFirstContentfulPaint[];
extern const char kHistogramFromGWSParseStartToFirstContentfulPaint[];
extern const char kHistogramFromGWSParseDuration[];
extern const char kHistogramFromGWSParseStart[];
extern const char kHistogramFromGWSFirstInputDelay[];
extern const char kHistogramFromGWSAbortStopBeforePaint[];
extern const char kHistogramFromGWSAbortStopBeforeInteraction[];
extern const char kHistogramFromGWSAbortStopBeforeCommit[];
......@@ -93,6 +94,9 @@ class FromGWSPageLoadMetricsLogger {
void OnParseStop(const page_load_metrics::mojom::PageLoadTiming& timing,
const page_load_metrics::PageLoadExtraInfo& extra_info);
void OnUserInput(const blink::WebInputEvent& event);
void OnFirstInputInPage(
const page_load_metrics::mojom::PageLoadTiming& timing,
const page_load_metrics::PageLoadExtraInfo& extra_info);
void FlushMetricsOnAppEnterBackground(
const page_load_metrics::mojom::PageLoadTiming& timing,
const page_load_metrics::PageLoadExtraInfo& extra_info);
......@@ -155,6 +159,9 @@ class FromGWSPageLoadMetricsObserver
void OnFirstContentfulPaintInPage(
const page_load_metrics::mojom::PageLoadTiming& timing,
const page_load_metrics::PageLoadExtraInfo& extra_info) override;
void OnFirstInputInPage(
const page_load_metrics::mojom::PageLoadTiming& timing,
const page_load_metrics::PageLoadExtraInfo& extra_info) override;
void OnParseStart(
const page_load_metrics::mojom::PageLoadTiming& timing,
const page_load_metrics::PageLoadExtraInfo& extra_info) override;
......
......@@ -156,6 +156,10 @@ TEST_F(FromGWSPageLoadMetricsObserverTest, SearchPreviousCommittedUrl1) {
base::TimeDelta::FromMilliseconds(640);
timing.document_timing->load_event_start =
base::TimeDelta::FromMilliseconds(1280);
timing.interactive_timing->first_input_delay =
base::TimeDelta::FromMilliseconds(50);
timing.interactive_timing->first_input_timestamp =
base::TimeDelta::FromMilliseconds(1400);
PopulateRequiredTimingFields(&timing);
NavigateAndCommit(GURL("https://www.google.com/webhp?q=test"));
NavigateAndCommit(GURL(kExampleUrl));
......@@ -224,6 +228,12 @@ TEST_F(FromGWSPageLoadMetricsObserverTest, SearchPreviousCommittedUrl1) {
internal::kHistogramFromGWSLoad,
timing.document_timing->load_event_start.value().InMilliseconds(), 1);
histogram_tester().ExpectTotalCount(
internal::kHistogramFromGWSFirstInputDelay, 1);
histogram_tester().ExpectBucketCount(
internal::kHistogramFromGWSFirstInputDelay,
timing.interactive_timing->first_input_delay.value().InMilliseconds(), 1);
auto entries = test_ukm_recorder().GetEntriesByName(
ukm::builders::PageLoad_FromGoogleSearch::kEntryName);
EXPECT_EQ(1u, entries.size());
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment