diff options
Diffstat (limited to 'chromium/content/browser/service_worker/service_worker_metrics.cc')
-rw-r--r-- | chromium/content/browser/service_worker/service_worker_metrics.cc | 79 |
1 files changed, 70 insertions, 9 deletions
diff --git a/chromium/content/browser/service_worker/service_worker_metrics.cc b/chromium/content/browser/service_worker/service_worker_metrics.cc index 6e3ddf1d7aa..c0d882d3901 100644 --- a/chromium/content/browser/service_worker/service_worker_metrics.cc +++ b/chromium/content/browser/service_worker/service_worker_metrics.cc @@ -4,55 +4,116 @@ #include "content/browser/service_worker/service_worker_metrics.h" -#include "base/metrics/histogram.h" +#include "base/metrics/histogram_macros.h" #include "base/metrics/user_metrics_action.h" +#include "content/public/browser/browser_thread.h" +#include "content/public/browser/content_browser_client.h" #include "content/public/browser/user_metrics.h" +#include "content/public/common/content_client.h" namespace content { -// static +namespace { + +void RecordURLMetricOnUI(const GURL& url) { + DCHECK_CURRENTLY_ON(BrowserThread::UI); + GetContentClient()->browser()->RecordURLMetric( + "ServiceWorker.ControlledPageUrl", url); +} + +} // namespace + void ServiceWorkerMetrics::CountInitDiskCacheResult(bool result) { UMA_HISTOGRAM_BOOLEAN("ServiceWorker.DiskCache.InitResult", result); } -// static void ServiceWorkerMetrics::CountReadResponseResult( ServiceWorkerMetrics::ReadResponseResult result) { UMA_HISTOGRAM_ENUMERATION("ServiceWorker.DiskCache.ReadResponseResult", result, NUM_READ_RESPONSE_RESULT_TYPES); } -// static void ServiceWorkerMetrics::CountWriteResponseResult( ServiceWorkerMetrics::WriteResponseResult result) { UMA_HISTOGRAM_ENUMERATION("ServiceWorker.DiskCache.WriteResponseResult", result, NUM_WRITE_RESPONSE_RESULT_TYPES); } -// static void ServiceWorkerMetrics::CountOpenDatabaseResult( ServiceWorkerDatabase::Status status) { UMA_HISTOGRAM_ENUMERATION("ServiceWorker.Database.OpenResult", status, ServiceWorkerDatabase::STATUS_ERROR_MAX); } -// static void ServiceWorkerMetrics::CountReadDatabaseResult( ServiceWorkerDatabase::Status status) { UMA_HISTOGRAM_ENUMERATION("ServiceWorker.Database.ReadResult", status, ServiceWorkerDatabase::STATUS_ERROR_MAX); } -// static void ServiceWorkerMetrics::CountWriteDatabaseResult( ServiceWorkerDatabase::Status status) { UMA_HISTOGRAM_ENUMERATION("ServiceWorker.Database.WriteResult", status, ServiceWorkerDatabase::STATUS_ERROR_MAX); } -// static -void ServiceWorkerMetrics::CountControlledPageLoad() { +void ServiceWorkerMetrics::RecordDestroyDatabaseResult( + ServiceWorkerDatabase::Status status) { + UMA_HISTOGRAM_ENUMERATION("ServiceWorker.Database.DestroyDatabaseResult", + status, ServiceWorkerDatabase::STATUS_ERROR_MAX); +} + +void ServiceWorkerMetrics::RecordDeleteAndStartOverResult( + DeleteAndStartOverResult result) { + UMA_HISTOGRAM_ENUMERATION("ServiceWorker.Storage.DeleteAndStartOverResult", + result, NUM_DELETE_AND_START_OVER_RESULT_TYPES); +} + +void ServiceWorkerMetrics::CountControlledPageLoad(const GURL& url) { RecordAction(base::UserMetricsAction("ServiceWorker.ControlledPageLoad")); + BrowserThread::PostTask(BrowserThread::UI, FROM_HERE, + base::Bind(&RecordURLMetricOnUI, url)); +} + +void ServiceWorkerMetrics::RecordStartWorkerStatus( + ServiceWorkerStatusCode status, + bool is_installed) { + if (is_installed) { + UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartWorker.Status", status, + SERVICE_WORKER_ERROR_MAX_VALUE); + } else { + UMA_HISTOGRAM_ENUMERATION("ServiceWorker.StartNewWorker.Status", status, + SERVICE_WORKER_ERROR_MAX_VALUE); + } +} + +void ServiceWorkerMetrics::RecordStartWorkerTime(const base::TimeDelta& time, + bool is_installed) { + if (is_installed) + UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.StartWorker.Time", time); + else + UMA_HISTOGRAM_MEDIUM_TIMES("ServiceWorker.StartNewWorker.Time", time); +} + +void ServiceWorkerMetrics::RecordActivateEventStatus( + ServiceWorkerStatusCode status) { + UMA_HISTOGRAM_ENUMERATION("ServiceWorker.ActivateEventStatus", status, + SERVICE_WORKER_ERROR_MAX_VALUE); +} + +void ServiceWorkerMetrics::RecordInstallEventStatus( + ServiceWorkerStatusCode status) { + UMA_HISTOGRAM_ENUMERATION("ServiceWorker.InstallEventStatus", status, + SERVICE_WORKER_ERROR_MAX_VALUE); +} + +void ServiceWorkerMetrics::RecordEventStatus(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); } } // namespace content |