Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1245)

Unified Diff: content/browser/service_worker/service_worker_metrics.cc

Issue 1178043002: Update ServiceWorker event handled status histogram (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: per-event metrics, exclude NTP etc Created 5 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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 00c51f8e554d4d9e48c820c9ba45d4353baa1559..aa6ea13548c42d47969d3fd3e23c51873b98021e 100644
--- a/content/browser/service_worker/service_worker_metrics.cc
+++ b/content/browser/service_worker/service_worker_metrics.cc
@@ -6,6 +6,7 @@
#include "base/metrics/histogram_macros.h"
#include "base/metrics/user_metrics_action.h"
+#include "base/strings/string_util.h"
#include "content/public/browser/browser_thread.h"
#include "content/public/browser/content_browser_client.h"
#include "content/public/browser/user_metrics.h"
@@ -21,6 +22,30 @@ void RecordURLMetricOnUI(const GURL& url) {
"ServiceWorker.ControlledPageUrl", url);
}
+// Exclude NTP scope from UMA for now.
+// TOOD(kinuko): This should be temporary, revisit this once we have
+// better idea about what should be excluded in the UMA.
+// (UIThreadSearchTermsData::GoogleBaseURLValue() returns the google base
+// URL, but not available in content layer)
+bool IsGoogleLikeScope(const GURL& scope) {
+ const char google_like_scope_prefix[] = "https://www.google.";
+ return base::StartsWithASCII(scope.spec(), google_like_scope_prefix,
+ false /* case sensitive */);
falken 2015/06/25 09:31:39 StartsWithASCII with the bool param is now depreca
kinuko 2015/07/02 14:27:26 Done.
+}
+
+enum EventHandledStatus {
+ EVENT_HANDLED,
+ EVENT_NOT_HANDLED,
+ EVENT_HANDLED_STATUS_MAX,
falken 2015/06/25 09:31:39 nit: I slightly prefer NUM_TYPES over MAX. Some ot
kinuko 2015/07/02 14:27:26 Done.
+};
+
+enum PerWorkerEventHandledStatus {
+ NO_EVENTS_HANDLED,
+ SOME_EVENTS_HANDLED,
+ ALL_EVENTS_HANDLED,
+ PER_WORKER_EVENT_HANDLED_STATUS_MAX,
+};
+
} // namespace
void ServiceWorkerMetrics::CountInitDiskCacheResult(bool result) {
@@ -113,13 +138,35 @@ void ServiceWorkerMetrics::RecordInstallEventStatus(
SERVICE_WORKER_ERROR_MAX_VALUE);
}
-void ServiceWorkerMetrics::RecordEventStatus(size_t fired_events,
- size_t handled_events) {
- if (!fired_events)
+void ServiceWorkerMetrics::RecordPerWorkerEventHandledStatus(
+ const GURL& scope,
+ EventType event,
+ size_t fired_events,
+ size_t handled_events) {
+ if (!fired_events || IsGoogleLikeScope(scope))
+ return;
+ PerWorkerEventHandledStatus status = SOME_EVENTS_HANDLED;
+ if (fired_events == handled_events)
+ status = ALL_EVENTS_HANDLED;
+ else if (handled_events == 0)
+ status = NO_EVENTS_HANDLED;
+ // For now Fetch is the only type that is recorded.
+ DCHECK_EQ(EVENT_TYPE_FETCH, event);
+ UMA_HISTOGRAM_ENUMERATION("ServiceWorker.EventHandledStatus.PerWorker.Fetch",
+ status, PER_WORKER_EVENT_HANDLED_STATUS_MAX);
+}
+
+void ServiceWorkerMetrics::RecordEventHandledStatus(const GURL& scope,
+ EventType event,
+ bool handled) {
+ if (IsGoogleLikeScope(scope))
return;
- int unhandled_ratio = (fired_events - handled_events) * 100 / fired_events;
- UMA_HISTOGRAM_PERCENTAGE("ServiceWorker.UnhandledEventRatio",
- unhandled_ratio);
+ EventHandledStatus handled_status =
+ handled ? EVENT_HANDLED : EVENT_NOT_HANDLED;
+ // For now Fetch is the only type that is recorded.
+ DCHECK_EQ(EVENT_TYPE_FETCH, event);
+ UMA_HISTOGRAM_ENUMERATION("ServiceWorker.EventHandledStatus.Fetch",
+ handled_status, EVENT_HANDLED_STATUS_MAX);
}
void ServiceWorkerMetrics::RecordFetchEventStatus(

Powered by Google App Engine
This is Rietveld 408576698