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

Side by Side Diff: content/browser/service_worker/service_worker_dispatcher_host.cc

Issue 604193002: ServiceWorker: Add UMA to measure execution times of oninstall/onfetch (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 2 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 unified diff | Download patch
OLDNEW
1 // Copyright 2013 The Chromium Authors. All rights reserved. 1 // Copyright 2013 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "content/browser/service_worker/service_worker_dispatcher_host.h" 5 #include "content/browser/service_worker/service_worker_dispatcher_host.h"
6 6
7 #include "base/debug/trace_event.h" 7 #include "base/debug/trace_event.h"
8 #include "base/logging.h" 8 #include "base/logging.h"
9 #include "base/strings/utf_string_conversions.h" 9 #include "base/strings/utf_string_conversions.h"
10 #include "content/browser/message_port_message_filter.h" 10 #include "content/browser/message_port_message_filter.h"
11 #include "content/browser/message_port_service.h" 11 #include "content/browser/message_port_service.h"
12 #include "content/browser/service_worker/embedded_worker_registry.h" 12 #include "content/browser/service_worker/embedded_worker_registry.h"
13 #include "content/browser/service_worker/service_worker_context_core.h" 13 #include "content/browser/service_worker/service_worker_context_core.h"
14 #include "content/browser/service_worker/service_worker_context_wrapper.h" 14 #include "content/browser/service_worker/service_worker_context_wrapper.h"
15 #include "content/browser/service_worker/service_worker_handle.h" 15 #include "content/browser/service_worker/service_worker_handle.h"
16 #include "content/browser/service_worker/service_worker_metrics.h"
16 #include "content/browser/service_worker/service_worker_registration.h" 17 #include "content/browser/service_worker/service_worker_registration.h"
17 #include "content/browser/service_worker/service_worker_registration_handle.h" 18 #include "content/browser/service_worker/service_worker_registration_handle.h"
18 #include "content/browser/service_worker/service_worker_utils.h" 19 #include "content/browser/service_worker/service_worker_utils.h"
19 #include "content/common/service_worker/embedded_worker_messages.h" 20 #include "content/common/service_worker/embedded_worker_messages.h"
20 #include "content/common/service_worker/service_worker_messages.h" 21 #include "content/common/service_worker/service_worker_messages.h"
21 #include "ipc/ipc_message_macros.h" 22 #include "ipc/ipc_message_macros.h"
22 #include "third_party/WebKit/public/platform/WebServiceWorkerError.h" 23 #include "third_party/WebKit/public/platform/WebServiceWorkerError.h"
23 #include "url/gurl.h" 24 #include "url/gurl.h"
24 25
25 using blink::WebServiceWorkerError; 26 using blink::WebServiceWorkerError;
(...skipping 218 matching lines...) Expand 10 before | Expand all | Expand 10 after
244 if (!CanRegisterServiceWorker( 245 if (!CanRegisterServiceWorker(
245 provider_host->document_url(), pattern, script_url)) { 246 provider_host->document_url(), pattern, script_url)) {
246 BadMessageReceived(); 247 BadMessageReceived();
247 return; 248 return;
248 } 249 }
249 TRACE_EVENT_ASYNC_BEGIN2("ServiceWorker", 250 TRACE_EVENT_ASYNC_BEGIN2("ServiceWorker",
250 "ServiceWorkerDispatcherHost::RegisterServiceWorker", 251 "ServiceWorkerDispatcherHost::RegisterServiceWorker",
251 request_id, 252 request_id,
252 "Pattern", pattern.spec(), 253 "Pattern", pattern.spec(),
253 "Script URL", script_url.spec()); 254 "Script URL", script_url.spec());
255 registration_start_timings_.AddWithID(
256 new base::TimeTicks(base::TimeTicks::Now()), request_id);
257
254 GetContext()->RegisterServiceWorker( 258 GetContext()->RegisterServiceWorker(
255 pattern, 259 pattern,
256 script_url, 260 script_url,
257 provider_host, 261 provider_host,
258 base::Bind(&ServiceWorkerDispatcherHost::RegistrationComplete, 262 base::Bind(&ServiceWorkerDispatcherHost::RegistrationComplete,
259 this, 263 this,
260 thread_id, 264 thread_id,
261 provider_id, 265 provider_id,
262 request_id)); 266 request_id));
263 } 267 }
(...skipping 208 matching lines...) Expand 10 before | Expand all | Expand 10 after
472 registration->active_version()); 476 registration->active_version());
473 } 477 }
474 478
475 void ServiceWorkerDispatcherHost::RegistrationComplete( 479 void ServiceWorkerDispatcherHost::RegistrationComplete(
476 int thread_id, 480 int thread_id,
477 int provider_id, 481 int provider_id,
478 int request_id, 482 int request_id,
479 ServiceWorkerStatusCode status, 483 ServiceWorkerStatusCode status,
480 int64 registration_id, 484 int64 registration_id,
481 int64 version_id) { 485 int64 version_id) {
486 scoped_ptr<base::TimeTicks> registration_start_timing(
487 registration_start_timings_.Lookup(request_id));
488 registration_start_timings_.Remove(request_id);
489
482 if (!GetContext()) 490 if (!GetContext())
483 return; 491 return;
484 492
485 if (status != SERVICE_WORKER_OK) { 493 if (status != SERVICE_WORKER_OK) {
486 SendRegistrationError(thread_id, request_id, status); 494 SendRegistrationError(thread_id, request_id, status);
487 return; 495 return;
488 } 496 }
489 497
490 ServiceWorkerRegistration* registration = 498 ServiceWorkerRegistration* registration =
491 GetContext()->GetLiveRegistration(registration_id); 499 GetContext()->GetLiveRegistration(registration_id);
492 DCHECK(registration); 500 DCHECK(registration);
493 501
494 ServiceWorkerRegistrationObjectInfo info; 502 ServiceWorkerRegistrationObjectInfo info;
495 ServiceWorkerVersionAttributes attrs; 503 ServiceWorkerVersionAttributes attrs;
496 GetRegistrationObjectInfoAndVersionAttributes( 504 GetRegistrationObjectInfoAndVersionAttributes(
497 provider_id, registration, &info, &attrs); 505 provider_id, registration, &info, &attrs);
498 506
499 Send(new ServiceWorkerMsg_ServiceWorkerRegistered( 507 Send(new ServiceWorkerMsg_ServiceWorkerRegistered(
500 thread_id, request_id, info, attrs)); 508 thread_id, request_id, info, attrs));
501 TRACE_EVENT_ASYNC_END2("ServiceWorker", 509 TRACE_EVENT_ASYNC_END2("ServiceWorker",
502 "ServiceWorkerDispatcherHost::RegisterServiceWorker", 510 "ServiceWorkerDispatcherHost::RegisterServiceWorker",
503 request_id, 511 request_id,
504 "Registration ID", registration_id, 512 "Registration ID", registration_id,
505 "Version ID", version_id); 513 "Version ID", version_id);
514 ServiceWorkerMetrics::MeasureRegistrationTime(
515 base::TimeTicks::Now() - *registration_start_timing);
506 } 516 }
507 517
508 void ServiceWorkerDispatcherHost::OnWorkerReadyForInspection( 518 void ServiceWorkerDispatcherHost::OnWorkerReadyForInspection(
509 int embedded_worker_id) { 519 int embedded_worker_id) {
510 TRACE_EVENT0("ServiceWorker", 520 TRACE_EVENT0("ServiceWorker",
511 "ServiceWorkerDispatcherHost::OnWorkerReadyForInspection"); 521 "ServiceWorkerDispatcherHost::OnWorkerReadyForInspection");
512 if (!GetContext()) 522 if (!GetContext())
513 return; 523 return;
514 EmbeddedWorkerRegistry* registry = GetContext()->embedded_worker_registry(); 524 EmbeddedWorkerRegistry* registry = GetContext()->embedded_worker_registry();
515 if (!registry->CanHandle(embedded_worker_id)) 525 if (!registry->CanHandle(embedded_worker_id))
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
751 status, &error_type, &error_message); 761 status, &error_type, &error_message);
752 Send(new ServiceWorkerMsg_ServiceWorkerGetRegistrationError( 762 Send(new ServiceWorkerMsg_ServiceWorkerGetRegistrationError(
753 thread_id, request_id, error_type, error_message)); 763 thread_id, request_id, error_type, error_message));
754 } 764 }
755 765
756 ServiceWorkerContextCore* ServiceWorkerDispatcherHost::GetContext() { 766 ServiceWorkerContextCore* ServiceWorkerDispatcherHost::GetContext() {
757 return context_wrapper_->context(); 767 return context_wrapper_->context();
758 } 768 }
759 769
760 } // namespace content 770 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698