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

Unified Diff: content/browser/service_worker/service_worker_metrics.cc

Issue 2039743003: Introduce ServiceWorker.ActivatedWorkerPreparationForMainFrame.Time UMA. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 6 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: content/browser/service_worker/service_worker_metrics.cc
diff --git a/content/browser/service_worker/service_worker_metrics.cc b/content/browser/service_worker/service_worker_metrics.cc
index 5095b53b9877f5d8cb2e2fb7e6f63995efc3db61..eaf8071ffa4f87e00f6e4352b14509e80400d36f 100644
--- a/content/browser/service_worker/service_worker_metrics.cc
+++ b/content/browser/service_worker/service_worker_metrics.cc
@@ -10,6 +10,7 @@
#include "base/metrics/histogram_macros.h"
#include "base/metrics/sparse_histogram.h"
#include "base/strings/string_util.h"
+#include "content/browser/service_worker/embedded_worker_status.h"
#include "content/common/service_worker/service_worker_types.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/content_browser_client.h"
@@ -72,6 +73,33 @@ std::string EventTypeToSuffix(ServiceWorkerMetrics::EventType event_type) {
return "_UNKNOWN";
}
+std::string GetWorkerPreparationSuffix(
+ EmbeddedWorkerStatus initial_worker_status,
+ ServiceWorkerMetrics::StartSituation start_situation) {
+ switch (initial_worker_status) {
+ case EmbeddedWorkerStatus::STOPPED: {
+ switch (start_situation) {
+ case ServiceWorkerMetrics::StartSituation::DURING_STARTUP:
+ return "_StartWorkerDuringStartup";
+ case ServiceWorkerMetrics::StartSituation::NEW_PROCESS:
+ return "_StartWorkerNewProcess";
+ case ServiceWorkerMetrics::StartSituation::EXISTING_PROCESS:
+ return "_StartWorkerExistingProcess";
+ default:
+ NOTREACHED() << static_cast<int>(start_situation);
+ }
+ }
+ case EmbeddedWorkerStatus::STARTING:
+ return "_StartingWorker";
+ case EmbeddedWorkerStatus::RUNNING:
+ return "_RunningWorker";
+ case EmbeddedWorkerStatus::STOPPING:
+ return "_StoppingWorker";
+ }
+ NOTREACHED();
+ return "_UNKNOWN";
+}
+
// Use this for histograms with dynamically generated names, which
// otherwise can't use the UMA_HISTOGRAM macro without code duplication.
void RecordSuffixedTimeHistogram(const std::string& name,
@@ -288,6 +316,18 @@ void ServiceWorkerMetrics::RecordStartWorkerTime(base::TimeDelta time,
}
}
+void ServiceWorkerMetrics::RecordActivatedWorkerPreparationTimeForMainFrame(
+ base::TimeDelta time,
+ EmbeddedWorkerStatus initial_worker_status,
+ StartSituation start_situation) {
+ std::string name =
+ "ServiceWorker.ActivatedWorkerPreparationForMainFrame.Time";
+ UMA_HISTOGRAM_MEDIUM_TIMES(name, time);
+ RecordSuffixedTimeHistogram(
+ name, GetWorkerPreparationSuffix(initial_worker_status, start_situation),
+ time);
+}
+
void ServiceWorkerMetrics::RecordWorkerStopped(StopStatus status) {
UMA_HISTOGRAM_ENUMERATION("ServiceWorker.WorkerStopped",
static_cast<int>(status),

Powered by Google App Engine
This is Rietveld 408576698