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 2c543d1e587876b547ccef17c03a7f2a2947ce03..b3c56c2af421738eb1284b67b569acec52bb012a 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 |
@@ -71,6 +71,8 @@ const char kHistogramDocWriteBlockCount[] = |
"PageLoad.Clients.DocWrite.Block.Count"; |
const char kHistogramDocWriteBlockReloadCount[] = |
"PageLoad.Clients.DocWrite.Block.ReloadCount"; |
+const char kHistogramDocWriteBlockLoadingBehavior[] = |
+ "PageLoad.Clients.DocWrite.Block.DocumentWriteLoadingBehavior"; |
} // namespace internal |
@@ -113,6 +115,13 @@ void DocumentWritePageLoadMetricsObserver::OnParseStop( |
} |
} |
+void LogLoadingBehaviorMetrics( |
+ DocumentWritePageLoadMetricsObserver::DocumentWriteLoadingBehavior behavior) { |
+ UMA_HISTOGRAM_ENUMERATION(internal::kHistogramDocWriteBlockLoadingBehavior, |
+ behavior, |
+ DocumentWritePageLoadMetricsObserver::LOADING_BEHAVIOR_MAX); |
+} |
+ |
void DocumentWritePageLoadMetricsObserver::OnLoadingBehaviorObserved( |
const page_load_metrics::PageLoadExtraInfo& info) { |
if ((info.metadata.behavior_flags & |
@@ -123,14 +132,23 @@ void DocumentWritePageLoadMetricsObserver::OnLoadingBehaviorObserved( |
!(info.metadata.behavior_flags & |
blink::WebLoadingBehaviorFlag::WebLoadingBehaviorDocumentWriteBlock)); |
UMA_HISTOGRAM_COUNTS(internal::kHistogramDocWriteBlockReloadCount, 1); |
+ LogLoadingBehaviorMetrics(LOADING_BEHAVIOR_RELOAD); |
doc_write_block_reload_observed_ = true; |
} |
if ((info.metadata.behavior_flags & |
blink::WebLoadingBehaviorFlag::WebLoadingBehaviorDocumentWriteBlock) && |
!doc_write_block_observed_) { |
UMA_HISTOGRAM_BOOLEAN(internal::kHistogramDocWriteBlockCount, true); |
+ LogLoadingBehaviorMetrics(LOADING_BEHAVIOR_BLOCK); |
doc_write_block_observed_ = true; |
} |
+ if ((info.metadata.behavior_flags & |
+ blink::WebLoadingBehaviorFlag:: |
+ WebLoadingBehaviorDocumentWriteBlockDifferentScheme) && |
+ !doc_write_same_site_diff_scheme_) { |
+ LogLoadingBehaviorMetrics(LOADING_BEHAVIOR_SAME_SITE_DIFF_SCHEME); |
+ doc_write_same_site_diff_scheme_ = true; |
+ } |
} |
void DocumentWritePageLoadMetricsObserver:: |