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

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

Issue 2654663004: [Not for review] record detailed time breakdown of SW related requests.
Patch Set: add stream uma Created 3 years, 10 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 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 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_url_request_job.h" 5 #include "content/browser/service_worker/service_worker_url_request_job.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <map> 10 #include <map>
(...skipping 236 matching lines...) Expand 10 before | Expand all | Expand 10 after
247 request_mode_(request_mode), 247 request_mode_(request_mode),
248 credentials_mode_(credentials_mode), 248 credentials_mode_(credentials_mode),
249 redirect_mode_(redirect_mode), 249 redirect_mode_(redirect_mode),
250 resource_type_(resource_type), 250 resource_type_(resource_type),
251 request_context_type_(request_context_type), 251 request_context_type_(request_context_type),
252 frame_type_(frame_type), 252 frame_type_(frame_type),
253 fall_back_required_(false), 253 fall_back_required_(false),
254 body_(body), 254 body_(body),
255 fetch_type_(fetch_type), 255 fetch_type_(fetch_type),
256 timeout_(timeout), 256 timeout_(timeout),
257 job_creation_time_(base::TimeTicks::Now()),
257 weak_factory_(this) { 258 weak_factory_(this) {
258 DCHECK(delegate_) << "ServiceWorkerURLRequestJob requires a delegate"; 259 DCHECK(delegate_) << "ServiceWorkerURLRequestJob requires a delegate";
259 } 260 }
260 261
261 ServiceWorkerURLRequestJob::~ServiceWorkerURLRequestJob() { 262 ServiceWorkerURLRequestJob::~ServiceWorkerURLRequestJob() {
262 stream_reader_.reset(); 263 stream_reader_.reset();
263 file_size_resolver_.reset(); 264 file_size_resolver_.reset();
264 265
265 if (!ShouldRecordResult()) 266 if (!ShouldRecordResult())
266 return; 267 return;
(...skipping 613 matching lines...) Expand 10 before | Expand all | Expand 10 after
880 request()->net_log(), 881 request()->net_log(),
881 base::Bind(&ServiceWorkerURLRequestJob::DidPrepareFetchEvent, 882 base::Bind(&ServiceWorkerURLRequestJob::DidPrepareFetchEvent,
882 weak_factory_.GetWeakPtr(), active_worker), 883 weak_factory_.GetWeakPtr(), active_worker),
883 base::Bind(&ServiceWorkerURLRequestJob::DidDispatchFetchEvent, 884 base::Bind(&ServiceWorkerURLRequestJob::DidDispatchFetchEvent,
884 weak_factory_.GetWeakPtr()))); 885 weak_factory_.GetWeakPtr())));
885 worker_start_time_ = base::TimeTicks::Now(); 886 worker_start_time_ = base::TimeTicks::Now();
886 did_navigation_preload_ = fetch_dispatcher_->MaybeStartNavigationPreload( 887 did_navigation_preload_ = fetch_dispatcher_->MaybeStartNavigationPreload(
887 request(), 888 request(),
888 base::BindOnce(&ServiceWorkerURLRequestJob::OnNavigationPreloadResponse, 889 base::BindOnce(&ServiceWorkerURLRequestJob::OnNavigationPreloadResponse,
889 weak_factory_.GetWeakPtr())); 890 weak_factory_.GetWeakPtr()));
891 fetch_dispatcher_->set_renderer_request_time(renderer_request_time_);
892 fetch_dispatcher_->set_handler_creation_time(handler_creation_time_);
893 fetch_dispatcher_->set_job_creation_time(job_creation_time_);
894 fetch_dispatcher_->set_worker_start_time(worker_start_time_);
890 fetch_dispatcher_->Run(); 895 fetch_dispatcher_->Run();
891 } 896 }
892 897
893 void ServiceWorkerURLRequestJob::OnNavigationPreloadResponse() { 898 void ServiceWorkerURLRequestJob::OnNavigationPreloadResponse() {
894 DCHECK(navigation_preload_response_time_.is_null()); 899 DCHECK(navigation_preload_response_time_.is_null());
895 navigation_preload_response_time_ = base::TimeTicks::Now(); 900 navigation_preload_response_time_ = base::TimeTicks::Now();
896 MaybeReportNavigationPreloadMetrics(); 901 MaybeReportNavigationPreloadMetrics();
897 } 902 }
898 903
899 void ServiceWorkerURLRequestJob::MaybeReportNavigationPreloadMetrics() { 904 void ServiceWorkerURLRequestJob::MaybeReportNavigationPreloadMetrics() {
900 if (worker_start_time_.is_null() || worker_ready_time_.is_null() || 905 if (worker_start_time_.is_null() || worker_ready_time_.is_null() ||
901 navigation_preload_response_time_.is_null()) { 906 navigation_preload_response_time_.is_null()) {
902 return; 907 return;
903 } 908 }
904 DCHECK(!reported_navigation_preload_metrics_); 909 DCHECK(!reported_navigation_preload_metrics_);
905 reported_navigation_preload_metrics_ = true; 910 reported_navigation_preload_metrics_ = true;
906 911
907 ServiceWorkerMetrics::RecordNavigationPreloadResponse( 912 ServiceWorkerMetrics::RecordNavigationPreloadResponse(
908 worker_ready_time_ - worker_start_time_, 913 worker_ready_time_ - worker_start_time_,
909 navigation_preload_response_time_ - worker_start_time_, 914 navigation_preload_response_time_ - worker_start_time_,
910 initial_worker_status_, worker_start_situation_); 915 initial_worker_status_, worker_start_situation_);
911 } 916 }
912 917
913 } // namespace content 918 } // namespace content
OLDNEW
« no previous file with comments | « content/browser/service_worker/service_worker_url_request_job.h ('k') | content/child/resource_dispatcher.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698