| Index: Source/modules/fetch/Body.cpp
|
| diff --git a/Source/modules/fetch/Body.cpp b/Source/modules/fetch/Body.cpp
|
| index 798cd4b2b7418d2e0d238896a6e5409496b3be06..6b43a22094c661901cda9335c75f4c832d802de9 100644
|
| --- a/Source/modules/fetch/Body.cpp
|
| +++ b/Source/modules/fetch/Body.cpp
|
| @@ -59,7 +59,7 @@ public:
|
| Errored,
|
| BodyUsed,
|
| };
|
| - ReadableStreamSource(Body* body) : m_body(body), m_state(Initial), m_queueCount(0)
|
| + ReadableStreamSource(Body* body) : m_body(body), m_state(Initial)
|
| {
|
| if (m_body->buffer()) {
|
| m_bodyStreamBuffer = m_body->buffer();
|
| @@ -100,13 +100,12 @@ public:
|
| }
|
| }
|
| // Creates a new BodyStreamBuffer to drain the data.
|
| - BodyStreamBuffer* createDrainingStream(bool* dataLost)
|
| + BodyStreamBuffer* createDrainingStream()
|
| {
|
| ASSERT(!m_drainingStreamBuffer);
|
| ASSERT(m_state != Initial);
|
| ASSERT(m_state != BodyUsed);
|
| ASSERT(m_stream);
|
| - ASSERT(dataLost);
|
| m_drainingStreamBuffer = new BodyStreamBuffer();
|
| if (m_state == Errored) {
|
| m_drainingStreamBuffer->error(exception());
|
| @@ -116,7 +115,6 @@ public:
|
| Deque<std::pair<RefPtr<DOMArrayBuffer>, size_t>> tmp_queue;
|
| if (m_stream->stateInternal() == ReadableStream::Readable)
|
| m_stream->readInternal(tmp_queue);
|
| - *dataLost = m_queueCount != tmp_queue.size();
|
| while (!tmp_queue.isEmpty()) {
|
| std::pair<RefPtr<DOMArrayBuffer>, size_t> data = tmp_queue.takeFirst();
|
| m_drainingStreamBuffer->write(data.first);
|
| @@ -183,12 +181,10 @@ private:
|
|
|
| void write(PassRefPtr<DOMArrayBuffer> buf)
|
| {
|
| - if (m_drainingStreamBuffer) {
|
| + if (m_drainingStreamBuffer)
|
| m_drainingStreamBuffer->write(buf);
|
| - } else {
|
| - ++m_queueCount;
|
| + else
|
| m_stream->enqueue(buf);
|
| - }
|
| }
|
| void close()
|
| {
|
| @@ -228,8 +224,6 @@ private:
|
| Member<BodyStreamBuffer> m_drainingStreamBuffer;
|
| Member<ReadableStreamImpl<ReadableStreamChunkTypeTraits<DOMArrayBuffer>>> m_stream;
|
| State m_state;
|
| - // The count of the chunks which were enqueued to the ReadableStream.
|
| - size_t m_queueCount;
|
| };
|
|
|
| ScriptPromise Body::readAsync(ScriptState* scriptState, ResponseType type)
|
| @@ -256,8 +250,7 @@ ScriptPromise Body::readAsync(ScriptState* scriptState, ResponseType type)
|
|
|
| if (m_stream) {
|
| ASSERT(m_streamSource);
|
| - bool dataLost;
|
| - m_streamSource->createDrainingStream(&dataLost)->readAllAndCreateBlobHandle(contentTypeForBuffer(), new BlobHandleReceiver(this));
|
| + m_streamSource->createDrainingStream()->readAllAndCreateBlobHandle(contentTypeForBuffer(), new BlobHandleReceiver(this));
|
| } else if (buffer()) {
|
| buffer()->readAllAndCreateBlobHandle(contentTypeForBuffer(), new BlobHandleReceiver(this));
|
| } else {
|
| @@ -369,10 +362,10 @@ bool Body::streamAccessed() const
|
| return m_stream;
|
| }
|
|
|
| -BodyStreamBuffer* Body::createDrainingStream(bool* dataLost)
|
| +BodyStreamBuffer* Body::createDrainingStream()
|
| {
|
| ASSERT(m_stream);
|
| - BodyStreamBuffer* newBuffer = m_streamSource->createDrainingStream(dataLost);
|
| + BodyStreamBuffer* newBuffer = m_streamSource->createDrainingStream();
|
| m_stream = nullptr;
|
| m_streamSource = nullptr;
|
| return newBuffer;
|
|
|