Index: Source/modules/serviceworkers/BodyStreamBuffer.cpp |
diff --git a/Source/modules/serviceworkers/BodyStreamBuffer.cpp b/Source/modules/serviceworkers/BodyStreamBuffer.cpp |
deleted file mode 100644 |
index d92a25b79d9307f451d274b8afe6792c4871ceca..0000000000000000000000000000000000000000 |
--- a/Source/modules/serviceworkers/BodyStreamBuffer.cpp |
+++ /dev/null |
@@ -1,146 +0,0 @@ |
-// Copyright 2014 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
- |
-#include "config.h" |
-#include "modules/serviceworkers/BodyStreamBuffer.h" |
- |
-#include "core/dom/DOMArrayBuffer.h" |
- |
-namespace blink { |
- |
-namespace { |
- |
-class BlobCreator final : public BodyStreamBuffer::Observer { |
-public: |
- BlobCreator(BodyStreamBuffer* buffer, const String& contentType, BodyStreamBuffer::BlobHandleCreatorClient* client) |
- : m_buffer(buffer) |
- , m_client(client) |
- , m_blobData(BlobData::create()) |
- { |
- m_blobData->setContentType(contentType); |
- } |
- ~BlobCreator() override { } |
- void trace(Visitor* visitor) override |
- { |
- visitor->trace(m_buffer); |
- visitor->trace(m_client); |
- BodyStreamBuffer::Observer::trace(visitor); |
- } |
- void onWrite() override |
- { |
- ASSERT(m_buffer); |
- while (RefPtr<DOMArrayBuffer> buf = m_buffer->read()) { |
- m_blobData->appendBytes(buf->data(), buf->byteLength()); |
- } |
- } |
- void onClose() override |
- { |
- ASSERT(m_buffer); |
- const long long size = m_blobData->length(); |
- m_client->didCreateBlobHandle(BlobDataHandle::create(m_blobData.release(), size)); |
- cleanup(); |
- } |
- void onError() override |
- { |
- ASSERT(m_buffer); |
- m_client->didFail(m_buffer->exception()); |
- cleanup(); |
- } |
- void start() |
- { |
- ASSERT(!m_buffer->isObserverRegistered()); |
- m_buffer->registerObserver(this); |
- onWrite(); |
- if (m_buffer->hasError()) { |
- return onError(); |
- } |
- if (m_buffer->isClosed()) |
- return onClose(); |
- } |
- void cleanup() |
- { |
- m_buffer->unregisterObserver(); |
- m_buffer.clear(); |
- m_client.clear(); |
- m_blobData.clear(); |
- } |
-private: |
- Member<BodyStreamBuffer> m_buffer; |
- Member<BodyStreamBuffer::BlobHandleCreatorClient> m_client; |
- OwnPtr<BlobData> m_blobData; |
-}; |
- |
-} // namespace |
- |
-PassRefPtr<DOMArrayBuffer> BodyStreamBuffer::read() |
-{ |
- if (m_queue.isEmpty()) |
- return PassRefPtr<DOMArrayBuffer>(); |
- return m_queue.takeFirst(); |
-} |
- |
-void BodyStreamBuffer::write(PassRefPtr<DOMArrayBuffer> chunk) |
-{ |
- ASSERT(!m_isClosed); |
- ASSERT(!m_exception); |
- ASSERT(chunk); |
- m_queue.append(chunk); |
- if (m_observer) |
- m_observer->onWrite(); |
-} |
- |
-void BodyStreamBuffer::close() |
-{ |
- ASSERT(!m_isClosed); |
- ASSERT(!m_exception); |
- m_isClosed = true; |
- if (m_observer) |
- m_observer->onClose(); |
-} |
- |
-void BodyStreamBuffer::error(PassRefPtrWillBeRawPtr<DOMException> exception) |
-{ |
- ASSERT(exception); |
- ASSERT(!m_isClosed); |
- ASSERT(!m_exception); |
- m_exception = exception; |
- if (m_observer) |
- m_observer->onError(); |
-} |
- |
-bool BodyStreamBuffer::readAllAndCreateBlobHandle(const String& contentType, BlobHandleCreatorClient* client) |
-{ |
- if (m_observer) |
- return false; |
- BlobCreator* blobCreator = new BlobCreator(this, contentType, client); |
- blobCreator->start(); |
- return true; |
-} |
- |
-bool BodyStreamBuffer::registerObserver(Observer* observer) |
-{ |
- if (m_observer) |
- return false; |
- ASSERT(observer); |
- m_observer = observer; |
- return true; |
-} |
- |
-void BodyStreamBuffer::unregisterObserver() |
-{ |
- m_observer.clear(); |
-} |
- |
-void BodyStreamBuffer::trace(Visitor* visitor) |
-{ |
- visitor->trace(m_exception); |
- visitor->trace(m_observer); |
-} |
- |
-BodyStreamBuffer::BodyStreamBuffer() |
- : m_isClosed(false) |
-{ |
-} |
- |
-} // namespace blink |