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

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

Issue 1271733002: [2/3 chromium] Support redirect option of Request and "opaqueredirect" response type. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add _MODE to avoid compile error at Windows. Created 5 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 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 10 matching lines...) Expand all
21 #include "net/url_request/url_request.h" 21 #include "net/url_request/url_request.h"
22 22
23 namespace content { 23 namespace content {
24 24
25 ServiceWorkerControlleeRequestHandler::ServiceWorkerControlleeRequestHandler( 25 ServiceWorkerControlleeRequestHandler::ServiceWorkerControlleeRequestHandler(
26 base::WeakPtr<ServiceWorkerContextCore> context, 26 base::WeakPtr<ServiceWorkerContextCore> context,
27 base::WeakPtr<ServiceWorkerProviderHost> provider_host, 27 base::WeakPtr<ServiceWorkerProviderHost> provider_host,
28 base::WeakPtr<storage::BlobStorageContext> blob_storage_context, 28 base::WeakPtr<storage::BlobStorageContext> blob_storage_context,
29 FetchRequestMode request_mode, 29 FetchRequestMode request_mode,
30 FetchCredentialsMode credentials_mode, 30 FetchCredentialsMode credentials_mode,
31 FetchRedirectMode redirect_mode,
31 ResourceType resource_type, 32 ResourceType resource_type,
32 RequestContextType request_context_type, 33 RequestContextType request_context_type,
33 RequestContextFrameType frame_type, 34 RequestContextFrameType frame_type,
34 scoped_refptr<ResourceRequestBody> body) 35 scoped_refptr<ResourceRequestBody> body)
35 : ServiceWorkerRequestHandler(context, 36 : ServiceWorkerRequestHandler(context,
36 provider_host, 37 provider_host,
37 blob_storage_context, 38 blob_storage_context,
38 resource_type), 39 resource_type),
39 is_main_resource_load_( 40 is_main_resource_load_(
40 ServiceWorkerUtils::IsMainResourceType(resource_type)), 41 ServiceWorkerUtils::IsMainResourceType(resource_type)),
41 request_mode_(request_mode), 42 request_mode_(request_mode),
42 credentials_mode_(credentials_mode), 43 credentials_mode_(credentials_mode),
44 redirect_mode_(redirect_mode),
43 request_context_type_(request_context_type), 45 request_context_type_(request_context_type),
44 frame_type_(frame_type), 46 frame_type_(frame_type),
45 body_(body), 47 body_(body),
46 skip_service_worker_(false), 48 skip_service_worker_(false),
47 weak_factory_(this) {} 49 weak_factory_(this) {}
48 50
49 ServiceWorkerControlleeRequestHandler:: 51 ServiceWorkerControlleeRequestHandler::
50 ~ServiceWorkerControlleeRequestHandler() { 52 ~ServiceWorkerControlleeRequestHandler() {
51 // Navigation triggers an update to occur shortly after the page and 53 // Navigation triggers an update to occur shortly after the page and
52 // its initial subresources load. 54 // its initial subresources load.
(...skipping 36 matching lines...) Expand 10 before | Expand all | Expand 10 after
89 if ((job_.get() && job_->ShouldFallbackToNetwork()) || skip_service_worker_) { 91 if ((job_.get() && job_->ShouldFallbackToNetwork()) || skip_service_worker_) {
90 FallbackToNetwork(); 92 FallbackToNetwork();
91 return NULL; 93 return NULL;
92 } 94 }
93 95
94 // It's for original request (A) or redirect case (B-a or B-b). 96 // It's for original request (A) or redirect case (B-a or B-b).
95 DCHECK(!job_.get() || job_->ShouldForwardToServiceWorker()); 97 DCHECK(!job_.get() || job_->ShouldForwardToServiceWorker());
96 98
97 job_ = new ServiceWorkerURLRequestJob( 99 job_ = new ServiceWorkerURLRequestJob(
98 request, network_delegate, provider_host_, blob_storage_context_, 100 request, network_delegate, provider_host_, blob_storage_context_,
99 resource_context, request_mode_, credentials_mode_, 101 resource_context, request_mode_, credentials_mode_, redirect_mode_,
100 is_main_resource_load_, request_context_type_, frame_type_, body_); 102 is_main_resource_load_, request_context_type_, frame_type_, body_);
101 resource_context_ = resource_context; 103 resource_context_ = resource_context;
102 104
103 if (is_main_resource_load_) 105 if (is_main_resource_load_)
104 PrepareForMainResource(request); 106 PrepareForMainResource(request);
105 else 107 else
106 PrepareForSubResource(); 108 PrepareForSubResource();
107 109
108 if (job_->ShouldFallbackToNetwork()) { 110 if (job_->ShouldFallbackToNetwork()) {
109 // If we know we can fallback to network at this point (in case 111 // If we know we can fallback to network at this point (in case
(...skipping 166 matching lines...) Expand 10 before | Expand all | Expand 10 after
276 void ServiceWorkerControlleeRequestHandler::FallbackToNetwork() { 278 void ServiceWorkerControlleeRequestHandler::FallbackToNetwork() {
277 // Once a subresource request was fallbacked to the network, we set 279 // Once a subresource request was fallbacked to the network, we set
278 // |skip_service_worker_| because the request should not go to the service 280 // |skip_service_worker_| because the request should not go to the service
279 // worker. 281 // worker.
280 if (!is_main_resource_load_) 282 if (!is_main_resource_load_)
281 skip_service_worker_ = true; 283 skip_service_worker_ = true;
282 job_ = NULL; 284 job_ = NULL;
283 } 285 }
284 286
285 } // namespace content 287 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698