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

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

Issue 2177243002: Use per-frame TaskRunner instead of thread's default in DataConsumerHandle (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@data_consumer_handle_unique_ptr
Patch Set: test fix Created 4 years, 4 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 "bindings/core/v8/ScriptState.h" 7 #include "bindings/core/v8/ScriptState.h"
8 #include "bindings/core/v8/V8HiddenValue.h" 8 #include "bindings/core/v8/V8HiddenValue.h"
9 #include "bindings/core/v8/WorkerOrWorkletScriptController.h" 9 #include "bindings/core/v8/WorkerOrWorkletScriptController.h"
10 #include "core/dom/DOMArrayBuffer.h" 10 #include "core/dom/DOMArrayBuffer.h"
11 #include "core/dom/DOMTypedArray.h" 11 #include "core/dom/DOMTypedArray.h"
12 #include "core/dom/ExceptionCode.h" 12 #include "core/dom/ExceptionCode.h"
13 #include "core/dom/TaskRunnerHelper.h"
13 #include "core/streams/ReadableStreamController.h" 14 #include "core/streams/ReadableStreamController.h"
14 #include "core/streams/ReadableStreamOperations.h" 15 #include "core/streams/ReadableStreamOperations.h"
15 #include "core/workers/WorkerGlobalScope.h" 16 #include "core/workers/WorkerGlobalScope.h"
16 #include "modules/fetch/Body.h" 17 #include "modules/fetch/Body.h"
17 #include "modules/fetch/DataConsumerHandleUtil.h" 18 #include "modules/fetch/DataConsumerHandleUtil.h"
18 #include "modules/fetch/DataConsumerTee.h" 19 #include "modules/fetch/DataConsumerTee.h"
19 #include "modules/fetch/ReadableStreamDataConsumerHandle.h" 20 #include "modules/fetch/ReadableStreamDataConsumerHandle.h"
20 #include "platform/RuntimeEnabledFeatures.h" 21 #include "platform/RuntimeEnabledFeatures.h"
21 #include "platform/blob/BlobData.h" 22 #include "platform/blob/BlobData.h"
22 #include "platform/network/EncodedFormData.h" 23 #include "platform/network/EncodedFormData.h"
(...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 m_buffer->endLoading(); 74 m_buffer->endLoading();
74 m_client->didFetchDataLoadedStream(); 75 m_client->didFetchDataLoadedStream();
75 } 76 }
76 77
77 void didFetchDataLoadFailed() override 78 void didFetchDataLoadFailed() override
78 { 79 {
79 m_buffer->endLoading(); 80 m_buffer->endLoading();
80 m_client->didFetchDataLoadFailed(); 81 m_client->didFetchDataLoadFailed();
81 } 82 }
82 83
84 WebTaskRunner* getTaskRunner() override
85 {
86 return m_client->getTaskRunner();
87 }
88
83 DEFINE_INLINE_TRACE() 89 DEFINE_INLINE_TRACE()
84 { 90 {
85 visitor->trace(m_buffer); 91 visitor->trace(m_buffer);
86 visitor->trace(m_client); 92 visitor->trace(m_client);
87 ActiveDOMObject::trace(visitor); 93 ActiveDOMObject::trace(visitor);
88 FetchDataLoader::Client::trace(visitor); 94 FetchDataLoader::Client::trace(visitor);
89 } 95 }
90 96
91 private: 97 private:
92 void stop() override 98 void stop() override
(...skipping 196 matching lines...) Expand 10 before | Expand all | Expand 10 after
289 case WebDataConsumerHandle::ResourceExhausted: 295 case WebDataConsumerHandle::ResourceExhausted:
290 case WebDataConsumerHandle::UnexpectedError: 296 case WebDataConsumerHandle::UnexpectedError:
291 error(); 297 error();
292 return; 298 return;
293 } 299 }
294 return; 300 return;
295 } 301 }
296 processData(); 302 processData();
297 } 303 }
298 304
305 WebTaskRunner* BodyStreamBuffer::getTaskRunner()
306 {
307 return TaskRunnerHelper::getUnthrottledTaskRunner(scriptState());
308 }
309
299 bool BodyStreamBuffer::hasPendingActivity() const 310 bool BodyStreamBuffer::hasPendingActivity() const
300 { 311 {
301 if (m_loader) 312 if (m_loader)
302 return true; 313 return true;
303 if (RuntimeEnabledFeatures::responseBodyWithV8ExtraStreamEnabled()) 314 if (RuntimeEnabledFeatures::responseBodyWithV8ExtraStreamEnabled())
304 return UnderlyingSourceBase::hasPendingActivity(); 315 return UnderlyingSourceBase::hasPendingActivity();
305 316
306 return m_stream->stateInternal() == ReadableStream::Readable && m_stream->is Locked(); 317 return m_stream->stateInternal() == ReadableStream::Readable && m_stream->is Locked();
307 } 318 }
308 319
(...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after
477 return createFetchDataConsumerHandleFromWebHandle(createDoneDataConsumer Handle()); 488 return createFetchDataConsumerHandleFromWebHandle(createDoneDataConsumer Handle());
478 } 489 }
479 if (isErrored) 490 if (isErrored)
480 return createFetchDataConsumerHandleFromWebHandle(createUnexpectedErrorD ataConsumerHandle()); 491 return createFetchDataConsumerHandleFromWebHandle(createUnexpectedErrorD ataConsumerHandle());
481 492
482 DCHECK(handle); 493 DCHECK(handle);
483 return handle; 494 return handle;
484 } 495 }
485 496
486 } // namespace blink 497 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698