summaryrefslogtreecommitdiff
path: root/chromium/content/browser/service_worker/service_worker_metrics.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/content/browser/service_worker/service_worker_metrics.cc')
-rw-r--r--chromium/content/browser/service_worker/service_worker_metrics.cc79
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