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 c0d882d3901da91410eabf4b8c48ea3ffdae0018..64e62bbf6d1258989bfa0bb9d28f2a8d3a5f5435 100644 |
--- a/content/browser/service_worker/service_worker_metrics.cc |
+++ b/content/browser/service_worker/service_worker_metrics.cc |
@@ -21,6 +21,19 @@ void RecordURLMetricOnUI(const GURL& url) { |
"ServiceWorker.ControlledPageUrl", url); |
} |
+enum EventHandledStatus { |
+ EVENT_HANDLED, |
+ EVENT_NOT_HANDLED, |
+ EVENT_HANDLED_STATUS_MAX, |
+}; |
+ |
+enum PerWorkerEventHandledStatus { |
+ NO_EVENTS_HANDLED, |
+ SOME_EVENTS_HANDLED, |
+ ALL_EVENTS_HANDLED, |
+ PER_WORKER_EVENT_HANDLED_STATUS_MAX, |
+}; |
+ |
} // namespace |
void ServiceWorkerMetrics::CountInitDiskCacheResult(bool result) { |
@@ -107,13 +120,28 @@ void ServiceWorkerMetrics::RecordInstallEventStatus( |
SERVICE_WORKER_ERROR_MAX_VALUE); |
} |
-void ServiceWorkerMetrics::RecordEventStatus(size_t fired_events, |
- size_t handled_events) { |
+void ServiceWorkerMetrics::RecordPerWorkerEventHandledStatus( |
+ size_t fired_events, |
+ size_t handled_events) { |
if (!fired_events) |
return; |
- int unhandled_ratio = (fired_events - handled_events) * 100 / fired_events; |
- UMA_HISTOGRAM_PERCENTAGE("ServiceWorker.UnhandledEventRatio", |
- unhandled_ratio); |
+ PerWorkerEventHandledStatus status = SOME_EVENTS_HANDLED; |
+ if (fired_events == handled_events) |
+ status = ALL_EVENTS_HANDLED; |
+ else if (handled_events == 0) |
+ status = NO_EVENTS_HANDLED; |
+ UMA_HISTOGRAM_ENUMERATION("ServiceWorker.EventHandledStatus_PerWorker", |
+ status, PER_WORKER_EVENT_HANDLED_STATUS_MAX); |
+} |
+ |
+void ServiceWorkerMetrics::RecordEventHandledStatus(bool handled) { |
+ if (handled) { |
+ UMA_HISTOGRAM_ENUMERATION("ServiceWorker.EventHandledStatus", EVENT_HANDLED, |
+ EVENT_HANDLED_STATUS_MAX); |
+ } else { |
+ UMA_HISTOGRAM_ENUMERATION("ServiceWorker.EventHandledStatus", |
+ EVENT_NOT_HANDLED, EVENT_HANDLED_STATUS_MAX); |
+ } |
} |
} // namespace content |