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

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: 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 39 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 skip_service_worker_ = true; 94 skip_service_worker_ = true;
93 job_ = NULL; 95 job_ = NULL;
94 return NULL; 96 return NULL;
95 } 97 }
96 98
97 // It's for original request (A) or redirect case (B-a or B-b). 99 // It's for original request (A) or redirect case (B-a or B-b).
98 DCHECK(!job_.get() || job_->ShouldForwardToServiceWorker()); 100 DCHECK(!job_.get() || job_->ShouldForwardToServiceWorker());
99 101
100 job_ = new ServiceWorkerURLRequestJob( 102 job_ = new ServiceWorkerURLRequestJob(
101 request, network_delegate, provider_host_, blob_storage_context_, 103 request, network_delegate, provider_host_, blob_storage_context_,
102 resource_context, request_mode_, credentials_mode_, 104 resource_context, request_mode_, credentials_mode_, redirect_mode_,
103 is_main_resource_load_, request_context_type_, frame_type_, body_); 105 is_main_resource_load_, request_context_type_, frame_type_, body_);
104 resource_context_ = resource_context; 106 resource_context_ = resource_context;
105 107
106 if (is_main_resource_load_) 108 if (is_main_resource_load_)
107 PrepareForMainResource(request); 109 PrepareForMainResource(request);
108 else 110 else
109 PrepareForSubResource(); 111 PrepareForSubResource();
110 112
111 if (job_->ShouldFallbackToNetwork()) { 113 if (job_->ShouldFallbackToNetwork()) {
112 // If we know we can fallback to network at this point (in case 114 // If we know we can fallback to network at this point (in case
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 } 272 }
271 273
272 void ServiceWorkerControlleeRequestHandler::PrepareForSubResource() { 274 void ServiceWorkerControlleeRequestHandler::PrepareForSubResource() {
273 DCHECK(job_.get()); 275 DCHECK(job_.get());
274 DCHECK(context_); 276 DCHECK(context_);
275 DCHECK(provider_host_->active_version()); 277 DCHECK(provider_host_->active_version());
276 job_->ForwardToServiceWorker(); 278 job_->ForwardToServiceWorker();
277 } 279 }
278 280
279 } // namespace content 281 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698