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

Side by Side Diff: third_party/WebKit/Source/modules/fetch/FetchRequestData.cpp

Issue 1969333002: [Fetch API] |(new Response(stream)).body| should return |stream| (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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 "modules/fetch/FetchRequestData.h" 5 #include "modules/fetch/FetchRequestData.h"
6 6
7 #include "bindings/core/v8/ScriptState.h" 7 #include "bindings/core/v8/ScriptState.h"
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 "core/streams/ReadableStream.h"
12 #include "modules/credentialmanager/PasswordCredential.h" 12 #include "modules/credentialmanager/PasswordCredential.h"
13 #include "modules/fetch/BodyStreamBuffer.h" 13 #include "modules/fetch/BodyStreamBuffer.h"
14 #include "modules/fetch/DataConsumerHandleUtil.h" 14 #include "modules/fetch/DataConsumerHandleUtil.h"
15 #include "modules/fetch/DataConsumerTee.h"
16 #include "modules/fetch/FetchBlobDataConsumerHandle.h" 15 #include "modules/fetch/FetchBlobDataConsumerHandle.h"
17 #include "modules/fetch/FetchHeaderList.h" 16 #include "modules/fetch/FetchHeaderList.h"
18 #include "platform/HTTPNames.h" 17 #include "platform/HTTPNames.h"
19 #include "platform/network/ResourceRequest.h" 18 #include "platform/network/ResourceRequest.h"
20 #include "public/platform/WebURLRequest.h" 19 #include "public/platform/WebURLRequest.h"
21 #include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h" 20 #include "public/platform/modules/serviceworker/WebServiceWorkerRequest.h"
22 21
23 namespace blink { 22 namespace blink {
24 23
25 FetchRequestData* FetchRequestData::create() 24 FetchRequestData* FetchRequestData::create()
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
63 request->m_mimeType = m_mimeType; 62 request->m_mimeType = m_mimeType;
64 request->m_integrity = m_integrity; 63 request->m_integrity = m_integrity;
65 request->m_attachedCredential = m_attachedCredential; 64 request->m_attachedCredential = m_attachedCredential;
66 return request; 65 return request;
67 } 66 }
68 67
69 FetchRequestData* FetchRequestData::clone(ScriptState* scriptState) 68 FetchRequestData* FetchRequestData::clone(ScriptState* scriptState)
70 { 69 {
71 FetchRequestData* request = FetchRequestData::cloneExceptBody(); 70 FetchRequestData* request = FetchRequestData::cloneExceptBody();
72 if (m_buffer) { 71 if (m_buffer) {
73 OwnPtr<FetchDataConsumerHandle> dest1, dest2; 72 BodyStreamBuffer* new1 = nullptr;
74 DataConsumerTee::create(scriptState->getExecutionContext(), m_buffer->re leaseHandle(), &dest1, &dest2); 73 BodyStreamBuffer* new2 = nullptr;
75 m_buffer = new BodyStreamBuffer(scriptState, std::move(dest1)); 74 m_buffer->tee(&new1, &new2);
76 request->m_buffer = new BodyStreamBuffer(scriptState, std::move(dest2)); 75 m_buffer = new1;
76 request->m_buffer = new2;
77 } 77 }
78 return request; 78 return request;
79 } 79 }
80 80
81 FetchRequestData* FetchRequestData::pass(ScriptState* scriptState) 81 FetchRequestData* FetchRequestData::pass(ScriptState* scriptState)
82 { 82 {
83 FetchRequestData* request = FetchRequestData::cloneExceptBody(); 83 FetchRequestData* request = FetchRequestData::cloneExceptBody();
84 if (m_buffer) { 84 if (m_buffer) {
85 request->m_buffer = m_buffer; 85 request->m_buffer = m_buffer;
86 m_buffer = new BodyStreamBuffer(scriptState, createFetchDataConsumerHand leFromWebHandle(createDoneDataConsumerHandle())); 86 m_buffer = new BodyStreamBuffer(scriptState, createFetchDataConsumerHand leFromWebHandle(createDoneDataConsumerHandle()));
(...skipping 28 matching lines...) Expand all
115 m_attachedCredential.clear(); 115 m_attachedCredential.clear();
116 } 116 }
117 117
118 DEFINE_TRACE(FetchRequestData) 118 DEFINE_TRACE(FetchRequestData)
119 { 119 {
120 visitor->trace(m_buffer); 120 visitor->trace(m_buffer);
121 visitor->trace(m_headerList); 121 visitor->trace(m_headerList);
122 } 122 }
123 123
124 } // namespace blink 124 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698