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[] = ...@@ -39,6 +39,8 @@ const char kHistogramFromGWSParseDuration[] =
"PageLoad.Clients.FromGoogleSearch.ParseTiming.ParseDuration"; "PageLoad.Clients.FromGoogleSearch.ParseTiming.ParseDuration";
const char kHistogramFromGWSParseStart[] = const char kHistogramFromGWSParseStart[] =
"PageLoad.Clients.FromGoogleSearch.ParseTiming.NavigationToParseStart"; "PageLoad.Clients.FromGoogleSearch.ParseTiming.NavigationToParseStart";
const char kHistogramFromGWSFirstInputDelay[] =
"PageLoad.Clients.FromGoogleSearch.InteractiveTiming.FirstInputDelay";
const char kHistogramFromGWSAbortNewNavigationBeforeCommit[] = const char kHistogramFromGWSAbortNewNavigationBeforeCommit[] =
"PageLoad.Clients.FromGoogleSearch.Experimental.AbortTiming.NewNavigation." "PageLoad.Clients.FromGoogleSearch.Experimental.AbortTiming.NewNavigation."
...@@ -410,6 +412,12 @@ void FromGWSPageLoadMetricsObserver::OnFirstContentfulPaintInPage( ...@@ -410,6 +412,12 @@ void FromGWSPageLoadMetricsObserver::OnFirstContentfulPaintInPage(
logger_.OnFirstContentfulPaintInPage(timing, extra_info); 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( void FromGWSPageLoadMetricsObserver::OnParseStart(
const page_load_metrics::mojom::PageLoadTiming& timing, const page_load_metrics::mojom::PageLoadTiming& timing,
const page_load_metrics::PageLoadExtraInfo& extra_info) { const page_load_metrics::PageLoadExtraInfo& extra_info) {
...@@ -616,6 +624,16 @@ void FromGWSPageLoadMetricsLogger::OnFirstContentfulPaintInPage( ...@@ -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( void FromGWSPageLoadMetricsLogger::OnParseStart(
const page_load_metrics::mojom::PageLoadTiming& timing, const page_load_metrics::mojom::PageLoadTiming& timing,
const page_load_metrics::PageLoadExtraInfo& extra_info) { const page_load_metrics::PageLoadExtraInfo& extra_info) {
......
...@@ -22,6 +22,7 @@ extern const char kHistogramFromGWSFirstContentfulPaint[]; ...@@ -22,6 +22,7 @@ extern const char kHistogramFromGWSFirstContentfulPaint[];
extern const char kHistogramFromGWSParseStartToFirstContentfulPaint[]; extern const char kHistogramFromGWSParseStartToFirstContentfulPaint[];
extern const char kHistogramFromGWSParseDuration[]; extern const char kHistogramFromGWSParseDuration[];
extern const char kHistogramFromGWSParseStart[]; extern const char kHistogramFromGWSParseStart[];
extern const char kHistogramFromGWSFirstInputDelay[];
extern const char kHistogramFromGWSAbortStopBeforePaint[]; extern const char kHistogramFromGWSAbortStopBeforePaint[];
extern const char kHistogramFromGWSAbortStopBeforeInteraction[]; extern const char kHistogramFromGWSAbortStopBeforeInteraction[];
extern const char kHistogramFromGWSAbortStopBeforeCommit[]; extern const char kHistogramFromGWSAbortStopBeforeCommit[];
...@@ -93,6 +94,9 @@ class FromGWSPageLoadMetricsLogger { ...@@ -93,6 +94,9 @@ class FromGWSPageLoadMetricsLogger {
void OnParseStop(const page_load_metrics::mojom::PageLoadTiming& timing, void OnParseStop(const page_load_metrics::mojom::PageLoadTiming& timing,
const page_load_metrics::PageLoadExtraInfo& extra_info); const page_load_metrics::PageLoadExtraInfo& extra_info);
void OnUserInput(const blink::WebInputEvent& event); void OnUserInput(const blink::WebInputEvent& event);
void OnFirstInputInPage(
const page_load_metrics::mojom::PageLoadTiming& timing,
const page_load_metrics::PageLoadExtraInfo& extra_info);
void FlushMetricsOnAppEnterBackground( void FlushMetricsOnAppEnterBackground(
const page_load_metrics::mojom::PageLoadTiming& timing, const page_load_metrics::mojom::PageLoadTiming& timing,
const page_load_metrics::PageLoadExtraInfo& extra_info); const page_load_metrics::PageLoadExtraInfo& extra_info);
...@@ -155,6 +159,9 @@ class FromGWSPageLoadMetricsObserver ...@@ -155,6 +159,9 @@ class FromGWSPageLoadMetricsObserver
void OnFirstContentfulPaintInPage( void OnFirstContentfulPaintInPage(
const page_load_metrics::mojom::PageLoadTiming& timing, const page_load_metrics::mojom::PageLoadTiming& timing,
const page_load_metrics::PageLoadExtraInfo& extra_info) override; 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( void OnParseStart(
const page_load_metrics::mojom::PageLoadTiming& timing, const page_load_metrics::mojom::PageLoadTiming& timing,
const page_load_metrics::PageLoadExtraInfo& extra_info) override; const page_load_metrics::PageLoadExtraInfo& extra_info) override;
......
...@@ -156,6 +156,10 @@ TEST_F(FromGWSPageLoadMetricsObserverTest, SearchPreviousCommittedUrl1) { ...@@ -156,6 +156,10 @@ TEST_F(FromGWSPageLoadMetricsObserverTest, SearchPreviousCommittedUrl1) {
base::TimeDelta::FromMilliseconds(640); base::TimeDelta::FromMilliseconds(640);
timing.document_timing->load_event_start = timing.document_timing->load_event_start =
base::TimeDelta::FromMilliseconds(1280); 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); PopulateRequiredTimingFields(&timing);
NavigateAndCommit(GURL("https://www.google.com/webhp?q=test")); NavigateAndCommit(GURL("https://www.google.com/webhp?q=test"));
NavigateAndCommit(GURL(kExampleUrl)); NavigateAndCommit(GURL(kExampleUrl));
...@@ -224,6 +228,12 @@ TEST_F(FromGWSPageLoadMetricsObserverTest, SearchPreviousCommittedUrl1) { ...@@ -224,6 +228,12 @@ TEST_F(FromGWSPageLoadMetricsObserverTest, SearchPreviousCommittedUrl1) {
internal::kHistogramFromGWSLoad, internal::kHistogramFromGWSLoad,
timing.document_timing->load_event_start.value().InMilliseconds(), 1); 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( auto entries = test_ukm_recorder().GetEntriesByName(
ukm::builders::PageLoad_FromGoogleSearch::kEntryName); ukm::builders::PageLoad_FromGoogleSearch::kEntryName);
EXPECT_EQ(1u, entries.size()); 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