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

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

Issue 2218943002: Introduce ServiceWorker.EventDispatchingDelay UMA (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: diff from https://codereview.chromium.org/2249063004/#ps40001 Created 4 years, 4 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_fetch_dispatcher.cc
diff --git a/content/browser/service_worker/service_worker_fetch_dispatcher.cc b/content/browser/service_worker/service_worker_fetch_dispatcher.cc
index c08f2659c7b0f86dc4df5b515fd031a8733587c2..ab799ada92e47256bd977b3da35161f95f74eeae 100644
--- a/content/browser/service_worker/service_worker_fetch_dispatcher.cc
+++ b/content/browser/service_worker/service_worker_fetch_dispatcher.cc
@@ -8,8 +8,10 @@
#include <utility>
#include "base/bind.h"
+#include "base/time/time.h"
#include "base/trace_event/trace_event.h"
#include "content/browser/service_worker/embedded_worker_status.h"
+#include "content/browser/service_worker/service_worker_metrics.h"
#include "content/browser/service_worker/service_worker_version.h"
#include "content/common/service_worker/service_worker_messages.h"
#include "content/common/service_worker/service_worker_utils.h"
@@ -76,12 +78,19 @@ ServiceWorkerMetrics::EventType FetchTypeToWaitUntilEventType(
class ServiceWorkerFetchDispatcher::ResponseCallback {
public:
ResponseCallback(base::WeakPtr<ServiceWorkerFetchDispatcher> fetch_dispatcher,
- ServiceWorkerVersion* version)
- : fetch_dispatcher_(fetch_dispatcher), version_(version) {}
+ ServiceWorkerVersion* version,
+ const base::Time& start_time)
+ : fetch_dispatcher_(fetch_dispatcher),
+ version_(version),
+ start_time_(start_time) {}
void Run(int request_id,
ServiceWorkerFetchEventResult fetch_result,
- const ServiceWorkerResponse& response) {
+ const ServiceWorkerResponse& response,
+ base::Time event_dispatch_time) {
+ ServiceWorkerMetrics::RecordFetchEventDispatchingDelay(
+ event_dispatch_time - start_time_, version_->site_for_uma());
+
const bool handled =
(fetch_result == SERVICE_WORKER_FETCH_EVENT_RESULT_RESPONSE);
if (!version_->FinishRequest(request_id, handled))
@@ -96,6 +105,7 @@ class ServiceWorkerFetchDispatcher::ResponseCallback {
base::WeakPtr<ServiceWorkerFetchDispatcher> fetch_dispatcher_;
// Owns |this|.
ServiceWorkerVersion* version_;
+ base::Time start_time_;
DISALLOW_COPY_AND_ASSIGN(ResponseCallback);
};
@@ -197,8 +207,8 @@ void ServiceWorkerFetchDispatcher::DispatchFetchEvent() {
FetchTypeToWaitUntilEventType(request_->fetch_type),
base::Bind(&ServiceWorkerUtils::NoOpStatusCallback));
- ResponseCallback* response_callback =
- new ResponseCallback(weak_factory_.GetWeakPtr(), version_.get());
+ ResponseCallback* response_callback = new ResponseCallback(
+ weak_factory_.GetWeakPtr(), version_.get(), base::Time::Now());
version_->RegisterRequestCallback<ServiceWorkerHostMsg_FetchEventResponse>(
response_id,
base::Bind(&ServiceWorkerFetchDispatcher::ResponseCallback::Run,

Powered by Google App Engine
This is Rietveld 408576698