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

Side by Side Diff: content/browser/service_worker/service_worker_url_request_job.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_url_request_job.h" 5 #include "content/browser/service_worker/service_worker_url_request_job.h"
6 6
7 #include <map> 7 #include <map>
8 #include <string> 8 #include <string>
9 #include <vector> 9 #include <vector>
10 10
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
97 } // namespace 97 } // namespace
98 98
99 ServiceWorkerURLRequestJob::ServiceWorkerURLRequestJob( 99 ServiceWorkerURLRequestJob::ServiceWorkerURLRequestJob(
100 net::URLRequest* request, 100 net::URLRequest* request,
101 net::NetworkDelegate* network_delegate, 101 net::NetworkDelegate* network_delegate,
102 base::WeakPtr<ServiceWorkerProviderHost> provider_host, 102 base::WeakPtr<ServiceWorkerProviderHost> provider_host,
103 base::WeakPtr<storage::BlobStorageContext> blob_storage_context, 103 base::WeakPtr<storage::BlobStorageContext> blob_storage_context,
104 const ResourceContext* resource_context, 104 const ResourceContext* resource_context,
105 FetchRequestMode request_mode, 105 FetchRequestMode request_mode,
106 FetchCredentialsMode credentials_mode, 106 FetchCredentialsMode credentials_mode,
107 FetchRedirectMode redirect_mode,
107 bool is_main_resource_load, 108 bool is_main_resource_load,
108 RequestContextType request_context_type, 109 RequestContextType request_context_type,
109 RequestContextFrameType frame_type, 110 RequestContextFrameType frame_type,
110 scoped_refptr<ResourceRequestBody> body) 111 scoped_refptr<ResourceRequestBody> body)
111 : net::URLRequestJob(request, network_delegate), 112 : net::URLRequestJob(request, network_delegate),
112 provider_host_(provider_host), 113 provider_host_(provider_host),
113 response_type_(NOT_DETERMINED), 114 response_type_(NOT_DETERMINED),
114 is_started_(false), 115 is_started_(false),
115 service_worker_response_type_(blink::WebServiceWorkerResponseTypeDefault), 116 service_worker_response_type_(blink::WebServiceWorkerResponseTypeDefault),
116 blob_storage_context_(blob_storage_context), 117 blob_storage_context_(blob_storage_context),
117 resource_context_(resource_context), 118 resource_context_(resource_context),
118 stream_pending_buffer_size_(0), 119 stream_pending_buffer_size_(0),
119 request_mode_(request_mode), 120 request_mode_(request_mode),
120 credentials_mode_(credentials_mode), 121 credentials_mode_(credentials_mode),
122 redirect_mode_(redirect_mode),
121 is_main_resource_load_(is_main_resource_load), 123 is_main_resource_load_(is_main_resource_load),
122 request_context_type_(request_context_type), 124 request_context_type_(request_context_type),
123 frame_type_(frame_type), 125 frame_type_(frame_type),
124 fall_back_required_(false), 126 fall_back_required_(false),
125 body_(body), 127 body_(body),
126 weak_factory_(this) { 128 weak_factory_(this) {}
127 }
128 129
129 void ServiceWorkerURLRequestJob::FallbackToNetwork() { 130 void ServiceWorkerURLRequestJob::FallbackToNetwork() {
130 DCHECK_EQ(NOT_DETERMINED, response_type_); 131 DCHECK_EQ(NOT_DETERMINED, response_type_);
131 response_type_ = FALLBACK_TO_NETWORK; 132 response_type_ = FALLBACK_TO_NETWORK;
132 MaybeStartRequest(); 133 MaybeStartRequest();
133 } 134 }
134 135
135 void ServiceWorkerURLRequestJob::ForwardToServiceWorker() { 136 void ServiceWorkerURLRequestJob::ForwardToServiceWorker() {
136 DCHECK_EQ(NOT_DETERMINED, response_type_); 137 DCHECK_EQ(NOT_DETERMINED, response_type_);
137 response_type_ = FORWARD_TO_SERVICE_WORKER; 138 response_type_ = FORWARD_TO_SERVICE_WORKER;
(...skipping 337 matching lines...) Expand 10 before | Expand all | Expand 10 after
475 request->method = request_->method(); 476 request->method = request_->method();
476 const net::HttpRequestHeaders& headers = request_->extra_request_headers(); 477 const net::HttpRequestHeaders& headers = request_->extra_request_headers();
477 for (net::HttpRequestHeaders::Iterator it(headers); it.GetNext();) { 478 for (net::HttpRequestHeaders::Iterator it(headers); it.GetNext();) {
478 if (ServiceWorkerContext::IsExcludedHeaderNameForFetchEvent(it.name())) 479 if (ServiceWorkerContext::IsExcludedHeaderNameForFetchEvent(it.name()))
479 continue; 480 continue;
480 request->headers[it.name()] = it.value(); 481 request->headers[it.name()] = it.value();
481 } 482 }
482 request->blob_uuid = blob_uuid; 483 request->blob_uuid = blob_uuid;
483 request->blob_size = blob_size; 484 request->blob_size = blob_size;
484 request->credentials_mode = credentials_mode_; 485 request->credentials_mode = credentials_mode_;
486 request->redirect_mode = redirect_mode_;
485 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request_); 487 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request_);
486 if (info) { 488 if (info) {
487 request->is_reload = ui::PageTransitionCoreTypeIs( 489 request->is_reload = ui::PageTransitionCoreTypeIs(
488 info->GetPageTransition(), ui::PAGE_TRANSITION_RELOAD); 490 info->GetPageTransition(), ui::PAGE_TRANSITION_RELOAD);
489 request->referrer = 491 request->referrer =
490 Referrer(GURL(request_->referrer()), info->GetReferrerPolicy()); 492 Referrer(GURL(request_->referrer()), info->GetReferrerPolicy());
491 } else { 493 } else {
492 CHECK( 494 CHECK(
493 request_->referrer_policy() == 495 request_->referrer_policy() ==
494 net::URLRequest::CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE); 496 net::URLRequest::CLEAR_REFERRER_ON_TRANSITION_FROM_SECURE_TO_INSECURE);
(...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after
802 } 804 }
803 if (!waiting_stream_url_.is_empty()) { 805 if (!waiting_stream_url_.is_empty()) {
804 StreamRegistry* stream_registry = 806 StreamRegistry* stream_registry =
805 GetStreamContextForResourceContext(resource_context_)->registry(); 807 GetStreamContextForResourceContext(resource_context_)->registry();
806 stream_registry->RemoveRegisterObserver(waiting_stream_url_); 808 stream_registry->RemoveRegisterObserver(waiting_stream_url_);
807 stream_registry->AbortPendingStream(waiting_stream_url_); 809 stream_registry->AbortPendingStream(waiting_stream_url_);
808 } 810 }
809 } 811 }
810 812
811 } // namespace content 813 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698