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

Side by Side Diff: Source/modules/serviceworkers/FetchRequestData.cpp

Issue 587213003: [ServiceWorker] Plumbing the request mode from the renderer to the ServiceWorker. [1/2 blink] (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: wrap in 80 columns 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 "config.h" 5 #include "config.h"
6 #include "FetchRequestData.h" 6 #include "FetchRequestData.h"
7 7
8 #include "core/dom/Document.h" 8 #include "core/dom/Document.h"
9 #include "core/dom/ExecutionContext.h" 9 #include "core/dom/ExecutionContext.h"
10 #include "core/fetch/ResourceLoaderOptions.h" 10 #include "core/fetch/ResourceLoaderOptions.h"
11 #include "core/loader/ThreadableLoader.h" 11 #include "core/loader/ThreadableLoader.h"
12 #include "modules/serviceworkers/FetchHeaderList.h" 12 #include "modules/serviceworkers/FetchHeaderList.h"
13 #include "platform/network/ResourceRequest.h" 13 #include "platform/network/ResourceRequest.h"
14 #include "public/platform/WebServiceWorkerRequest.h" 14 #include "public/platform/WebServiceWorkerRequest.h"
15 #include "public/platform/WebURLRequest.h"
15 16
16 namespace blink { 17 namespace blink {
17 18
18 FetchRequestData* FetchRequestData::create() 19 FetchRequestData* FetchRequestData::create()
19 { 20 {
20 return new FetchRequestData(); 21 return new FetchRequestData();
21 } 22 }
22 23
23 FetchRequestData* FetchRequestData::create(ExecutionContext* context) 24 FetchRequestData* FetchRequestData::create(ExecutionContext* context)
24 { 25 {
25 FetchRequestData* request = FetchRequestData::create(); 26 FetchRequestData* request = FetchRequestData::create();
26 if (context->isDocument()) 27 if (context->isDocument())
27 request->m_referrer.setClient(blink::Referrer(context->url().strippedFor UseAsReferrer(), toDocument(context)->referrerPolicy())); 28 request->m_referrer.setClient(blink::Referrer(context->url().strippedFor UseAsReferrer(), toDocument(context)->referrerPolicy()));
28 else 29 else
29 request->m_referrer.setClient(blink::Referrer(context->url().strippedFor UseAsReferrer(), ReferrerPolicyDefault)); 30 request->m_referrer.setClient(blink::Referrer(context->url().strippedFor UseAsReferrer(), ReferrerPolicyDefault));
30 return request; 31 return request;
31 } 32 }
32 33
33 FetchRequestData* FetchRequestData::create(const WebServiceWorkerRequest& webReq uest) 34 FetchRequestData* FetchRequestData::create(const WebServiceWorkerRequest& webReq uest)
34 { 35 {
35 FetchRequestData* request = FetchRequestData::create(); 36 FetchRequestData* request = FetchRequestData::create();
36 request->m_url = webRequest.url(); 37 request->m_url = webRequest.url();
37 request->m_method = webRequest.method(); 38 request->m_method = webRequest.method();
38 for (HTTPHeaderMap::const_iterator it = webRequest.headers().begin(); it != webRequest.headers().end(); ++it) 39 for (HTTPHeaderMap::const_iterator it = webRequest.headers().begin(); it != webRequest.headers().end(); ++it)
39 request->m_headerList->append(it->key, it->value); 40 request->m_headerList->append(it->key, it->value);
40 request->m_blobDataHandle = webRequest.blobDataHandle(); 41 request->m_blobDataHandle = webRequest.blobDataHandle();
41 request->m_referrer.setURL(webRequest.referrer()); 42 request->m_referrer.setURL(webRequest.referrer());
43 switch (webRequest.mode()) {
44 case WebURLRequest::FetchRequestModeSameOrigin:
45 request->setMode(FetchRequestData::SameOriginMode);
Mike West 2014/09/25 12:35:53 I think FrameRequestData should simply share the n
horo 2014/09/25 14:02:16 Acknowledged.
46 break;
47 case WebURLRequest::FetchRequestModeNoCORS:
48 request->setMode(FetchRequestData::NoCORSMode);
49 break;
50 case WebURLRequest::FetchRequestModeCORS:
51 request->setMode(FetchRequestData::CORSMode);
52 break;
53 case WebURLRequest::FetchRequestModeCORSWithForcedPreflight:
54 request->setMode(FetchRequestData::CORSWithForcedPreflight);
55 break;
56 default:
57 ASSERT_NOT_REACHED();
58 break;
59 }
42 return request; 60 return request;
43 } 61 }
44 62
45 FetchRequestData* FetchRequestData::createRestrictedCopy(ExecutionContext* conte xt, PassRefPtr<SecurityOrigin> origin) const 63 FetchRequestData* FetchRequestData::createRestrictedCopy(ExecutionContext* conte xt, PassRefPtr<SecurityOrigin> origin) const
46 { 64 {
47 // "To make a restricted copy of a request |request|, run these steps: 65 // "To make a restricted copy of a request |request|, run these steps:
48 // 1. Let |r| be a new request whose url is |request|'s url, method is 66 // 1. Let |r| be a new request whose url is |request|'s url, method is
49 // |request|'s method, header list is a copy of |request|'s header list, 67 // |request|'s method, header list is a copy of |request|'s header list,
50 // body is a tee of |request|'s body, client is entry settings object's 68 // body is a tee of |request|'s body, client is entry settings object's
51 // global object, origin is entry settings object's origin, referrer is 69 // global object, origin is entry settings object's origin, referrer is
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
101 , m_responseTainting(BasicTainting) 119 , m_responseTainting(BasicTainting)
102 { 120 {
103 } 121 }
104 122
105 void FetchRequestData::trace(Visitor* visitor) 123 void FetchRequestData::trace(Visitor* visitor)
106 { 124 {
107 visitor->trace(m_headerList); 125 visitor->trace(m_headerList);
108 } 126 }
109 127
110 } // namespace blink 128 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698