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

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

Issue 2815313002: Reland of Move ScriptState::GetExecutionContext (Part 5) (Closed)
Patch Set: Created 3 years, 8 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/BodyStreamBuffer.h" 5 #include "modules/fetch/BodyStreamBuffer.h"
6 6
7 #include <memory> 7 #include <memory>
8 #include "bindings/core/v8/ScriptState.h" 8 #include "bindings/core/v8/ScriptState.h"
9 #include "bindings/core/v8/V8PrivateProperty.h" 9 #include "bindings/core/v8/V8PrivateProperty.h"
10 #include "bindings/core/v8/V8ThrowException.h" 10 #include "bindings/core/v8/V8ThrowException.h"
11 #include "core/dom/DOMArrayBuffer.h" 11 #include "core/dom/DOMArrayBuffer.h"
12 #include "core/dom/DOMTypedArray.h" 12 #include "core/dom/DOMTypedArray.h"
13 #include "core/dom/ExceptionCode.h" 13 #include "core/dom/ExceptionCode.h"
14 #include "core/dom/ExecutionContext.h"
14 #include "core/streams/ReadableStreamController.h" 15 #include "core/streams/ReadableStreamController.h"
15 #include "core/streams/ReadableStreamOperations.h" 16 #include "core/streams/ReadableStreamOperations.h"
16 #include "modules/fetch/Body.h" 17 #include "modules/fetch/Body.h"
17 #include "modules/fetch/ReadableStreamBytesConsumer.h" 18 #include "modules/fetch/ReadableStreamBytesConsumer.h"
18 #include "platform/blob/BlobData.h" 19 #include "platform/blob/BlobData.h"
19 #include "platform/network/EncodedFormData.h" 20 #include "platform/network/EncodedFormData.h"
20 21
21 namespace blink { 22 namespace blink {
22 23
23 class BodyStreamBuffer::LoaderClient final 24 class BodyStreamBuffer::LoaderClient final
(...skipping 138 matching lines...) Expand 10 before | Expand all | Expand 10 after
162 return form_data.Release(); 163 return form_data.Release();
163 } 164 }
164 return nullptr; 165 return nullptr;
165 } 166 }
166 167
167 void BodyStreamBuffer::StartLoading(FetchDataLoader* loader, 168 void BodyStreamBuffer::StartLoading(FetchDataLoader* loader,
168 FetchDataLoader::Client* client) { 169 FetchDataLoader::Client* client) {
169 ASSERT(!loader_); 170 ASSERT(!loader_);
170 ASSERT(script_state_->ContextIsValid()); 171 ASSERT(script_state_->ContextIsValid());
171 loader_ = loader; 172 loader_ = loader;
172 loader->Start( 173 loader->Start(ReleaseHandle(),
173 ReleaseHandle(), 174 new LoaderClient(ExecutionContext::From(script_state_.Get()),
174 new LoaderClient(script_state_->GetExecutionContext(), this, client)); 175 this, client));
175 } 176 }
176 177
177 void BodyStreamBuffer::Tee(BodyStreamBuffer** branch1, 178 void BodyStreamBuffer::Tee(BodyStreamBuffer** branch1,
178 BodyStreamBuffer** branch2) { 179 BodyStreamBuffer** branch2) {
179 DCHECK(!IsStreamLocked()); 180 DCHECK(!IsStreamLocked());
180 DCHECK(!IsStreamDisturbed()); 181 DCHECK(!IsStreamDisturbed());
181 *branch1 = nullptr; 182 *branch1 = nullptr;
182 *branch2 = nullptr; 183 *branch2 = nullptr;
183 184
184 if (made_from_readable_stream_) { 185 if (made_from_readable_stream_) {
185 ScriptValue stream1, stream2; 186 ScriptValue stream1, stream2;
186 ReadableStreamOperations::Tee(script_state_.Get(), Stream(), &stream1, 187 ReadableStreamOperations::Tee(script_state_.Get(), Stream(), &stream1,
187 &stream2); 188 &stream2);
188 *branch1 = new BodyStreamBuffer(script_state_.Get(), stream1); 189 *branch1 = new BodyStreamBuffer(script_state_.Get(), stream1);
189 *branch2 = new BodyStreamBuffer(script_state_.Get(), stream2); 190 *branch2 = new BodyStreamBuffer(script_state_.Get(), stream2);
190 return; 191 return;
191 } 192 }
192 BytesConsumer* dest1 = nullptr; 193 BytesConsumer* dest1 = nullptr;
193 BytesConsumer* dest2 = nullptr; 194 BytesConsumer* dest2 = nullptr;
194 BytesConsumer::Tee(script_state_->GetExecutionContext(), ReleaseHandle(), 195 BytesConsumer::Tee(ExecutionContext::From(script_state_.Get()),
195 &dest1, &dest2); 196 ReleaseHandle(), &dest1, &dest2);
196 *branch1 = new BodyStreamBuffer(script_state_.Get(), dest1); 197 *branch1 = new BodyStreamBuffer(script_state_.Get(), dest1);
197 *branch2 = new BodyStreamBuffer(script_state_.Get(), dest2); 198 *branch2 = new BodyStreamBuffer(script_state_.Get(), dest2);
198 } 199 }
199 200
200 ScriptPromise BodyStreamBuffer::pull(ScriptState* script_state) { 201 ScriptPromise BodyStreamBuffer::pull(ScriptState* script_state) {
201 ASSERT(script_state == script_state_.Get()); 202 ASSERT(script_state == script_state_.Get());
202 if (stream_needs_more_) 203 if (stream_needs_more_)
203 return ScriptPromise::CastUndefined(script_state); 204 return ScriptPromise::CastUndefined(script_state);
204 stream_needs_more_ = true; 205 stream_needs_more_ = true;
205 ProcessData(); 206 ProcessData();
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
387 } 388 }
388 if (is_errored) 389 if (is_errored)
389 return BytesConsumer::CreateErrored(BytesConsumer::Error("error")); 390 return BytesConsumer::CreateErrored(BytesConsumer::Error("error"));
390 391
391 DCHECK(consumer); 392 DCHECK(consumer);
392 consumer->ClearClient(); 393 consumer->ClearClient();
393 return consumer; 394 return consumer;
394 } 395 }
395 396
396 } // namespace blink 397 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/modules/fetch/Body.cpp ('k') | third_party/WebKit/Source/modules/fetch/FetchManager.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698