| Index: chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc
|
| diff --git a/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc
|
| index fe5d019c5a1f82a08ab2284710d36b0653318820..9ff167c6e25c5c44f713b248f8b0b71a630782c7 100644
|
| --- a/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc
|
| +++ b/chrome/browser/page_load_metrics/observers/core_page_load_metrics_observer.cc
|
| @@ -283,58 +283,58 @@ CorePageLoadMetricsObserver::OnCommit(
|
| }
|
|
|
| void CorePageLoadMetricsObserver::OnDomContentLoadedEventStart(
|
| - const page_load_metrics::PageLoadTiming& timing,
|
| + const page_load_metrics::mojom::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| if (WasStartedInForegroundOptionalEventInForeground(
|
| - timing.document_timing.dom_content_loaded_event_start, info)) {
|
| + timing.document_timing->dom_content_loaded_event_start, info)) {
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kHistogramDomContentLoaded,
|
| - timing.document_timing.dom_content_loaded_event_start.value());
|
| + timing.document_timing->dom_content_loaded_event_start.value());
|
| } else {
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kBackgroundHistogramDomContentLoaded,
|
| - timing.document_timing.dom_content_loaded_event_start.value());
|
| + timing.document_timing->dom_content_loaded_event_start.value());
|
| }
|
| }
|
|
|
| void CorePageLoadMetricsObserver::OnLoadEventStart(
|
| - const page_load_metrics::PageLoadTiming& timing,
|
| + const page_load_metrics::mojom::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| if (WasStartedInForegroundOptionalEventInForeground(
|
| - timing.document_timing.load_event_start, info)) {
|
| + timing.document_timing->load_event_start, info)) {
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramLoad,
|
| - timing.document_timing.load_event_start.value());
|
| + timing.document_timing->load_event_start.value());
|
| } else {
|
| PAGE_LOAD_HISTOGRAM(internal::kBackgroundHistogramLoad,
|
| - timing.document_timing.load_event_start.value());
|
| + timing.document_timing->load_event_start.value());
|
| }
|
| }
|
|
|
| void CorePageLoadMetricsObserver::OnFirstLayout(
|
| - const page_load_metrics::PageLoadTiming& timing,
|
| + const page_load_metrics::mojom::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| if (WasStartedInForegroundOptionalEventInForeground(
|
| - timing.document_timing.first_layout, info)) {
|
| + timing.document_timing->first_layout, info)) {
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstLayout,
|
| - timing.document_timing.first_layout.value());
|
| + timing.document_timing->first_layout.value());
|
| } else {
|
| PAGE_LOAD_HISTOGRAM(internal::kBackgroundHistogramFirstLayout,
|
| - timing.document_timing.first_layout.value());
|
| + timing.document_timing->first_layout.value());
|
| }
|
| }
|
|
|
| void CorePageLoadMetricsObserver::OnFirstPaintInPage(
|
| - const page_load_metrics::PageLoadTiming& timing,
|
| + const page_load_metrics::mojom::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| first_paint_ =
|
| - info.navigation_start + timing.paint_timing.first_paint.value();
|
| + info.navigation_start + timing.paint_timing->first_paint.value();
|
| if (WasStartedInForegroundOptionalEventInForeground(
|
| - timing.paint_timing.first_paint, info)) {
|
| + timing.paint_timing->first_paint, info)) {
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstPaint,
|
| - timing.paint_timing.first_paint.value());
|
| + timing.paint_timing->first_paint.value());
|
| } else {
|
| PAGE_LOAD_HISTOGRAM(internal::kBackgroundHistogramFirstPaint,
|
| - timing.paint_timing.first_paint.value());
|
| + timing.paint_timing->first_paint.value());
|
| }
|
|
|
| // Record the time to first paint for pages which were:
|
| @@ -343,55 +343,56 @@ void CorePageLoadMetricsObserver::OnFirstPaintInPage(
|
| // - Not moved back to the background prior to the first paint.
|
| if (!info.started_in_foreground && info.first_foreground_time &&
|
| info.first_foreground_time.value() <=
|
| - timing.paint_timing.first_paint.value() &&
|
| - (!info.first_background_time || timing.paint_timing.first_paint.value() <=
|
| - info.first_background_time.value())) {
|
| + timing.paint_timing->first_paint.value() &&
|
| + (!info.first_background_time ||
|
| + timing.paint_timing->first_paint.value() <=
|
| + info.first_background_time.value())) {
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramForegroundToFirstPaint,
|
| - timing.paint_timing.first_paint.value() -
|
| + timing.paint_timing->first_paint.value() -
|
| info.first_foreground_time.value());
|
| }
|
| }
|
|
|
| void CorePageLoadMetricsObserver::OnFirstTextPaintInPage(
|
| - const page_load_metrics::PageLoadTiming& timing,
|
| + const page_load_metrics::mojom::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| if (WasStartedInForegroundOptionalEventInForeground(
|
| - timing.paint_timing.first_text_paint, info)) {
|
| + timing.paint_timing->first_text_paint, info)) {
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstTextPaint,
|
| - timing.paint_timing.first_text_paint.value());
|
| + timing.paint_timing->first_text_paint.value());
|
| } else {
|
| PAGE_LOAD_HISTOGRAM(internal::kBackgroundHistogramFirstTextPaint,
|
| - timing.paint_timing.first_text_paint.value());
|
| + timing.paint_timing->first_text_paint.value());
|
| }
|
| }
|
|
|
| void CorePageLoadMetricsObserver::OnFirstImagePaintInPage(
|
| - const page_load_metrics::PageLoadTiming& timing,
|
| + const page_load_metrics::mojom::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| if (WasStartedInForegroundOptionalEventInForeground(
|
| - timing.paint_timing.first_image_paint, info)) {
|
| + timing.paint_timing->first_image_paint, info)) {
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstImagePaint,
|
| - timing.paint_timing.first_image_paint.value());
|
| + timing.paint_timing->first_image_paint.value());
|
| } else {
|
| PAGE_LOAD_HISTOGRAM(internal::kBackgroundHistogramFirstImagePaint,
|
| - timing.paint_timing.first_image_paint.value());
|
| + timing.paint_timing->first_image_paint.value());
|
| }
|
| }
|
|
|
| void CorePageLoadMetricsObserver::OnFirstContentfulPaintInPage(
|
| - const page_load_metrics::PageLoadTiming& timing,
|
| + const page_load_metrics::mojom::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| if (WasStartedInForegroundOptionalEventInForeground(
|
| - timing.paint_timing.first_contentful_paint, info)) {
|
| + timing.paint_timing->first_contentful_paint, info)) {
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstContentfulPaint,
|
| - timing.paint_timing.first_contentful_paint.value());
|
| + timing.paint_timing->first_contentful_paint.value());
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramParseStartToFirstContentfulPaint,
|
| - timing.paint_timing.first_contentful_paint.value() -
|
| - timing.parse_timing.parse_start.value());
|
| + timing.paint_timing->first_contentful_paint.value() -
|
| + timing.parse_timing->parse_start.value());
|
|
|
| if (was_no_store_main_resource_) {
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstContentfulPaintNoStore,
|
| - timing.paint_timing.first_contentful_paint.value());
|
| + timing.paint_timing->first_contentful_paint.value());
|
| }
|
|
|
| // TODO(bmcquade): consider adding a histogram that uses
|
| @@ -399,29 +400,30 @@ void CorePageLoadMetricsObserver::OnFirstContentfulPaintInPage(
|
| if (info.user_initiated_info.browser_initiated ||
|
| info.user_initiated_info.user_gesture) {
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstContentfulPaintUserInitiated,
|
| - timing.paint_timing.first_contentful_paint.value());
|
| + timing.paint_timing->first_contentful_paint.value());
|
| }
|
|
|
| if (timing.style_sheet_timing
|
| - .author_style_sheet_parse_duration_before_fcp) {
|
| + ->author_style_sheet_parse_duration_before_fcp) {
|
| PAGE_LOAD_HISTOGRAM(
|
| "PageLoad.CSSTiming.Parse.BeforeFirstContentfulPaint",
|
| - timing.style_sheet_timing.author_style_sheet_parse_duration_before_fcp
|
| - .value());
|
| + timing.style_sheet_timing
|
| + ->author_style_sheet_parse_duration_before_fcp.value());
|
| }
|
| - if (timing.style_sheet_timing.update_style_duration_before_fcp) {
|
| + if (timing.style_sheet_timing->update_style_duration_before_fcp) {
|
| PAGE_LOAD_HISTOGRAM(
|
| "PageLoad.CSSTiming.Update.BeforeFirstContentfulPaint",
|
| - timing.style_sheet_timing.update_style_duration_before_fcp.value());
|
| + timing.style_sheet_timing->update_style_duration_before_fcp.value());
|
| }
|
| if (timing.style_sheet_timing
|
| - .author_style_sheet_parse_duration_before_fcp ||
|
| - timing.style_sheet_timing.update_style_duration_before_fcp) {
|
| + ->author_style_sheet_parse_duration_before_fcp ||
|
| + timing.style_sheet_timing->update_style_duration_before_fcp) {
|
| PAGE_LOAD_HISTOGRAM(
|
| "PageLoad.CSSTiming.ParseAndUpdate.BeforeFirstContentfulPaint",
|
| - timing.style_sheet_timing.author_style_sheet_parse_duration_before_fcp
|
| - .value_or(base::TimeDelta()) +
|
| - timing.style_sheet_timing.update_style_duration_before_fcp
|
| + timing.style_sheet_timing
|
| + ->author_style_sheet_parse_duration_before_fcp.value_or(
|
| + base::TimeDelta()) +
|
| + timing.style_sheet_timing->update_style_duration_before_fcp
|
| .value_or(base::TimeDelta()));
|
| }
|
|
|
| @@ -429,31 +431,31 @@ void CorePageLoadMetricsObserver::OnFirstContentfulPaintInPage(
|
| case LOAD_TYPE_RELOAD:
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kHistogramLoadTypeFirstContentfulPaintReload,
|
| - timing.paint_timing.first_contentful_paint.value());
|
| + timing.paint_timing->first_contentful_paint.value());
|
| // TODO(bmcquade): consider adding a histogram that uses
|
| // UserInputInfo.user_input_event.
|
| if (info.user_initiated_info.browser_initiated ||
|
| info.user_initiated_info.user_gesture) {
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kHistogramLoadTypeFirstContentfulPaintReloadByGesture,
|
| - timing.paint_timing.first_contentful_paint.value());
|
| + timing.paint_timing->first_contentful_paint.value());
|
| }
|
| break;
|
| case LOAD_TYPE_FORWARD_BACK:
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kHistogramLoadTypeFirstContentfulPaintForwardBack,
|
| - timing.paint_timing.first_contentful_paint.value());
|
| + timing.paint_timing->first_contentful_paint.value());
|
| if (was_no_store_main_resource_) {
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::
|
| kHistogramLoadTypeFirstContentfulPaintForwardBackNoStore,
|
| - timing.paint_timing.first_contentful_paint.value());
|
| + timing.paint_timing->first_contentful_paint.value());
|
| }
|
| break;
|
| case LOAD_TYPE_NEW_NAVIGATION:
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kHistogramLoadTypeFirstContentfulPaintNewNavigation,
|
| - timing.paint_timing.first_contentful_paint.value());
|
| + timing.paint_timing->first_contentful_paint.value());
|
| break;
|
| case LOAD_TYPE_NONE:
|
| NOTREACHED();
|
| @@ -461,28 +463,28 @@ void CorePageLoadMetricsObserver::OnFirstContentfulPaintInPage(
|
| }
|
| } else {
|
| PAGE_LOAD_HISTOGRAM(internal::kBackgroundHistogramFirstContentfulPaint,
|
| - timing.paint_timing.first_contentful_paint.value());
|
| + timing.paint_timing->first_contentful_paint.value());
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kBackgroundHistogramParseStartToFirstContentfulPaint,
|
| - timing.paint_timing.first_contentful_paint.value() -
|
| - timing.parse_timing.parse_start.value());
|
| + timing.paint_timing->first_contentful_paint.value() -
|
| + timing.parse_timing->parse_start.value());
|
| }
|
| }
|
|
|
| void CorePageLoadMetricsObserver::OnFirstMeaningfulPaintInMainFrameDocument(
|
| - const page_load_metrics::PageLoadTiming& timing,
|
| + const page_load_metrics::mojom::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| base::TimeTicks paint = info.navigation_start +
|
| - timing.paint_timing.first_meaningful_paint.value();
|
| + timing.paint_timing->first_meaningful_paint.value();
|
| if (first_user_interaction_after_first_paint_.is_null() ||
|
| paint < first_user_interaction_after_first_paint_) {
|
| if (WasStartedInForegroundOptionalEventInForeground(
|
| - timing.paint_timing.first_meaningful_paint, info)) {
|
| + timing.paint_timing->first_meaningful_paint, info)) {
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstMeaningfulPaint,
|
| - timing.paint_timing.first_meaningful_paint.value());
|
| + timing.paint_timing->first_meaningful_paint.value());
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramParseStartToFirstMeaningfulPaint,
|
| - timing.paint_timing.first_meaningful_paint.value() -
|
| - timing.parse_timing.parse_start.value());
|
| + timing.paint_timing->first_meaningful_paint.value() -
|
| + timing.parse_timing->parse_start.value());
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kHistogramFirstMeaningfulPaintToNetworkStable,
|
| base::TimeTicks::Now() - paint);
|
| @@ -499,30 +501,30 @@ void CorePageLoadMetricsObserver::OnFirstMeaningfulPaintInMainFrameDocument(
|
| }
|
|
|
| void CorePageLoadMetricsObserver::OnParseStart(
|
| - const page_load_metrics::PageLoadTiming& timing,
|
| + const page_load_metrics::mojom::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| if (WasStartedInForegroundOptionalEventInForeground(
|
| - timing.parse_timing.parse_start, info)) {
|
| + timing.parse_timing->parse_start, info)) {
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramParseStart,
|
| - timing.parse_timing.parse_start.value());
|
| + timing.parse_timing->parse_start.value());
|
|
|
| switch (GetPageLoadType(transition_)) {
|
| case LOAD_TYPE_RELOAD:
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramLoadTypeParseStartReload,
|
| - timing.parse_timing.parse_start.value());
|
| + timing.parse_timing->parse_start.value());
|
| break;
|
| case LOAD_TYPE_FORWARD_BACK:
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramLoadTypeParseStartForwardBack,
|
| - timing.parse_timing.parse_start.value());
|
| + timing.parse_timing->parse_start.value());
|
| if (was_no_store_main_resource_) {
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kHistogramLoadTypeParseStartForwardBackNoStore,
|
| - timing.parse_timing.parse_start.value());
|
| + timing.parse_timing->parse_start.value());
|
| }
|
| break;
|
| case LOAD_TYPE_NEW_NAVIGATION:
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramLoadTypeParseStartNewNavigation,
|
| - timing.parse_timing.parse_start.value());
|
| + timing.parse_timing->parse_start.value());
|
| break;
|
| case LOAD_TYPE_NONE:
|
| NOTREACHED();
|
| @@ -530,32 +532,34 @@ void CorePageLoadMetricsObserver::OnParseStart(
|
| }
|
| } else {
|
| PAGE_LOAD_HISTOGRAM(internal::kBackgroundHistogramParseStart,
|
| - timing.parse_timing.parse_start.value());
|
| + timing.parse_timing->parse_start.value());
|
| }
|
| }
|
|
|
| void CorePageLoadMetricsObserver::OnParseStop(
|
| - const page_load_metrics::PageLoadTiming& timing,
|
| + const page_load_metrics::mojom::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| - base::TimeDelta parse_duration = timing.parse_timing.parse_stop.value() -
|
| - timing.parse_timing.parse_start.value();
|
| + base::TimeDelta parse_duration = timing.parse_timing->parse_stop.value() -
|
| + timing.parse_timing->parse_start.value();
|
| if (WasStartedInForegroundOptionalEventInForeground(
|
| - timing.parse_timing.parse_stop, info)) {
|
| + timing.parse_timing->parse_stop, info)) {
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramParseDuration, parse_duration);
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kHistogramParseBlockedOnScriptLoad,
|
| - timing.parse_timing.parse_blocked_on_script_load_duration.value());
|
| + timing.parse_timing->parse_blocked_on_script_load_duration.value());
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kHistogramParseBlockedOnScriptLoadDocumentWrite,
|
| timing.parse_timing
|
| - .parse_blocked_on_script_load_from_document_write_duration.value());
|
| + ->parse_blocked_on_script_load_from_document_write_duration
|
| + .value());
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kHistogramParseBlockedOnScriptExecution,
|
| - timing.parse_timing.parse_blocked_on_script_execution_duration.value());
|
| + timing.parse_timing->parse_blocked_on_script_execution_duration
|
| + .value());
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kHistogramParseBlockedOnScriptExecutionDocumentWrite,
|
| timing.parse_timing
|
| - .parse_blocked_on_script_execution_from_document_write_duration
|
| + ->parse_blocked_on_script_execution_from_document_write_duration
|
| .value());
|
|
|
| int total_resources = num_cache_resources_ + num_network_resources_;
|
| @@ -584,16 +588,17 @@ void CorePageLoadMetricsObserver::OnParseStop(
|
| parse_duration);
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kBackgroundHistogramParseBlockedOnScriptLoad,
|
| - timing.parse_timing.parse_blocked_on_script_load_duration.value());
|
| + timing.parse_timing->parse_blocked_on_script_load_duration.value());
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kBackgroundHistogramParseBlockedOnScriptLoadDocumentWrite,
|
| timing.parse_timing
|
| - .parse_blocked_on_script_load_from_document_write_duration.value());
|
| + ->parse_blocked_on_script_load_from_document_write_duration
|
| + .value());
|
| }
|
| }
|
|
|
| void CorePageLoadMetricsObserver::OnComplete(
|
| - const page_load_metrics::PageLoadTiming& timing,
|
| + const page_load_metrics::mojom::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| RecordTimingHistograms(timing, info);
|
| RecordByteAndResourceHistograms(timing, info);
|
| @@ -603,7 +608,7 @@ void CorePageLoadMetricsObserver::OnComplete(
|
|
|
| page_load_metrics::PageLoadMetricsObserver::ObservePolicy
|
| CorePageLoadMetricsObserver::FlushMetricsOnAppEnterBackground(
|
| - const page_load_metrics::PageLoadTiming& timing,
|
| + const page_load_metrics::mojom::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| // FlushMetricsOnAppEnterBackground is invoked on Android in cases where the
|
| // app is about to be backgrounded, as part of the Activity.onPause()
|
| @@ -633,7 +638,7 @@ void CorePageLoadMetricsObserver::OnFailedProvisionalLoad(
|
| }
|
| // Provide an empty PageLoadTiming, since we don't have any timing metrics
|
| // for failed provisional loads.
|
| - RecordForegroundDurationHistograms(page_load_metrics::PageLoadTiming(),
|
| + RecordForegroundDurationHistograms(page_load_metrics::mojom::PageLoadTiming(),
|
| extra_info, base::TimeTicks());
|
| }
|
|
|
| @@ -685,7 +690,7 @@ void CorePageLoadMetricsObserver::OnLoadedResource(
|
| }
|
|
|
| void CorePageLoadMetricsObserver::RecordTimingHistograms(
|
| - const page_load_metrics::PageLoadTiming& timing,
|
| + const page_load_metrics::mojom::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| // Log time to first foreground / time to first background. Log counts that we
|
| // started a relevant page load in the foreground / background.
|
| @@ -694,16 +699,16 @@ void CorePageLoadMetricsObserver::RecordTimingHistograms(
|
| info.first_foreground_time.value());
|
| }
|
|
|
| - if (timing.paint_timing.first_paint &&
|
| - !timing.paint_timing.first_meaningful_paint) {
|
| + if (timing.paint_timing->first_paint &&
|
| + !timing.paint_timing->first_meaningful_paint) {
|
| RecordFirstMeaningfulPaintStatus(
|
| - timing.paint_timing.first_contentful_paint
|
| + timing.paint_timing->first_contentful_paint
|
| ? internal::FIRST_MEANINGFUL_PAINT_DID_NOT_REACH_NETWORK_STABLE
|
| : internal::
|
| FIRST_MEANINGFUL_PAINT_DID_NOT_REACH_FIRST_CONTENTFUL_PAINT);
|
| }
|
|
|
| - if (timing.paint_timing.first_paint) {
|
| + if (timing.paint_timing->first_paint) {
|
| enum FirstMeaningfulPaintSignalStatus {
|
| HAD_USER_INPUT = 1 << 0,
|
| NETWORK_STABLE = 1 << 1,
|
| @@ -712,24 +717,24 @@ void CorePageLoadMetricsObserver::RecordTimingHistograms(
|
| int signal_status =
|
| (first_user_interaction_after_first_paint_.is_null() ? 0
|
| : HAD_USER_INPUT) +
|
| - (timing.paint_timing.first_meaningful_paint ? NETWORK_STABLE : 0);
|
| + (timing.paint_timing->first_meaningful_paint ? NETWORK_STABLE : 0);
|
| UMA_HISTOGRAM_ENUMERATION(
|
| internal::kHistogramFirstMeaningfulPaintSignalStatus2,
|
| signal_status, FIRST_MEANINGFUL_PAINT_SIGNAL_STATUS_LAST_ENTRY);
|
| }
|
| - if (timing.paint_timing.first_meaningful_paint) {
|
| + if (timing.paint_timing->first_meaningful_paint) {
|
| if (first_user_interaction_after_first_paint_.is_null()) {
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstMeaningfulPaintNoUserInput,
|
| - timing.paint_timing.first_meaningful_paint.value());
|
| + timing.paint_timing->first_meaningful_paint.value());
|
| } else {
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramFirstMeaningfulPaintHadUserInput,
|
| - timing.paint_timing.first_meaningful_paint.value());
|
| + timing.paint_timing->first_meaningful_paint.value());
|
| }
|
| }
|
| }
|
|
|
| void CorePageLoadMetricsObserver::RecordForegroundDurationHistograms(
|
| - const page_load_metrics::PageLoadTiming& timing,
|
| + const page_load_metrics::mojom::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info,
|
| base::TimeTicks app_background_time) {
|
| base::Optional<base::TimeDelta> foreground_duration =
|
| @@ -740,12 +745,12 @@ void CorePageLoadMetricsObserver::RecordForegroundDurationHistograms(
|
| if (info.did_commit) {
|
| PAGE_LOAD_LONG_HISTOGRAM(internal::kHistogramPageTimingForegroundDuration,
|
| foreground_duration.value());
|
| - if (timing.paint_timing.first_paint &&
|
| - timing.paint_timing.first_paint < foreground_duration) {
|
| + if (timing.paint_timing->first_paint &&
|
| + timing.paint_timing->first_paint < foreground_duration) {
|
| PAGE_LOAD_LONG_HISTOGRAM(
|
| internal::kHistogramPageTimingForegroundDurationAfterPaint,
|
| foreground_duration.value() -
|
| - timing.paint_timing.first_paint.value());
|
| + timing.paint_timing->first_paint.value());
|
| PAGE_LOAD_LONG_HISTOGRAM(
|
| internal::kHistogramPageTimingForegroundDurationWithPaint,
|
| foreground_duration.value());
|
| @@ -762,7 +767,7 @@ void CorePageLoadMetricsObserver::RecordForegroundDurationHistograms(
|
| }
|
|
|
| void CorePageLoadMetricsObserver::RecordByteAndResourceHistograms(
|
| - const page_load_metrics::PageLoadTiming& timing,
|
| + const page_load_metrics::mojom::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| DCHECK_GE(network_bytes_, 0);
|
| DCHECK_GE(cache_bytes_, 0);
|
| @@ -812,7 +817,7 @@ void CorePageLoadMetricsObserver::RecordByteAndResourceHistograms(
|
| }
|
|
|
| void CorePageLoadMetricsObserver::RecordRappor(
|
| - const page_load_metrics::PageLoadTiming& timing,
|
| + const page_load_metrics::mojom::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| // During the browser process shutdown path, calling
|
| // BrowserProcess::rappor_service() can reinitialize multiple destroyed
|
| @@ -829,28 +834,28 @@ void CorePageLoadMetricsObserver::RecordRappor(
|
|
|
| // Log the eTLD+1 of sites that show poor loading performance.
|
| if (WasStartedInForegroundOptionalEventInForeground(
|
| - timing.paint_timing.first_contentful_paint, info)) {
|
| + timing.paint_timing->first_contentful_paint, info)) {
|
| std::unique_ptr<rappor::Sample> sample =
|
| rappor_service->CreateSample(rappor::UMA_RAPPOR_TYPE);
|
| sample->SetStringField(
|
| "Domain", rappor::GetDomainAndRegistrySampleFromGURL(info.url));
|
| uint64_t bucket_index = RapporHistogramBucketIndex(
|
| - timing.paint_timing.first_contentful_paint.value());
|
| + timing.paint_timing->first_contentful_paint.value());
|
| sample->SetFlagsField("Bucket", uint64_t(1) << bucket_index,
|
| kNumRapporHistogramBuckets);
|
| // The IsSlow flag is just a one bit boolean if the first contentful paint
|
| // was > 10s.
|
| sample->SetFlagsField(
|
| "IsSlow",
|
| - timing.paint_timing.first_contentful_paint.value().InSecondsF() >= 10,
|
| + timing.paint_timing->first_contentful_paint.value().InSecondsF() >= 10,
|
| 1);
|
| rappor_service->RecordSample(internal::kRapporMetricsNameCoarseTiming,
|
| std::move(sample));
|
| }
|
|
|
| // Log the eTLD+1 of sites that did not report first meaningful paint.
|
| - if (timing.paint_timing.first_paint &&
|
| - !timing.paint_timing.first_meaningful_paint) {
|
| + if (timing.paint_timing->first_paint &&
|
| + !timing.paint_timing->first_meaningful_paint) {
|
| rappor::SampleDomainAndRegistryFromGURL(
|
| rappor_service,
|
| internal::kRapporMetricsNameFirstMeaningfulPaintNotRecorded, info.url);
|
|
|