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

Unified Diff: content/browser/service_worker/service_worker_version.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_version.cc
diff --git a/content/browser/service_worker/service_worker_version.cc b/content/browser/service_worker/service_worker_version.cc
index 0c3fedb14f76a46b659781a10ad2892beeeda60b..2a2477562bc4df9df8311be8cc03e0da63688b3e 100644
--- a/content/browser/service_worker/service_worker_version.cc
+++ b/content/browser/service_worker/service_worker_version.cc
@@ -4,6 +4,9 @@
#include "content/browser/service_worker/service_worker_version.h"
+#include <map>
+#include <string>
+
#include "base/command_line.h"
#include "base/location.h"
#include "base/memory/ref_counted.h"
@@ -394,20 +397,30 @@ const int ServiceWorkerVersion::kRequestTimeoutMinutes = 5;
class ServiceWorkerVersion::Metrics {
public:
- Metrics() {}
+ using EventType = ServiceWorkerMetrics::EventType;
+ Metrics(const GURL& scope) : scope_(scope) {}
falken 2015/06/25 09:31:39 nit: explicit
kinuko 2015/07/02 14:27:26 Acknowledged.
~Metrics() {
- ServiceWorkerMetrics::RecordEventStatus(fired_events, handled_events);
+ for (const auto& ev : event_stats_) {
+ ServiceWorkerMetrics::RecordPerWorkerEventHandledStatus(
+ scope_, ev.first, ev.second.handled_events, ev.second.fired_events);
+ }
}
- void RecordEventStatus(bool handled) {
- ++fired_events;
+ void RecordEventHandledStatus(EventType event, bool handled) {
+ ServiceWorkerMetrics::RecordEventHandledStatus(scope_, event, handled);
+ event_stats_[event].fired_events++;
if (handled)
- ++handled_events;
+ event_stats_[event].handled_events++;
}
private:
- size_t fired_events = 0;
- size_t handled_events = 0;
+ struct EventStat {
+ size_t fired_events = 0;
+ size_t handled_events = 0;
+ };
+
+ const GURL scope_;
+ std::map<EventType, EventStat> event_stats_;
DISALLOW_COPY_AND_ASSIGN(Metrics);
};
@@ -480,7 +493,7 @@ ServiceWorkerVersion::ServiceWorkerVersion(
context_(context),
script_cache_map_(this, context),
ping_controller_(new PingController(this)),
- metrics_(new Metrics),
+ metrics_(new Metrics(scope_)),
weak_factory_(this) {
DCHECK(context_);
DCHECK(registration);
@@ -1347,7 +1360,8 @@ void ServiceWorkerVersion::OnFetchEventFinished(
// TODO(kinuko): Record other event statuses too.
const bool handled = (result == SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE);
- metrics_->RecordEventStatus(handled);
+ metrics_->RecordEventHandledStatus(ServiceWorkerMetrics::EVENT_TYPE_FETCH,
+ handled);
scoped_refptr<ServiceWorkerVersion> protect(this);
callback->Run(SERVICE_WORKER_OK, result, response);

Powered by Google App Engine
This is Rietveld 408576698