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 3d0967bcb155c390faa22eb7e9e2cee778d8bb0f..2ee60c7d9c3606d5e0c901aa3aa3c733b47730d6 100644 |
--- a/content/browser/service_worker/service_worker_metrics.cc |
+++ b/content/browser/service_worker/service_worker_metrics.cc |
@@ -68,11 +68,21 @@ const char* ServiceWorkerMetrics::EventTypeToString(EventType event_type) { |
return "Service Port Connect"; |
case EventType::MESSAGE: |
return "Message"; |
+ case EventType::FETCH_MAIN_FRAME: |
+ return "Fetch Main Frame"; |
+ case EventType::FETCH_SUB_FRAME: |
+ return "Fetch Sub Frame"; |
+ case EventType::FETCH_SHARED_WORKER: |
+ return "Fetch Shared Worker"; |
+ case EventType::FETCH_SUB_RESOURCE: |
+ return "Fetch Subresource"; |
+ case EventType::UNKNOWN: |
+ return "Unknown"; |
case EventType::NUM_TYPES: |
break; |
} |
NOTREACHED() << "Got unexpected event type: " << static_cast<int>(event_type); |
- return "Unknown"; |
+ return "error"; |
} |
bool ServiceWorkerMetrics::ShouldExcludeSiteFromHistogram(Site site) { |
@@ -147,10 +157,19 @@ void ServiceWorkerMetrics::CountControlledPageLoad(const GURL& url) { |
void ServiceWorkerMetrics::RecordStartWorkerStatus( |
ServiceWorkerStatusCode status, |
+ EventType purpose, |
bool is_installed) { |
if (is_installed) { |
UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.Status", status, |
SERVICE_WORKER_ERROR_MAX_VALUE); |
+ UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.Purpose", |
+ static_cast<int>(purpose), |
+ static_cast<int>(EventType::NUM_TYPES)); |
+ if (status == SERVICE_WORKER_ERROR_TIMEOUT) { |
+ UMA_HISTOGRAM_ENUMERATION( |
+ "ServiceWorker.StartWorker.Timeout.StartPurpose", |
+ static_cast<int>(purpose), static_cast<int>(EventType::NUM_TYPES)); |
+ } |
} else { |
UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartNewWorker.Status", status, |
SERVICE_WORKER_ERROR_MAX_VALUE); |
@@ -222,6 +241,10 @@ void ServiceWorkerMetrics::RecordEventDuration(EventType event, |
UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.InstallEvent.Time", time); |
break; |
case EventType::FETCH: |
+ case EventType::FETCH_MAIN_FRAME: |
+ case EventType::FETCH_SUB_FRAME: |
+ case EventType::FETCH_SHARED_WORKER: |
+ case EventType::FETCH_SUB_RESOURCE: |
if (was_handled) { |
UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.FetchEvent.HasResponse.Time", |
time); |
@@ -255,6 +278,7 @@ void ServiceWorkerMetrics::RecordEventDuration(EventType event, |
case EventType::SERVICE_PORT_CONNECT: |
break; |
+ case EventType::UNKNOWN: |
case EventType::NUM_TYPES: |
NOTREACHED() << "Invalid event type"; |
break; |