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

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

Issue 615493003: [ServiceWorker] Plumbing the request credentials mode to the ServiceWorker. [2/2 chromium] (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix GetFetchCredentialsMode Created 6 years, 2 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
11 #include "base/bind.h" 11 #include "base/bind.h"
12 #include "base/guid.h" 12 #include "base/guid.h"
13 #include "base/strings/stringprintf.h" 13 #include "base/strings/stringprintf.h"
14 #include "base/time/time.h" 14 #include "base/time/time.h"
15 #include "content/browser/service_worker/service_worker_fetch_dispatcher.h" 15 #include "content/browser/service_worker/service_worker_fetch_dispatcher.h"
16 #include "content/browser/service_worker/service_worker_provider_host.h" 16 #include "content/browser/service_worker/service_worker_provider_host.h"
17 #include "content/common/resource_request_body.h" 17 #include "content/common/resource_request_body.h"
18 #include "content/common/service_worker/service_worker_types.h" 18 #include "content/common/service_worker/service_worker_types.h"
19 #include "content/public/browser/blob_handle.h" 19 #include "content/public/browser/blob_handle.h"
20 #include "content/public/browser/resource_request_info.h" 20 #include "content/public/browser/resource_request_info.h"
21 #include "net/base/load_flags.h"
yhirano 2014/10/01 06:41:12 Is this include directive needed?
horo 2014/10/01 06:57:34 Done.
21 #include "net/base/net_errors.h" 22 #include "net/base/net_errors.h"
22 #include "net/http/http_request_headers.h" 23 #include "net/http/http_request_headers.h"
23 #include "net/http/http_response_headers.h" 24 #include "net/http/http_response_headers.h"
24 #include "net/http/http_response_info.h" 25 #include "net/http/http_response_info.h"
25 #include "net/http/http_util.h" 26 #include "net/http/http_util.h"
26 #include "storage/browser/blob/blob_data_handle.h" 27 #include "storage/browser/blob/blob_data_handle.h"
27 #include "storage/browser/blob/blob_storage_context.h" 28 #include "storage/browser/blob/blob_storage_context.h"
28 #include "storage/browser/blob/blob_url_request_job_factory.h" 29 #include "storage/browser/blob/blob_url_request_job_factory.h"
29 #include "ui/base/page_transition_types.h" 30 #include "ui/base/page_transition_types.h"
30 31
31 namespace content { 32 namespace content {
32 33
33 ServiceWorkerURLRequestJob::ServiceWorkerURLRequestJob( 34 ServiceWorkerURLRequestJob::ServiceWorkerURLRequestJob(
34 net::URLRequest* request, 35 net::URLRequest* request,
35 net::NetworkDelegate* network_delegate, 36 net::NetworkDelegate* network_delegate,
36 base::WeakPtr<ServiceWorkerProviderHost> provider_host, 37 base::WeakPtr<ServiceWorkerProviderHost> provider_host,
37 base::WeakPtr<storage::BlobStorageContext> blob_storage_context, 38 base::WeakPtr<storage::BlobStorageContext> blob_storage_context,
38 FetchRequestMode request_mode, 39 FetchRequestMode request_mode,
40 FetchCredentialsMode credentials_mode,
39 scoped_refptr<ResourceRequestBody> body) 41 scoped_refptr<ResourceRequestBody> body)
40 : net::URLRequestJob(request, network_delegate), 42 : net::URLRequestJob(request, network_delegate),
41 provider_host_(provider_host), 43 provider_host_(provider_host),
42 response_type_(NOT_DETERMINED), 44 response_type_(NOT_DETERMINED),
43 is_started_(false), 45 is_started_(false),
44 blob_storage_context_(blob_storage_context), 46 blob_storage_context_(blob_storage_context),
45 request_mode_(request_mode), 47 request_mode_(request_mode),
48 credentials_mode_(credentials_mode),
46 body_(body), 49 body_(body),
47 weak_factory_(this) { 50 weak_factory_(this) {
48 } 51 }
49 52
50 void ServiceWorkerURLRequestJob::FallbackToNetwork() { 53 void ServiceWorkerURLRequestJob::FallbackToNetwork() {
51 DCHECK_EQ(NOT_DETERMINED, response_type_); 54 DCHECK_EQ(NOT_DETERMINED, response_type_);
52 response_type_ = FALLBACK_TO_NETWORK; 55 response_type_ = FALLBACK_TO_NETWORK;
53 MaybeStartRequest(); 56 MaybeStartRequest();
54 } 57 }
55 58
(...skipping 212 matching lines...) Expand 10 before | Expand all | Expand 10 after
268 new ServiceWorkerFetchRequest()); 271 new ServiceWorkerFetchRequest());
269 request->mode = request_mode_; 272 request->mode = request_mode_;
270 request->url = request_->url(); 273 request->url = request_->url();
271 request->method = request_->method(); 274 request->method = request_->method();
272 const net::HttpRequestHeaders& headers = request_->extra_request_headers(); 275 const net::HttpRequestHeaders& headers = request_->extra_request_headers();
273 for (net::HttpRequestHeaders::Iterator it(headers); it.GetNext();) 276 for (net::HttpRequestHeaders::Iterator it(headers); it.GetNext();)
274 request->headers[it.name()] = it.value(); 277 request->headers[it.name()] = it.value();
275 request->blob_uuid = blob_uuid; 278 request->blob_uuid = blob_uuid;
276 request->blob_size = blob_size; 279 request->blob_size = blob_size;
277 request->referrer = GURL(request_->referrer()); 280 request->referrer = GURL(request_->referrer());
281 request->credentials_mode = credentials_mode_;
278 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request_); 282 const ResourceRequestInfo* info = ResourceRequestInfo::ForRequest(request_);
279 if (info) { 283 if (info) {
280 request->is_reload = ui::PageTransitionCoreTypeIs( 284 request->is_reload = ui::PageTransitionCoreTypeIs(
281 info->GetPageTransition(), ui::PAGE_TRANSITION_RELOAD); 285 info->GetPageTransition(), ui::PAGE_TRANSITION_RELOAD);
282 } 286 }
283 return request.Pass(); 287 return request.Pass();
284 } 288 }
285 289
286 bool ServiceWorkerURLRequestJob::CreateRequestBodyBlob(std::string* blob_uuid, 290 bool ServiceWorkerURLRequestJob::CreateRequestBodyBlob(std::string* blob_uuid,
287 uint64* blob_size) { 291 uint64* blob_size) {
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
445 449
446 void ServiceWorkerURLRequestJob::DeliverErrorResponse() { 450 void ServiceWorkerURLRequestJob::DeliverErrorResponse() {
447 // TODO(falken): Print an error to the console of the ServiceWorker and of 451 // TODO(falken): Print an error to the console of the ServiceWorker and of
448 // the requesting page. 452 // the requesting page.
449 CreateResponseHeader( 453 CreateResponseHeader(
450 500, "Service Worker Response Error", ServiceWorkerHeaderMap()); 454 500, "Service Worker Response Error", ServiceWorkerHeaderMap());
451 CommitResponseHeader(); 455 CommitResponseHeader();
452 } 456 }
453 457
454 } // namespace content 458 } // namespace content
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698