| 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..36a524529cd40cdec84bfe57962f23d29d16f522 100644
|
| --- a/content/browser/service_worker/service_worker_metrics.cc
|
| +++ b/content/browser/service_worker/service_worker_metrics.cc
|
| @@ -72,6 +72,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 +315,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),
|
|
|