| Index: chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer.cc
|
| diff --git a/chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer.cc b/chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer.cc
|
| index bc18f8eb87f25c0f75774b0cd1c503480e675f0b..1fb91ed32081c5dfd22c5a8dfea0837e468c54c7 100644
|
| --- a/chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer.cc
|
| +++ b/chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer.cc
|
| @@ -188,107 +188,119 @@ void DocumentWritePageLoadMetricsObserver::
|
| LogDocumentWriteEvaluatorFirstContentfulPaint(
|
| const page_load_metrics::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| - if (WasStartedInForegroundEventInForeground(timing.first_contentful_paint,
|
| - info)) {
|
| + if (WasStartedInForegroundOptionalEventInForeground(
|
| + timing.first_contentful_paint, info)) {
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kHistogramDocWriteFirstContentfulPaintImmediate,
|
| - timing.first_contentful_paint);
|
| + timing.first_contentful_paint.value());
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kHistogramDocWriteParseStartToFirstContentfulPaintImmediate,
|
| - timing.first_contentful_paint - timing.parse_start);
|
| + timing.first_contentful_paint.value() - timing.parse_start.value());
|
| } else {
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kBackgroundHistogramDocWriteFirstContentfulPaintImmediate,
|
| - timing.first_contentful_paint);
|
| + timing.first_contentful_paint.value());
|
| }
|
| }
|
|
|
| void DocumentWritePageLoadMetricsObserver::LogDocumentWriteEvaluatorParseStop(
|
| const page_load_metrics::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| - base::TimeDelta parse_duration = timing.parse_stop - timing.parse_start;
|
| - if (WasStartedInForegroundEventInForeground(timing.parse_stop, info)) {
|
| + base::TimeDelta parse_duration =
|
| + timing.parse_stop.value() - timing.parse_start.value();
|
| + if (WasStartedInForegroundOptionalEventInForeground(timing.parse_stop,
|
| + info)) {
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramDocWriteParseDurationImmediate,
|
| parse_duration);
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kHistogramDocWriteParseBlockedOnScriptImmediate,
|
| - timing.parse_blocked_on_script_load_duration);
|
| + timing.parse_blocked_on_script_load_duration.value());
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::
|
| kHistogramDocWriteParseBlockedOnScriptLoadDocumentWriteImmediate,
|
| - timing.parse_blocked_on_script_load_from_document_write_duration);
|
| + timing.parse_blocked_on_script_load_from_document_write_duration
|
| + .value());
|
| } else {
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kBackgroundHistogramDocWriteParseDurationImmediate,
|
| parse_duration);
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kBackgroundHistogramDocWriteParseBlockedOnScriptImmediate,
|
| - timing.parse_blocked_on_script_load_duration);
|
| + timing.parse_blocked_on_script_load_duration.value());
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::
|
| kBackgroundHistogramDocWriteParseBlockedOnScriptLoadDocumentWriteImmediate,
|
| - timing.parse_blocked_on_script_load_from_document_write_duration);
|
| + timing.parse_blocked_on_script_load_from_document_write_duration
|
| + .value());
|
| }
|
| }
|
|
|
| void DocumentWritePageLoadMetricsObserver::LogDocumentWriteEvaluatorData(
|
| const page_load_metrics::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| - bool foreground_paint = WasStartedInForegroundEventInForeground(
|
| + bool foreground_paint = WasStartedInForegroundOptionalEventInForeground(
|
| timing.first_contentful_paint, info);
|
| - if (!timing.first_contentful_paint.is_zero()) {
|
| +
|
| + if (timing.first_contentful_paint) {
|
| if (foreground_paint) {
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramDocWriteFirstContentfulPaint,
|
| - timing.first_contentful_paint);
|
| + timing.first_contentful_paint.value());
|
| } else {
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kBackgroundHistogramDocWriteFirstContentfulPaint,
|
| - timing.first_contentful_paint);
|
| + timing.first_contentful_paint.value());
|
| }
|
| }
|
|
|
| // Log parse based metrics.
|
| - if (!timing.parse_start.is_zero()) {
|
| - if (foreground_paint) {
|
| - PAGE_LOAD_HISTOGRAM(
|
| - internal::kHistogramDocWriteParseStartToFirstContentfulPaint,
|
| - timing.first_contentful_paint - timing.parse_start);
|
| - }
|
| + if (!timing.parse_start)
|
| + return;
|
|
|
| - if (WasParseInForeground(timing.parse_start, timing.parse_stop, info)) {
|
| - PAGE_LOAD_HISTOGRAM(internal::kHistogramDocWriteParseBlockedOnScript,
|
| - timing.parse_blocked_on_script_load_duration);
|
| - PAGE_LOAD_HISTOGRAM(
|
| - internal::kHistogramDocWriteParseBlockedOnScriptLoadDocumentWrite,
|
| - timing.parse_blocked_on_script_load_from_document_write_duration);
|
| - } else {
|
| - PAGE_LOAD_HISTOGRAM(
|
| - internal::kBackgroundHistogramDocWriteParseBlockedOnScript,
|
| - timing.parse_blocked_on_script_load_duration);
|
| - PAGE_LOAD_HISTOGRAM(
|
| - internal::
|
| - kBackgroundHistogramDocWriteParseBlockedOnScriptLoadDocumentWrite,
|
| - timing.parse_blocked_on_script_load_from_document_write_duration);
|
| - }
|
| + if (foreground_paint) {
|
| + PAGE_LOAD_HISTOGRAM(
|
| + internal::kHistogramDocWriteParseStartToFirstContentfulPaint,
|
| + timing.first_contentful_paint.value() - timing.parse_start.value());
|
| + }
|
|
|
| - // These metrics require a full parse.
|
| - if (!timing.parse_stop.is_zero()) {
|
| - base::TimeDelta parse_duration = timing.parse_stop - timing.parse_start;
|
| - if (WasStartedInForegroundEventInForeground(timing.parse_stop, info)) {
|
| - PAGE_LOAD_HISTOGRAM(internal::kHistogramDocWriteParseDuration,
|
| - parse_duration);
|
| - PAGE_LOAD_HISTOGRAM(
|
| - internal::kHistogramDocWriteParseBlockedOnScriptParseComplete,
|
| - timing.parse_blocked_on_script_load_duration);
|
| - PAGE_LOAD_HISTOGRAM(
|
| - internal::
|
| - kHistogramDocWriteParseBlockedOnScriptLoadDocumentWriteParseComplete,
|
| - timing.parse_blocked_on_script_load_from_document_write_duration);
|
| - } else {
|
| - PAGE_LOAD_HISTOGRAM(internal::kBackgroundHistogramDocWriteParseDuration,
|
| - parse_duration);
|
| - }
|
| - }
|
| + if (WasParseInForeground(timing.parse_start, timing.parse_stop, info)) {
|
| + PAGE_LOAD_HISTOGRAM(internal::kHistogramDocWriteParseBlockedOnScript,
|
| + timing.parse_blocked_on_script_load_duration.value());
|
| + PAGE_LOAD_HISTOGRAM(
|
| + internal::kHistogramDocWriteParseBlockedOnScriptLoadDocumentWrite,
|
| + timing.parse_blocked_on_script_load_from_document_write_duration
|
| + .value());
|
| + } else {
|
| + PAGE_LOAD_HISTOGRAM(
|
| + internal::kBackgroundHistogramDocWriteParseBlockedOnScript,
|
| + timing.parse_blocked_on_script_load_duration.value());
|
| + PAGE_LOAD_HISTOGRAM(
|
| + internal::
|
| + kBackgroundHistogramDocWriteParseBlockedOnScriptLoadDocumentWrite,
|
| + timing.parse_blocked_on_script_load_from_document_write_duration
|
| + .value());
|
| + }
|
| +
|
| + // These metrics require a full parse.
|
| + if (!timing.parse_stop)
|
| + return;
|
| +
|
| + base::TimeDelta parse_duration =
|
| + timing.parse_stop.value() - timing.parse_start.value();
|
| + if (WasStartedInForegroundOptionalEventInForeground(timing.parse_stop,
|
| + info)) {
|
| + PAGE_LOAD_HISTOGRAM(internal::kHistogramDocWriteParseDuration,
|
| + parse_duration);
|
| + PAGE_LOAD_HISTOGRAM(
|
| + internal::kHistogramDocWriteParseBlockedOnScriptParseComplete,
|
| + timing.parse_blocked_on_script_load_duration.value());
|
| + PAGE_LOAD_HISTOGRAM(
|
| + internal::
|
| + kHistogramDocWriteParseBlockedOnScriptLoadDocumentWriteParseComplete,
|
| + timing.parse_blocked_on_script_load_from_document_write_duration
|
| + .value());
|
| + } else {
|
| + PAGE_LOAD_HISTOGRAM(internal::kBackgroundHistogramDocWriteParseDuration,
|
| + parse_duration);
|
| }
|
| }
|
|
|
| @@ -296,29 +308,32 @@ void DocumentWritePageLoadMetricsObserver::
|
| LogDocumentWriteBlockFirstContentfulPaint(
|
| const page_load_metrics::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| - if (WasStartedInForegroundEventInForeground(timing.first_contentful_paint,
|
| - info)) {
|
| + if (WasStartedInForegroundOptionalEventInForeground(
|
| + timing.first_contentful_paint, info)) {
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::
|
| kHistogramDocWriteBlockParseStartToFirstContentfulPaintImmediate,
|
| - timing.first_contentful_paint - timing.parse_start);
|
| + timing.first_contentful_paint.value() - timing.parse_start.value());
|
| }
|
| }
|
|
|
| void DocumentWritePageLoadMetricsObserver::LogDocumentWriteBlockParseStop(
|
| const page_load_metrics::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| - base::TimeDelta parse_duration = timing.parse_stop - timing.parse_start;
|
| - if (WasStartedInForegroundEventInForeground(timing.parse_stop, info)) {
|
| + base::TimeDelta parse_duration =
|
| + timing.parse_stop.value() - timing.parse_start.value();
|
| + if (WasStartedInForegroundOptionalEventInForeground(timing.parse_stop,
|
| + info)) {
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramDocWriteBlockParseDurationImmediate,
|
| parse_duration);
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kHistogramDocWriteBlockParseBlockedOnScriptImmediate,
|
| - timing.parse_blocked_on_script_load_duration);
|
| + timing.parse_blocked_on_script_load_duration.value());
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::
|
| kHistogramDocWriteBlockParseBlockedOnScriptLoadDocumentWriteImmediate,
|
| - timing.parse_blocked_on_script_load_from_document_write_duration);
|
| + timing.parse_blocked_on_script_load_from_document_write_duration
|
| + .value());
|
| } else {
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kBackgroundHistogramDocWriteBlockParseDurationImmediate,
|
| @@ -326,68 +341,75 @@ void DocumentWritePageLoadMetricsObserver::LogDocumentWriteBlockParseStop(
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::
|
| kBackgroundHistogramDocWriteBlockParseBlockedOnScriptImmediate,
|
| - timing.parse_blocked_on_script_load_duration);
|
| + timing.parse_blocked_on_script_load_duration.value());
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::
|
| kBackgroundDocWriteBlockParseBlockedOnScriptLoadDocumentWriteImmediate,
|
| - timing.parse_blocked_on_script_load_from_document_write_duration);
|
| + timing.parse_blocked_on_script_load_from_document_write_duration
|
| + .value());
|
| }
|
| }
|
|
|
| void DocumentWritePageLoadMetricsObserver::LogDocumentWriteBlockData(
|
| const page_load_metrics::PageLoadTiming& timing,
|
| const page_load_metrics::PageLoadExtraInfo& info) {
|
| - if (timing.parse_start.is_zero()) {
|
| + if (!timing.parse_start) {
|
| return;
|
| }
|
|
|
| - if (WasStartedInForegroundEventInForeground(timing.first_contentful_paint,
|
| - info)) {
|
| + if (WasStartedInForegroundOptionalEventInForeground(
|
| + timing.first_contentful_paint, info)) {
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kHistogramDocWriteBlockParseStartToFirstContentfulPaint,
|
| - timing.first_contentful_paint - timing.parse_start);
|
| + timing.first_contentful_paint.value() - timing.parse_start.value());
|
| }
|
|
|
| if (WasParseInForeground(timing.parse_start, timing.parse_stop, info)) {
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramDocWriteBlockParseBlockedOnScript,
|
| - timing.parse_blocked_on_script_load_duration);
|
| + timing.parse_blocked_on_script_load_duration.value());
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kHistogramDocWriteBlockParseBlockedOnScriptLoadDocumentWrite,
|
| - timing.parse_blocked_on_script_load_from_document_write_duration);
|
| + timing.parse_blocked_on_script_load_from_document_write_duration
|
| + .value());
|
| } else {
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kBackgroundHistogramDocWriteBlockParseBlockedOnScript,
|
| - timing.parse_blocked_on_script_load_duration);
|
| + timing.parse_blocked_on_script_load_duration.value());
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kBackgroundDocWriteBlockParseBlockedOnScriptLoadDocumentWrite,
|
| - timing.parse_blocked_on_script_load_from_document_write_duration);
|
| + timing.parse_blocked_on_script_load_from_document_write_duration
|
| + .value());
|
| }
|
|
|
| - if (timing.parse_stop.is_zero()) {
|
| + if (!timing.parse_stop) {
|
| return;
|
| }
|
|
|
| - base::TimeDelta parse_duration = timing.parse_stop - timing.parse_start;
|
| - if (WasStartedInForegroundEventInForeground(timing.parse_stop, info)) {
|
| + base::TimeDelta parse_duration =
|
| + timing.parse_stop.value() - timing.parse_start.value();
|
| + if (WasStartedInForegroundOptionalEventInForeground(timing.parse_stop,
|
| + info)) {
|
| PAGE_LOAD_HISTOGRAM(internal::kHistogramDocWriteBlockParseDuration,
|
| parse_duration);
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kHistogramDocWriteBlockParseBlockedOnScriptParseComplete,
|
| - timing.parse_blocked_on_script_load_duration);
|
| + timing.parse_blocked_on_script_load_duration.value());
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::
|
| kDocWriteBlockParseBlockedOnScriptLoadDocumentWriteParseComplete,
|
| - timing.parse_blocked_on_script_load_from_document_write_duration);
|
| + timing.parse_blocked_on_script_load_from_document_write_duration
|
| + .value());
|
| } else {
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kBackgroundHistogramDocWriteBlockParseDuration,
|
| parse_duration);
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::kBackgroundHistogramDocWriteBlockParseBlockedOnScriptComplete,
|
| - timing.parse_blocked_on_script_load_duration);
|
| + timing.parse_blocked_on_script_load_duration.value());
|
| PAGE_LOAD_HISTOGRAM(
|
| internal::
|
| kBackgroundDocWriteBlockParseBlockedOnScriptLoadDocWriteComplete,
|
| - timing.parse_blocked_on_script_load_from_document_write_duration);
|
| + timing.parse_blocked_on_script_load_from_document_write_duration
|
| + .value());
|
| }
|
| }
|
|
|