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

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

Issue 362183002: ServiceWorker: Set provider host document URL for no-cache load. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 5 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 "content/browser/service_worker/service_worker_context_core.h" 7 #include "content/browser/service_worker/service_worker_context_core.h"
8 #include "content/browser/service_worker/service_worker_provider_host.h" 8 #include "content/browser/service_worker/service_worker_provider_host.h"
9 #include "content/browser/service_worker/service_worker_registration.h" 9 #include "content/browser/service_worker/service_worker_registration.h"
10 #include "content/browser/service_worker/service_worker_url_request_job.h" 10 #include "content/browser/service_worker/service_worker_url_request_job.h"
(...skipping 27 matching lines...) Expand all
38 if (is_main_resource_load_) 38 if (is_main_resource_load_)
39 provider_host_->active_version()->ScheduleUpdate(); 39 provider_host_->active_version()->ScheduleUpdate();
40 else 40 else
41 provider_host_->active_version()->DeferScheduledUpdate(); 41 provider_host_->active_version()->DeferScheduledUpdate();
42 } 42 }
43 } 43 }
44 44
45 net::URLRequestJob* ServiceWorkerControlleeRequestHandler::MaybeCreateJob( 45 net::URLRequestJob* ServiceWorkerControlleeRequestHandler::MaybeCreateJob(
46 net::URLRequest* request, 46 net::URLRequest* request,
47 net::NetworkDelegate* network_delegate) { 47 net::NetworkDelegate* network_delegate) {
48 if (is_main_resource_load_ && provider_host_)
49 provider_host_->SetDocumentUrl(request->url());
50
48 if (!context_ || !provider_host_ || 51 if (!context_ || !provider_host_ ||
49 request->load_flags() & net::LOAD_BYPASS_CACHE) { 52 request->load_flags() & net::LOAD_BYPASS_CACHE) {
michaeln 2014/07/02 18:40:30 might make sense to split the BYPASS condition out
50 // We can't do anything other than to fall back to network. 53 // We can't do anything other than to fall back to network.
51 job_ = NULL; 54 job_ = NULL;
52 return NULL; 55 return NULL;
53 } 56 }
54 57
55 // This may get called multiple times for original and redirect requests: 58 // This may get called multiple times for original and redirect requests:
56 // A. original request case: job_ is null, no previous location info. 59 // A. original request case: job_ is null, no previous location info.
57 // B. redirect or restarted request case: 60 // B. redirect or restarted request case:
58 // a) job_ is non-null if the previous location was forwarded to SW. 61 // a) job_ is non-null if the previous location was forwarded to SW.
59 // b) job_ is null if the previous location was fallback. 62 // b) job_ is null if the previous location was fallback.
(...skipping 30 matching lines...) Expand all
90 void ServiceWorkerControlleeRequestHandler::PrepareForMainResource( 93 void ServiceWorkerControlleeRequestHandler::PrepareForMainResource(
91 const GURL& url) { 94 const GURL& url) {
92 DCHECK(job_.get()); 95 DCHECK(job_.get());
93 DCHECK(context_); 96 DCHECK(context_);
94 // The corresponding provider_host may already have associate version in 97 // The corresponding provider_host may already have associate version in
95 // redirect case, unassociate it now. 98 // redirect case, unassociate it now.
96 provider_host_->SetActiveVersion(NULL); 99 provider_host_->SetActiveVersion(NULL);
97 provider_host_->SetWaitingVersion(NULL); 100 provider_host_->SetWaitingVersion(NULL);
98 101
99 GURL stripped_url = net::SimplifyUrlForRequest(url); 102 GURL stripped_url = net::SimplifyUrlForRequest(url);
100 provider_host_->SetDocumentUrl(stripped_url);
michaeln 2014/07/02 18:40:30 probably should continue to pass in a stripped_url
101 context_->storage()->FindRegistrationForDocument( 103 context_->storage()->FindRegistrationForDocument(
102 stripped_url, 104 stripped_url,
103 base::Bind(&self::DidLookupRegistrationForMainResource, 105 base::Bind(&self::DidLookupRegistrationForMainResource,
104 weak_factory_.GetWeakPtr())); 106 weak_factory_.GetWeakPtr()));
105 } 107 }
106 108
107 void 109 void
108 ServiceWorkerControlleeRequestHandler::DidLookupRegistrationForMainResource( 110 ServiceWorkerControlleeRequestHandler::DidLookupRegistrationForMainResource(
109 ServiceWorkerStatusCode status, 111 ServiceWorkerStatusCode status,
110 const scoped_refptr<ServiceWorkerRegistration>& registration) { 112 const scoped_refptr<ServiceWorkerRegistration>& registration) {
(...skipping 13 matching lines...) Expand all
124 } 126 }
125 127
126 void ServiceWorkerControlleeRequestHandler::PrepareForSubResource() { 128 void ServiceWorkerControlleeRequestHandler::PrepareForSubResource() {
127 DCHECK(job_.get()); 129 DCHECK(job_.get());
128 DCHECK(context_); 130 DCHECK(context_);
129 DCHECK(provider_host_->active_version()); 131 DCHECK(provider_host_->active_version());
130 job_->ForwardToServiceWorker(); 132 job_->ForwardToServiceWorker();
131 } 133 }
132 134
133 } // namespace content 135 } // namespace content
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698