Index: content/browser/service_worker/service_worker_dispatcher_host.cc |
diff --git a/content/browser/service_worker/service_worker_dispatcher_host.cc b/content/browser/service_worker/service_worker_dispatcher_host.cc |
index da7979b575e2a67efa4f607a45e7324a76f435ab..77cf793d9df83b389f4baa4501f30515f94fbf33 100644 |
--- a/content/browser/service_worker/service_worker_dispatcher_host.cc |
+++ b/content/browser/service_worker/service_worker_dispatcher_host.cc |
@@ -13,6 +13,7 @@ |
#include "content/browser/service_worker/service_worker_context_core.h" |
#include "content/browser/service_worker/service_worker_context_wrapper.h" |
#include "content/browser/service_worker/service_worker_handle.h" |
+#include "content/browser/service_worker/service_worker_metrics.h" |
#include "content/browser/service_worker/service_worker_registration.h" |
#include "content/browser/service_worker/service_worker_registration_handle.h" |
#include "content/browser/service_worker/service_worker_utils.h" |
@@ -251,6 +252,9 @@ void ServiceWorkerDispatcherHost::OnRegisterServiceWorker( |
request_id, |
"Pattern", pattern.spec(), |
"Script URL", script_url.spec()); |
+ registration_start_timings_.AddWithID( |
+ new base::TimeTicks(base::TimeTicks::Now()), request_id); |
+ |
GetContext()->RegisterServiceWorker( |
pattern, |
script_url, |
@@ -479,6 +483,10 @@ void ServiceWorkerDispatcherHost::RegistrationComplete( |
ServiceWorkerStatusCode status, |
int64 registration_id, |
int64 version_id) { |
+ scoped_ptr<base::TimeTicks> registration_start_timing( |
+ registration_start_timings_.Lookup(request_id)); |
+ registration_start_timings_.Remove(request_id); |
+ |
if (!GetContext()) |
return; |
@@ -503,6 +511,8 @@ void ServiceWorkerDispatcherHost::RegistrationComplete( |
request_id, |
"Registration ID", registration_id, |
"Version ID", version_id); |
+ ServiceWorkerMetrics::MeasureRegistrationTime( |
+ base::TimeTicks::Now() - *registration_start_timing); |
} |
void ServiceWorkerDispatcherHost::OnWorkerReadyForInspection( |