OLD | NEW |
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 | 15 |
16 namespace blink { | 16 namespace blink { |
17 | 17 |
18 PassRefPtrWillBeRawPtr<FetchRequestData> FetchRequestData::create() | 18 FetchRequestData* FetchRequestData::create() |
19 { | 19 { |
20 return adoptRefWillBeNoop(new FetchRequestData()); | 20 return new FetchRequestData(); |
21 } | 21 } |
22 | 22 |
23 PassRefPtrWillBeRawPtr<FetchRequestData> FetchRequestData::create(ExecutionConte
xt* context) | 23 FetchRequestData* FetchRequestData::create(ExecutionContext* context) |
24 { | 24 { |
25 RefPtrWillBeRawPtr<FetchRequestData> request = FetchRequestData::create(); | 25 FetchRequestData* request = FetchRequestData::create(); |
26 if (context->isDocument()) | 26 if (context->isDocument()) |
27 request->m_referrer.setClient(blink::Referrer(context->url().strippedFor
UseAsReferrer(), toDocument(context)->referrerPolicy())); | 27 request->m_referrer.setClient(blink::Referrer(context->url().strippedFor
UseAsReferrer(), toDocument(context)->referrerPolicy())); |
28 else | 28 else |
29 request->m_referrer.setClient(blink::Referrer(context->url().strippedFor
UseAsReferrer(), ReferrerPolicyDefault)); | 29 request->m_referrer.setClient(blink::Referrer(context->url().strippedFor
UseAsReferrer(), ReferrerPolicyDefault)); |
30 return request.release(); | 30 return request; |
31 } | 31 } |
32 | 32 |
33 PassRefPtrWillBeRawPtr<FetchRequestData> FetchRequestData::create(const WebServi
ceWorkerRequest& webRequest) | 33 FetchRequestData* FetchRequestData::create(const WebServiceWorkerRequest& webReq
uest) |
34 { | 34 { |
35 RefPtrWillBeRawPtr<FetchRequestData> request = FetchRequestData::create(); | 35 FetchRequestData* request = FetchRequestData::create(); |
36 request->m_url = webRequest.url(); | 36 request->m_url = webRequest.url(); |
37 request->m_method = webRequest.method(); | 37 request->m_method = webRequest.method(); |
38 for (HTTPHeaderMap::const_iterator it = webRequest.headers().begin(); it !=
webRequest.headers().end(); ++it) | 38 for (HTTPHeaderMap::const_iterator it = webRequest.headers().begin(); it !=
webRequest.headers().end(); ++it) |
39 request->m_headerList->append(it->key, it->value); | 39 request->m_headerList->append(it->key, it->value); |
40 request->m_blobDataHandle = webRequest.blobDataHandle(); | 40 request->m_blobDataHandle = webRequest.blobDataHandle(); |
41 request->m_referrer.setURL(webRequest.referrer()); | 41 request->m_referrer.setURL(webRequest.referrer()); |
42 return request.release(); | 42 return request; |
43 } | 43 } |
44 | 44 |
45 PassRefPtrWillBeRawPtr<FetchRequestData> FetchRequestData::createRestrictedCopy(
ExecutionContext* context, PassRefPtr<SecurityOrigin> origin) const | 45 FetchRequestData* FetchRequestData::createRestrictedCopy(ExecutionContext* conte
xt, PassRefPtr<SecurityOrigin> origin) const |
46 { | 46 { |
47 // "To make a restricted copy of a request |request|, run these steps: | 47 // "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 | 48 // 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, | 49 // |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 | 50 // 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 | 51 // global object, origin is entry settings object's origin, referrer is |
52 // |client|, context is |connect|, mode is |request|'s mode, and credentials | 52 // |client|, context is |connect|, mode is |request|'s mode, and credentials |
53 // mode is |request|'s credentials mode." | 53 // mode is |request|'s credentials mode." |
54 RefPtrWillBeRawPtr<FetchRequestData> request = FetchRequestData::create(); | 54 FetchRequestData* request = FetchRequestData::create(); |
55 request->m_url = m_url; | 55 request->m_url = m_url; |
56 request->m_method = m_method; | 56 request->m_method = m_method; |
57 request->m_headerList = m_headerList->createCopy(); | 57 request->m_headerList = m_headerList->createCopy(); |
58 // FIXME: Support body. | 58 // FIXME: Support body. |
59 request->m_origin = origin; | 59 request->m_origin = origin; |
60 if (context->isDocument()) | 60 if (context->isDocument()) |
61 request->m_referrer.setClient(blink::Referrer(context->url().strippedFor
UseAsReferrer(), toDocument(context)->referrerPolicy())); | 61 request->m_referrer.setClient(blink::Referrer(context->url().strippedFor
UseAsReferrer(), toDocument(context)->referrerPolicy())); |
62 else | 62 else |
63 request->m_referrer.setClient(blink::Referrer(context->url().strippedFor
UseAsReferrer(), ReferrerPolicyDefault)); | 63 request->m_referrer.setClient(blink::Referrer(context->url().strippedFor
UseAsReferrer(), ReferrerPolicyDefault)); |
64 request->m_context = ConnectContext; | 64 request->m_context = ConnectContext; |
65 request->m_mode = m_mode; | 65 request->m_mode = m_mode; |
66 request->m_credentials = m_credentials; | 66 request->m_credentials = m_credentials; |
67 // "2. Return |r|." | 67 // "2. Return |r|." |
68 return request.release(); | 68 return request; |
69 } | 69 } |
70 | 70 |
71 PassRefPtrWillBeRawPtr<FetchRequestData> FetchRequestData::createCopy() const | 71 FetchRequestData* FetchRequestData::createCopy() const |
72 { | 72 { |
73 RefPtrWillBeRawPtr<FetchRequestData> request = FetchRequestData::create(); | 73 FetchRequestData* request = FetchRequestData::create(); |
74 request->m_url = m_url; | 74 request->m_url = m_url; |
75 request->m_method = m_method; | 75 request->m_method = m_method; |
76 request->m_headerList = m_headerList->createCopy(); | 76 request->m_headerList = m_headerList->createCopy(); |
77 request->m_unsafeRequestFlag = m_unsafeRequestFlag; | 77 request->m_unsafeRequestFlag = m_unsafeRequestFlag; |
78 // FIXME: Support body. | 78 // FIXME: Support body. |
79 request->m_origin = m_origin; | 79 request->m_origin = m_origin; |
80 request->m_sameOriginDataURLFlag = m_sameOriginDataURLFlag; | 80 request->m_sameOriginDataURLFlag = m_sameOriginDataURLFlag; |
81 request->m_context = m_context; | 81 request->m_context = m_context; |
82 request->m_referrer = m_referrer; | 82 request->m_referrer = m_referrer; |
83 request->m_mode = m_mode; | 83 request->m_mode = m_mode; |
84 request->m_credentials = m_credentials; | 84 request->m_credentials = m_credentials; |
85 request->m_responseTainting = m_responseTainting; | 85 request->m_responseTainting = m_responseTainting; |
86 return request.release(); | 86 return request; |
87 } | 87 } |
88 | 88 |
89 FetchRequestData::~FetchRequestData() | 89 FetchRequestData::~FetchRequestData() |
90 { | 90 { |
91 } | 91 } |
92 | 92 |
93 FetchRequestData::FetchRequestData() | 93 FetchRequestData::FetchRequestData() |
94 : m_method("GET") | 94 : m_method("GET") |
95 , m_headerList(FetchHeaderList::create()) | 95 , m_headerList(FetchHeaderList::create()) |
96 , m_unsafeRequestFlag(false) | 96 , m_unsafeRequestFlag(false) |
97 , m_context(NullContext) | 97 , m_context(NullContext) |
98 , m_sameOriginDataURLFlag(false) | 98 , m_sameOriginDataURLFlag(false) |
99 , m_mode(NoCORSMode) | 99 , m_mode(NoCORSMode) |
100 , m_credentials(OmitCredentials) | 100 , m_credentials(OmitCredentials) |
101 , m_responseTainting(BasicTainting) | 101 , m_responseTainting(BasicTainting) |
102 { | 102 { |
103 } | 103 } |
104 | 104 |
105 void FetchRequestData::trace(Visitor* visitor) | 105 void FetchRequestData::trace(Visitor* visitor) |
106 { | 106 { |
107 visitor->trace(m_headerList); | 107 visitor->trace(m_headerList); |
108 } | 108 } |
109 | 109 |
110 } // namespace blink | 110 } // namespace blink |
OLD | NEW |