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

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

Issue 1146253004: Add workerReady timing for ServiceWorker controlled requests [2/3] (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: 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 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_controllee_request_handl er.h" 5 #include "content/browser/service_worker/service_worker_controllee_request_handl er.h"
6 6
7 #include "base/trace_event/trace_event.h" 7 #include "base/trace_event/trace_event.h"
8 #include "content/browser/service_worker/service_worker_context_core.h" 8 #include "content/browser/service_worker/service_worker_context_core.h"
9 #include "content/browser/service_worker/service_worker_metrics.h" 9 #include "content/browser/service_worker/service_worker_metrics.h"
10 #include "content/browser/service_worker/service_worker_provider_host.h" 10 #include "content/browser/service_worker/service_worker_provider_host.h"
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
58 58
59 if (is_main_resource_load_ && provider_host_) 59 if (is_main_resource_load_ && provider_host_)
60 provider_host_->SetAllowAssociation(true); 60 provider_host_->SetAllowAssociation(true);
61 } 61 }
62 62
63 net::URLRequestJob* ServiceWorkerControlleeRequestHandler::MaybeCreateJob( 63 net::URLRequestJob* ServiceWorkerControlleeRequestHandler::MaybeCreateJob(
64 net::URLRequest* request, 64 net::URLRequest* request,
65 net::NetworkDelegate* network_delegate, 65 net::NetworkDelegate* network_delegate,
66 ResourceContext* resource_context) { 66 ResourceContext* resource_context) {
67 if (job_.get() && worker_start_time_.is_null()) { 67 if (job_.get() && worker_start_time_.is_null()) {
68 // Save worker-start time of the first job. 68 // Save worker timeings of the first job.
Tom Sepez 2015/06/05 15:33:06 nit: sp. timings
Kunihiko Sakamoto 2015/06/08 01:51:43 Done.
69 worker_start_time_ = job_->worker_start_time(); 69 worker_start_time_ = job_->worker_start_time();
70 worker_ready_time_ = job_->worker_ready_time();
70 } 71 }
71 72
72 if (!context_ || !provider_host_) { 73 if (!context_ || !provider_host_) {
73 // We can't do anything other than to fall back to network. 74 // We can't do anything other than to fall back to network.
74 job_ = NULL; 75 job_ = NULL;
75 return NULL; 76 return NULL;
76 } 77 }
77 78
78 // This may get called multiple times for original and redirect requests: 79 // This may get called multiple times for original and redirect requests:
79 // A. original request case: job_ is null, no previous location info. 80 // A. original request case: job_ is null, no previous location info.
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
112 } 113 }
113 114
114 return job_.get(); 115 return job_.get();
115 } 116 }
116 117
117 void ServiceWorkerControlleeRequestHandler::GetExtraResponseInfo( 118 void ServiceWorkerControlleeRequestHandler::GetExtraResponseInfo(
118 bool* was_fetched_via_service_worker, 119 bool* was_fetched_via_service_worker,
119 bool* was_fallback_required_by_service_worker, 120 bool* was_fallback_required_by_service_worker,
120 GURL* original_url_via_service_worker, 121 GURL* original_url_via_service_worker,
121 blink::WebServiceWorkerResponseType* response_type_via_service_worker, 122 blink::WebServiceWorkerResponseType* response_type_via_service_worker,
122 base::TimeTicks* worker_start_time) const { 123 base::TimeTicks* worker_start_time,
124 base::TimeTicks* worker_ready_time) const {
123 if (!job_.get()) { 125 if (!job_.get()) {
124 *was_fetched_via_service_worker = false; 126 *was_fetched_via_service_worker = false;
125 *was_fallback_required_by_service_worker = false; 127 *was_fallback_required_by_service_worker = false;
126 *original_url_via_service_worker = GURL(); 128 *original_url_via_service_worker = GURL();
127 *worker_start_time = worker_start_time_; 129 *worker_start_time = worker_start_time_;
130 *worker_ready_time = worker_ready_time_;
128 return; 131 return;
129 } 132 }
130 job_->GetExtraResponseInfo( 133 job_->GetExtraResponseInfo(
131 was_fetched_via_service_worker, was_fallback_required_by_service_worker, 134 was_fetched_via_service_worker, was_fallback_required_by_service_worker,
132 original_url_via_service_worker, response_type_via_service_worker, 135 original_url_via_service_worker, response_type_via_service_worker,
133 worker_start_time); 136 worker_start_time, worker_ready_time);
134 if (!worker_start_time_.is_null()) { 137 if (!worker_start_time_.is_null()) {
135 // If we have worker start time from previous job, use it. 138 // If we have worker timings from previous job, use it.
136 *worker_start_time = worker_start_time_; 139 *worker_start_time = worker_start_time_;
140 *worker_ready_time = worker_ready_time_;
137 } 141 }
138 } 142 }
139 143
140 void ServiceWorkerControlleeRequestHandler::PrepareForMainResource( 144 void ServiceWorkerControlleeRequestHandler::PrepareForMainResource(
141 const net::URLRequest* request) { 145 const net::URLRequest* request) {
142 DCHECK(job_.get()); 146 DCHECK(job_.get());
143 DCHECK(context_); 147 DCHECK(context_);
144 DCHECK(provider_host_); 148 DCHECK(provider_host_);
145 TRACE_EVENT_ASYNC_BEGIN1( 149 TRACE_EVENT_ASYNC_BEGIN1(
146 "ServiceWorker", 150 "ServiceWorker",
(...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 } 274 }
271 275
272 void ServiceWorkerControlleeRequestHandler::PrepareForSubResource() { 276 void ServiceWorkerControlleeRequestHandler::PrepareForSubResource() {
273 DCHECK(job_.get()); 277 DCHECK(job_.get());
274 DCHECK(context_); 278 DCHECK(context_);
275 DCHECK(provider_host_->active_version()); 279 DCHECK(provider_host_->active_version());
276 job_->ForwardToServiceWorker(); 280 job_->ForwardToServiceWorker();
277 } 281 }
278 282
279 } // namespace content 283 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698