| 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 "core/streams/ReadableStream.h" |
| 11 #include "modules/fetch/BodyStreamBuffer.h" | 12 #include "modules/fetch/BodyStreamBuffer.h" |
| 13 #include "modules/fetch/DataConsumerHandleUtil.h" |
| 12 #include "modules/fetch/DataConsumerTee.h" | 14 #include "modules/fetch/DataConsumerTee.h" |
| 13 #include "modules/fetch/FetchBlobDataConsumerHandle.h" | 15 #include "modules/fetch/FetchBlobDataConsumerHandle.h" |
| 14 #include "modules/fetch/FetchHeaderList.h" | 16 #include "modules/fetch/FetchHeaderList.h" |
| 15 #include "platform/network/ResourceRequest.h" | 17 #include "platform/network/ResourceRequest.h" |
| 16 #include "public/platform/WebURLRequest.h" | 18 #include "public/platform/WebURLRequest.h" |
| 17 #include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h" | 19 #include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h" |
| 18 | 20 |
| 19 namespace blink { | 21 namespace blink { |
| 20 | 22 |
| 21 FetchRequestData* FetchRequestData::create() | 23 FetchRequestData* FetchRequestData::create() |
| (...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 59 request->m_mimeType = m_mimeType; | 61 request->m_mimeType = m_mimeType; |
| 60 request->m_integrity = m_integrity; | 62 request->m_integrity = m_integrity; |
| 61 return request; | 63 return request; |
| 62 } | 64 } |
| 63 | 65 |
| 64 FetchRequestData* FetchRequestData::clone(ExecutionContext* executionContext) | 66 FetchRequestData* FetchRequestData::clone(ExecutionContext* executionContext) |
| 65 { | 67 { |
| 66 FetchRequestData* request = FetchRequestData::cloneExceptBody(); | 68 FetchRequestData* request = FetchRequestData::cloneExceptBody(); |
| 67 if (m_buffer) { | 69 if (m_buffer) { |
| 68 OwnPtr<FetchDataConsumerHandle> dest1, dest2; | 70 OwnPtr<FetchDataConsumerHandle> dest1, dest2; |
| 69 // TODO(yhirano): unlock the buffer. | 71 DataConsumerTee::create(executionContext, m_buffer->releaseHandle(execut
ionContext), &dest1, &dest2); |
| 70 DataConsumerTee::create(executionContext, m_buffer->lock(executionContex
t), &dest1, &dest2); | |
| 71 m_buffer = new BodyStreamBuffer(dest1.release()); | 72 m_buffer = new BodyStreamBuffer(dest1.release()); |
| 72 request->m_buffer = new BodyStreamBuffer(dest2.release()); | 73 request->m_buffer = new BodyStreamBuffer(dest2.release()); |
| 73 } | 74 } |
| 74 return request; | 75 return request; |
| 75 } | 76 } |
| 76 | 77 |
| 77 FetchRequestData* FetchRequestData::pass(ExecutionContext* executionContext) | 78 FetchRequestData* FetchRequestData::pass(ExecutionContext* executionContext) |
| 78 { | 79 { |
| 79 FetchRequestData* request = FetchRequestData::cloneExceptBody(); | 80 FetchRequestData* request = FetchRequestData::cloneExceptBody(); |
| 80 request->m_buffer = m_buffer; | 81 if (m_buffer) { |
| 81 m_buffer = nullptr; | 82 request->m_buffer = m_buffer; |
| 83 m_buffer = new BodyStreamBuffer(createFetchDataConsumerHandleFromWebHand
le(createDoneDataConsumerHandle())); |
| 84 m_buffer->stream()->setIsDisturbed(); |
| 85 } |
| 82 return request; | 86 return request; |
| 83 } | 87 } |
| 84 | 88 |
| 85 FetchRequestData::~FetchRequestData() | 89 FetchRequestData::~FetchRequestData() |
| 86 { | 90 { |
| 87 } | 91 } |
| 88 | 92 |
| 89 FetchRequestData::FetchRequestData() | 93 FetchRequestData::FetchRequestData() |
| 90 : m_method("GET") | 94 : m_method("GET") |
| 91 , m_headerList(FetchHeaderList::create()) | 95 , m_headerList(FetchHeaderList::create()) |
| 92 , m_unsafeRequestFlag(false) | 96 , m_unsafeRequestFlag(false) |
| 93 , m_context(WebURLRequest::RequestContextUnspecified) | 97 , m_context(WebURLRequest::RequestContextUnspecified) |
| 94 , m_sameOriginDataURLFlag(false) | 98 , m_sameOriginDataURLFlag(false) |
| 95 , m_referrer(Referrer(clientReferrerString(), ReferrerPolicyDefault)) | 99 , m_referrer(Referrer(clientReferrerString(), ReferrerPolicyDefault)) |
| 96 , m_mode(WebURLRequest::FetchRequestModeNoCORS) | 100 , m_mode(WebURLRequest::FetchRequestModeNoCORS) |
| 97 , m_credentials(WebURLRequest::FetchCredentialsModeOmit) | 101 , m_credentials(WebURLRequest::FetchCredentialsModeOmit) |
| 98 , m_redirect(WebURLRequest::FetchRedirectModeFollow) | 102 , m_redirect(WebURLRequest::FetchRedirectModeFollow) |
| 99 , m_responseTainting(BasicTainting) | 103 , m_responseTainting(BasicTainting) |
| 100 { | 104 { |
| 101 } | 105 } |
| 102 | 106 |
| 103 DEFINE_TRACE(FetchRequestData) | 107 DEFINE_TRACE(FetchRequestData) |
| 104 { | 108 { |
| 105 visitor->trace(m_buffer); | 109 visitor->trace(m_buffer); |
| 106 visitor->trace(m_headerList); | 110 visitor->trace(m_headerList); |
| 107 } | 111 } |
| 108 | 112 |
| 109 } // namespace blink | 113 } // namespace blink |
| OLD | NEW |