OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "content/browser/service_worker/service_worker_metrics.h" | 5 #include "content/browser/service_worker/service_worker_metrics.h" |
6 | 6 |
7 #include "base/metrics/histogram_macros.h" | 7 #include "base/metrics/histogram_macros.h" |
8 #include "base/metrics/user_metrics_action.h" | 8 #include "base/metrics/user_metrics_action.h" |
9 #include "content/public/browser/browser_thread.h" | 9 #include "content/public/browser/browser_thread.h" |
10 #include "content/public/browser/content_browser_client.h" | 10 #include "content/public/browser/content_browser_client.h" |
11 #include "content/public/browser/user_metrics.h" | 11 #include "content/public/browser/user_metrics.h" |
12 #include "content/public/common/content_client.h" | 12 #include "content/public/common/content_client.h" |
13 | 13 |
14 namespace content { | 14 namespace content { |
15 | 15 |
16 namespace { | 16 namespace { |
17 | 17 |
18 void RecordURLMetricOnUI(const GURL& url) { | 18 void RecordURLMetricOnUI(const GURL& url) { |
19 DCHECK_CURRENTLY_ON(BrowserThread::UI); | 19 DCHECK_CURRENTLY_ON(BrowserThread::UI); |
20 GetContentClient()->browser()->RecordURLMetric( | 20 GetContentClient()->browser()->RecordURLMetric( |
21 "ServiceWorker.ControlledPageUrl", url); | 21 "ServiceWorker.ControlledPageUrl", url); |
22 } | 22 } |
23 | 23 |
| 24 enum EventHandledStatus { |
| 25 EVENT_HANDLED, |
| 26 EVENT_NOT_HANDLED, |
| 27 EVENT_HANDLED_STATUS_MAX, |
| 28 }; |
| 29 |
| 30 enum PerWorkerEventHandledStatus { |
| 31 NO_EVENTS_HANDLED, |
| 32 SOME_EVENTS_HANDLED, |
| 33 ALL_EVENTS_HANDLED, |
| 34 PER_WORKER_EVENT_HANDLED_STATUS_MAX, |
| 35 }; |
| 36 |
24 } // namespace | 37 } // namespace |
25 | 38 |
26 void ServiceWorkerMetrics::CountInitDiskCacheResult(bool result) { | 39 void ServiceWorkerMetrics::CountInitDiskCacheResult(bool result) { |
27 UMA_HISTOGRAM_BOOLEAN("ServiceWorker.DiskCache.InitResult", result); | 40 UMA_HISTOGRAM_BOOLEAN("ServiceWorker.DiskCache.InitResult", result); |
28 } | 41 } |
29 | 42 |
30 void ServiceWorkerMetrics::CountReadResponseResult( | 43 void ServiceWorkerMetrics::CountReadResponseResult( |
31 ServiceWorkerMetrics::ReadResponseResult result) { | 44 ServiceWorkerMetrics::ReadResponseResult result) { |
32 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.DiskCache.ReadResponseResult", | 45 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.DiskCache.ReadResponseResult", |
33 result, NUM_READ_RESPONSE_RESULT_TYPES); | 46 result, NUM_READ_RESPONSE_RESULT_TYPES); |
(...skipping 66 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
100 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.ActivateEventStatus", status, | 113 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.ActivateEventStatus", status, |
101 SERVICE_WORKER_ERROR_MAX_VALUE); | 114 SERVICE_WORKER_ERROR_MAX_VALUE); |
102 } | 115 } |
103 | 116 |
104 void ServiceWorkerMetrics::RecordInstallEventStatus( | 117 void ServiceWorkerMetrics::RecordInstallEventStatus( |
105 ServiceWorkerStatusCode status) { | 118 ServiceWorkerStatusCode status) { |
106 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.InstallEventStatus", status, | 119 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.InstallEventStatus", status, |
107 SERVICE_WORKER_ERROR_MAX_VALUE); | 120 SERVICE_WORKER_ERROR_MAX_VALUE); |
108 } | 121 } |
109 | 122 |
110 void ServiceWorkerMetrics::RecordEventStatus(size_t fired_events, | 123 void ServiceWorkerMetrics::RecordPerWorkerEventHandledStatus( |
111 size_t handled_events) { | 124 size_t fired_events, |
| 125 size_t handled_events) { |
112 if (!fired_events) | 126 if (!fired_events) |
113 return; | 127 return; |
114 int unhandled_ratio = (fired_events - handled_events) * 100 / fired_events; | 128 PerWorkerEventHandledStatus status = SOME_EVENTS_HANDLED; |
115 UMA_HISTOGRAM_PERCENTAGE("ServiceWorker.UnhandledEventRatio", | 129 if (fired_events == handled_events) |
116 unhandled_ratio); | 130 status = ALL_EVENTS_HANDLED; |
| 131 else if (handled_events == 0) |
| 132 status = NO_EVENTS_HANDLED; |
| 133 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.EventHandledStatus_PerWorker", |
| 134 status, PER_WORKER_EVENT_HANDLED_STATUS_MAX); |
| 135 } |
| 136 |
| 137 void ServiceWorkerMetrics::RecordEventHandledStatus(bool handled) { |
| 138 if (handled) { |
| 139 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.EventHandledStatus", EVENT_HANDLED, |
| 140 EVENT_HANDLED_STATUS_MAX); |
| 141 } else { |
| 142 UMA_HISTOGRAM_ENUMERATION("ServiceWorker.EventHandledStatus", |
| 143 EVENT_NOT_HANDLED, EVENT_HANDLED_STATUS_MAX); |
| 144 } |
117 } | 145 } |
118 | 146 |
119 } // namespace content | 147 } // namespace content |
OLD | NEW |