Add breakdown histograms for injected script execution time
Currently we have the following metrics for content script injections:
- Extensions.Inject{Start,End,Idle}_Time: Time to inject all extensions'
scripts for one run_location. Recorded only if injected synchronously.
- Extensions.InjectedScriptExecutionTime: Time to inject one extension's
scripts, not broken down by run_location.
This patch adds breakdown histograms for InjectedScriptExecutionTime by
locations. Also, add notes to Inject{Start,End,Idle}_Time descriptions
that these are reported only for synchronous script injections.
BUG=636655
Review-Url: https://codereview.chromium.org/2766603002
Cr-Commit-Position: refs/heads/master@{#459375}
diff --git a/extensions/renderer/script_injection.cc b/extensions/renderer/script_injection.cc
index 519dce0ba..cd7da1b 100644
--- a/extensions/renderer/script_injection.cc
+++ b/extensions/renderer/script_injection.cc
@@ -323,8 +323,25 @@
base::TimeDelta elapsed) {
DCHECK(!did_inject_js_);
- if (injection_host_->id().type() == HostID::EXTENSIONS)
+ if (injection_host_->id().type() == HostID::EXTENSIONS) {
UMA_HISTOGRAM_TIMES("Extensions.InjectedScriptExecutionTime", elapsed);
+ switch (run_location_) {
+ case UserScript::DOCUMENT_START:
+ UMA_HISTOGRAM_TIMES(
+ "Extensions.InjectedScriptExecutionTime.DocumentStart", elapsed);
+ break;
+ case UserScript::DOCUMENT_END:
+ UMA_HISTOGRAM_TIMES(
+ "Extensions.InjectedScriptExecutionTime.DocumentEnd", elapsed);
+ break;
+ case UserScript::DOCUMENT_IDLE:
+ UMA_HISTOGRAM_TIMES(
+ "Extensions.InjectedScriptExecutionTime.DocumentIdle", elapsed);
+ break;
+ default:
+ break;
+ }
+ }
bool expects_results = injector_->ExpectsResults();
if (expects_results) {