| 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 "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 23 matching lines...) Expand all Loading... |
| 46 : ActiveDOMObject(executionContext) | 47 : ActiveDOMObject(executionContext) |
| 47 , m_buffer(buffer) | 48 , m_buffer(buffer) |
| 48 , m_client(client) | 49 , m_client(client) |
| 49 { | 50 { |
| 50 suspendIfNeeded(); | 51 suspendIfNeeded(); |
| 51 } | 52 } |
| 52 | 53 |
| 53 void didFetchDataLoadedBlobHandle(PassRefPtr<BlobDataHandle> blobDataHandle)
override | 54 void didFetchDataLoadedBlobHandle(PassRefPtr<BlobDataHandle> blobDataHandle)
override |
| 54 { | 55 { |
| 55 m_buffer->endLoading(); | 56 m_buffer->endLoading(); |
| 56 m_client->didFetchDataLoadedBlobHandle(blobDataHandle); | 57 if (m_client) |
| 58 m_client->didFetchDataLoadedBlobHandle(blobDataHandle); |
| 57 } | 59 } |
| 58 | 60 |
| 59 void didFetchDataLoadedArrayBuffer(DOMArrayBuffer* arrayBuffer) override | 61 void didFetchDataLoadedArrayBuffer(DOMArrayBuffer* arrayBuffer) override |
| 60 { | 62 { |
| 61 m_buffer->endLoading(); | 63 m_buffer->endLoading(); |
| 62 m_client->didFetchDataLoadedArrayBuffer(arrayBuffer); | 64 if (m_client) |
| 65 m_client->didFetchDataLoadedArrayBuffer(arrayBuffer); |
| 63 } | 66 } |
| 64 | 67 |
| 65 void didFetchDataLoadedString(const String& string) override | 68 void didFetchDataLoadedString(const String& string) override |
| 66 { | 69 { |
| 67 m_buffer->endLoading(); | 70 m_buffer->endLoading(); |
| 68 m_client->didFetchDataLoadedString(string); | 71 if (m_client) |
| 72 m_client->didFetchDataLoadedString(string); |
| 69 } | 73 } |
| 70 | 74 |
| 71 void didFetchDataLoadedStream() override | 75 void didFetchDataLoadedStream() override |
| 72 { | 76 { |
| 73 m_buffer->endLoading(); | 77 m_buffer->endLoading(); |
| 74 m_client->didFetchDataLoadedStream(); | 78 if (m_client) |
| 79 m_client->didFetchDataLoadedStream(); |
| 75 } | 80 } |
| 76 | 81 |
| 77 void didFetchDataLoadFailed() override | 82 void didFetchDataLoadFailed() override |
| 78 { | 83 { |
| 79 m_buffer->endLoading(); | 84 m_buffer->endLoading(); |
| 80 m_client->didFetchDataLoadFailed(); | 85 if (m_client) |
| 86 m_client->didFetchDataLoadFailed(); |
| 87 } |
| 88 |
| 89 WebTaskRunner* getTaskRunner() override |
| 90 { |
| 91 return m_client ? m_client->getTaskRunner() : TaskRunnerHelper::getUnthr
ottledTaskRunner(getExecutionContext()); |
| 81 } | 92 } |
| 82 | 93 |
| 83 DEFINE_INLINE_TRACE() | 94 DEFINE_INLINE_TRACE() |
| 84 { | 95 { |
| 85 visitor->trace(m_buffer); | 96 visitor->trace(m_buffer); |
| 86 visitor->trace(m_client); | 97 visitor->trace(m_client); |
| 87 ActiveDOMObject::trace(visitor); | 98 ActiveDOMObject::trace(visitor); |
| 88 FetchDataLoader::Client::trace(visitor); | 99 FetchDataLoader::Client::trace(visitor); |
| 89 } | 100 } |
| 90 | 101 |
| (...skipping 198 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 289 case WebDataConsumerHandle::ResourceExhausted: | 300 case WebDataConsumerHandle::ResourceExhausted: |
| 290 case WebDataConsumerHandle::UnexpectedError: | 301 case WebDataConsumerHandle::UnexpectedError: |
| 291 error(); | 302 error(); |
| 292 return; | 303 return; |
| 293 } | 304 } |
| 294 return; | 305 return; |
| 295 } | 306 } |
| 296 processData(); | 307 processData(); |
| 297 } | 308 } |
| 298 | 309 |
| 310 WebTaskRunner* BodyStreamBuffer::getTaskRunner() |
| 311 { |
| 312 return TaskRunnerHelper::getUnthrottledTaskRunner(scriptState()); |
| 313 } |
| 314 |
| 299 bool BodyStreamBuffer::hasPendingActivity() const | 315 bool BodyStreamBuffer::hasPendingActivity() const |
| 300 { | 316 { |
| 301 if (m_loader) | 317 if (m_loader) |
| 302 return true; | 318 return true; |
| 303 if (RuntimeEnabledFeatures::responseBodyWithV8ExtraStreamEnabled()) | 319 if (RuntimeEnabledFeatures::responseBodyWithV8ExtraStreamEnabled()) |
| 304 return UnderlyingSourceBase::hasPendingActivity(); | 320 return UnderlyingSourceBase::hasPendingActivity(); |
| 305 | 321 |
| 306 return m_stream->stateInternal() == ReadableStream::Readable && m_stream->is
Locked(); | 322 return m_stream->stateInternal() == ReadableStream::Readable && m_stream->is
Locked(); |
| 307 } | 323 } |
| 308 | 324 |
| (...skipping 168 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 477 return createFetchDataConsumerHandleFromWebHandle(createDoneDataConsumer
Handle()); | 493 return createFetchDataConsumerHandleFromWebHandle(createDoneDataConsumer
Handle()); |
| 478 } | 494 } |
| 479 if (isErrored) | 495 if (isErrored) |
| 480 return createFetchDataConsumerHandleFromWebHandle(createUnexpectedErrorD
ataConsumerHandle()); | 496 return createFetchDataConsumerHandleFromWebHandle(createUnexpectedErrorD
ataConsumerHandle()); |
| 481 | 497 |
| 482 DCHECK(handle); | 498 DCHECK(handle); |
| 483 return handle; | 499 return handle; |
| 484 } | 500 } |
| 485 | 501 |
| 486 } // namespace blink | 502 } // namespace blink |
| OLD | NEW |