Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1720)

Unified Diff: chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer.cc

Issue 2924673004: Add UKM metric tracking for various page load metric observers. (Closed)
Patch Set: update Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 7ad46366492b92331a444a94a8082ca516679341..4f30bdebecaf6cfdf80a4928c522fdbbc46a5e8b 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
@@ -3,7 +3,9 @@
// found in the LICENSE file.
#include "chrome/browser/page_load_metrics/observers/document_write_page_load_metrics_observer.h"
+#include "chrome/browser/browser_process.h"
#include "chrome/browser/page_load_metrics/page_load_metrics_util.h"
+#include "components/ukm/public/ukm_recorder.h"
#include "third_party/WebKit/public/platform/WebLoadingBehaviorFlag.h"
namespace internal {
@@ -74,6 +76,12 @@ const char kHistogramDocWriteBlockReloadCount[] =
const char kHistogramDocWriteBlockLoadingBehavior[] =
"PageLoad.Clients.DocWrite.Block.DocumentWriteLoadingBehavior";
+const char kUkmDocWriteBlockName[] = "DocumentWrite.ScriptBlock";
+const char kUkmParseBlockedOnScriptLoadDocumentWrite[] =
+ "ParseTiming.ParseBlockedOnScriptLoadFromDocumentWrite";
+const char kUkmParseBlockedOnScriptExecutionDocumentWrite[] =
+ "ParseTiming.ParseBlockedOnScriptExecutionFromDocumentWrite";
+
} // namespace internal
void DocumentWritePageLoadMetricsObserver::OnFirstContentfulPaintInPage(
@@ -144,6 +152,11 @@ void DocumentWritePageLoadMetricsObserver::OnLoadingBehaviorObserved(
!doc_write_block_observed_) {
UMA_HISTOGRAM_BOOLEAN(internal::kHistogramDocWriteBlockCount, true);
LogLoadingBehaviorMetrics(LOADING_BEHAVIOR_BLOCK);
+ ukm::UkmRecorder* ukm_recorder = g_browser_process->ukm_recorder();
+ if (ukm_recorder) {
+ ukm_recorder->GetEntryBuilder(info.source_id,
+ internal::kUkmDocWriteBlockName);
+ }
doc_write_block_observed_ = true;
}
if ((info.main_frame_metadata.behavior_flags &
@@ -291,6 +304,24 @@ void DocumentWritePageLoadMetricsObserver::LogDocumentWriteBlockParseStop(
timing.parse_timing
->parse_blocked_on_script_execution_from_document_write_duration
.value());
+
+ ukm::UkmRecorder* ukm_recorder = g_browser_process->ukm_recorder();
+ if (ukm_recorder) {
+ std::unique_ptr<ukm::UkmEntryBuilder> builder =
+ ukm_recorder->GetEntryBuilder(info.source_id,
+ internal::kUkmDocWriteBlockName);
+ builder->AddMetric(
+ internal::kUkmParseBlockedOnScriptLoadDocumentWrite,
+ timing.parse_timing
+ ->parse_blocked_on_script_load_from_document_write_duration
+ ->InMilliseconds());
+ builder->AddMetric(
+ internal::kUkmParseBlockedOnScriptExecutionDocumentWrite,
+ timing.parse_timing
+ ->parse_blocked_on_script_execution_from_document_write_duration
+ ->InMilliseconds());
+ }
+
} else {
PAGE_LOAD_HISTOGRAM(
internal::kBackgroundHistogramDocWriteBlockParseDuration,

Powered by Google App Engine
This is Rietveld 408576698