| 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 "modules/fetch/FetchRequestData.h" | 6 #include "modules/fetch/FetchRequestData.h" |
| 7 | 7 |
| 8 #include "core/dom/ExecutionContext.h" | 8 #include "core/dom/ExecutionContext.h" |
| 9 #include "core/fetch/ResourceLoaderOptions.h" | 9 #include "core/fetch/ResourceLoaderOptions.h" |
| 10 #include "core/loader/ThreadableLoader.h" | 10 #include "core/loader/ThreadableLoader.h" |
| 11 #include "modules/fetch/BodyStreamBuffer.h" |
| 12 #include "modules/fetch/FetchBlobDataConsumerHandle.h" |
| 11 #include "modules/fetch/FetchHeaderList.h" | 13 #include "modules/fetch/FetchHeaderList.h" |
| 12 #include "platform/network/ResourceRequest.h" | 14 #include "platform/network/ResourceRequest.h" |
| 13 #include "public/platform/WebServiceWorkerRequest.h" | 15 #include "public/platform/WebServiceWorkerRequest.h" |
| 14 #include "public/platform/WebURLRequest.h" | 16 #include "public/platform/WebURLRequest.h" |
| 15 | 17 |
| 16 namespace blink { | 18 namespace blink { |
| 17 | 19 |
| 18 FetchRequestData* FetchRequestData::create() | 20 FetchRequestData* FetchRequestData::create() |
| 19 { | 21 { |
| 20 return new FetchRequestData(); | 22 return new FetchRequestData(); |
| 21 } | 23 } |
| 22 | 24 |
| 23 FetchRequestData* FetchRequestData::create(const WebServiceWorkerRequest& webReq
uest) | 25 FetchRequestData* FetchRequestData::create(ExecutionContext* executionContext, c
onst WebServiceWorkerRequest& webRequest) |
| 24 { | 26 { |
| 25 FetchRequestData* request = FetchRequestData::create(); | 27 FetchRequestData* request = FetchRequestData::create(); |
| 26 request->m_url = webRequest.url(); | 28 request->m_url = webRequest.url(); |
| 27 request->m_method = webRequest.method(); | 29 request->m_method = webRequest.method(); |
| 28 for (HTTPHeaderMap::const_iterator it = webRequest.headers().begin(); it !=
webRequest.headers().end(); ++it) | 30 for (HTTPHeaderMap::const_iterator it = webRequest.headers().begin(); it !=
webRequest.headers().end(); ++it) |
| 29 request->m_headerList->append(it->key, it->value); | 31 request->m_headerList->append(it->key, it->value); |
| 30 request->m_blobDataHandle = webRequest.blobDataHandle(); | 32 request->setBlobDataHandle(executionContext, webRequest.blobDataHandle()); |
| 31 request->setContext(webRequest.requestContext()); | 33 request->setContext(webRequest.requestContext()); |
| 32 request->m_referrer.setURL(webRequest.referrer()); | 34 request->m_referrer.setURL(webRequest.referrer()); |
| 33 request->setMode(webRequest.mode()); | 35 request->setMode(webRequest.mode()); |
| 34 request->setCredentials(webRequest.credentialsMode()); | 36 request->setCredentials(webRequest.credentialsMode()); |
| 35 request->setMIMEType(request->m_headerList->extractMIMEType()); | 37 request->setMIMEType(request->m_headerList->extractMIMEType()); |
| 36 return request; | 38 return request; |
| 37 } | 39 } |
| 38 | 40 |
| 39 FetchRequestData* FetchRequestData::clone() const | 41 FetchRequestData* FetchRequestData::clone(ExecutionContext* executionContext) co
nst |
| 40 { | 42 { |
| 41 // TODO(yhirano): This method will be destructive. | 43 // TODO(yhirano): This method will be destructive. |
| 42 FetchRequestData* request = FetchRequestData::create(); | 44 FetchRequestData* request = FetchRequestData::create(); |
| 43 request->m_url = m_url; | 45 request->m_url = m_url; |
| 44 request->m_method = m_method; | 46 request->m_method = m_method; |
| 45 request->m_headerList = m_headerList->clone(); | 47 request->m_headerList = m_headerList->clone(); |
| 46 request->m_unsafeRequestFlag = m_unsafeRequestFlag; | 48 request->m_unsafeRequestFlag = m_unsafeRequestFlag; |
| 47 request->m_blobDataHandle = m_blobDataHandle; | 49 request->setBlobDataHandle(executionContext, m_blobDataHandle); |
| 48 request->m_origin = m_origin; | 50 request->m_origin = m_origin; |
| 49 request->m_sameOriginDataURLFlag = m_sameOriginDataURLFlag; | 51 request->m_sameOriginDataURLFlag = m_sameOriginDataURLFlag; |
| 50 request->m_context = m_context; | 52 request->m_context = m_context; |
| 51 request->m_referrer = m_referrer; | 53 request->m_referrer = m_referrer; |
| 52 request->m_mode = m_mode; | 54 request->m_mode = m_mode; |
| 53 request->m_credentials = m_credentials; | 55 request->m_credentials = m_credentials; |
| 54 request->m_responseTainting = m_responseTainting; | 56 request->m_responseTainting = m_responseTainting; |
| 55 request->m_mimeType = m_mimeType; | 57 request->m_mimeType = m_mimeType; |
| 56 return request; | 58 return request; |
| 57 } | 59 } |
| 58 | 60 |
| 59 FetchRequestData* FetchRequestData::pass() const | 61 FetchRequestData* FetchRequestData::pass(ExecutionContext* executionContext) con
st |
| 60 { | 62 { |
| 61 // TODO(yhirano): This method will be destructive. | 63 // TODO(yhirano): This method will be destructive. |
| 62 return clone(); | 64 return clone(executionContext); |
| 63 } | 65 } |
| 64 | 66 |
| 65 FetchRequestData::~FetchRequestData() | 67 FetchRequestData::~FetchRequestData() |
| 66 { | 68 { |
| 67 } | 69 } |
| 68 | 70 |
| 69 FetchRequestData::FetchRequestData() | 71 FetchRequestData::FetchRequestData() |
| 70 : m_method("GET") | 72 : m_method("GET") |
| 71 , m_headerList(FetchHeaderList::create()) | 73 , m_headerList(FetchHeaderList::create()) |
| 72 , m_unsafeRequestFlag(false) | 74 , m_unsafeRequestFlag(false) |
| 73 , m_context(WebURLRequest::RequestContextUnspecified) | 75 , m_context(WebURLRequest::RequestContextUnspecified) |
| 74 , m_sameOriginDataURLFlag(false) | 76 , m_sameOriginDataURLFlag(false) |
| 75 , m_mode(WebURLRequest::FetchRequestModeNoCORS) | 77 , m_mode(WebURLRequest::FetchRequestModeNoCORS) |
| 76 , m_credentials(WebURLRequest::FetchCredentialsModeOmit) | 78 , m_credentials(WebURLRequest::FetchCredentialsModeOmit) |
| 77 , m_responseTainting(BasicTainting) | 79 , m_responseTainting(BasicTainting) |
| 78 { | 80 { |
| 79 } | 81 } |
| 80 | 82 |
| 81 DEFINE_TRACE(FetchRequestData) | 83 DEFINE_TRACE(FetchRequestData) |
| 82 { | 84 { |
| 85 visitor->trace(m_buffer); |
| 83 visitor->trace(m_headerList); | 86 visitor->trace(m_headerList); |
| 84 } | 87 } |
| 85 | 88 |
| 89 void FetchRequestData::setBlobDataHandle(ExecutionContext* executionContext, Pas
sRefPtr<BlobDataHandle> blobDataHandle) |
| 90 { |
| 91 m_blobDataHandle = blobDataHandle; |
| 92 m_buffer = BodyStreamBuffer::create(FetchBlobDataConsumerHandle::create(exec
utionContext, m_blobDataHandle)); |
| 93 } |
| 94 |
| 86 } // namespace blink | 95 } // namespace blink |
| OLD | NEW |