| Index: webkit/blob/mock_blob_url_request_context.cc
|
| ===================================================================
|
| --- webkit/blob/mock_blob_url_request_context.cc (revision 186525)
|
| +++ webkit/blob/mock_blob_url_request_context.cc (working copy)
|
| @@ -5,51 +5,20 @@
|
| #include "webkit/blob/mock_blob_url_request_context.h"
|
|
|
| #include "webkit/blob/blob_data.h"
|
| -#include "webkit/blob/blob_storage_controller.h"
|
| +#include "webkit/blob/blob_storage_context.h"
|
| #include "webkit/blob/blob_url_request_job.h"
|
| +#include "webkit/blob/blob_url_request_job_factory.h"
|
|
|
| namespace webkit_blob {
|
|
|
| -namespace {
|
| -
|
| -class MockBlobProtocolHandler
|
| - : public net::URLRequestJobFactory::ProtocolHandler {
|
| - public:
|
| - explicit MockBlobProtocolHandler(
|
| - BlobStorageController* blob_storage_controller,
|
| - fileapi::FileSystemContext* file_system_context)
|
| - : blob_storage_controller_(blob_storage_controller),
|
| - file_system_context_(file_system_context) {}
|
| -
|
| - virtual ~MockBlobProtocolHandler() {}
|
| -
|
| - virtual net::URLRequestJob* MaybeCreateJob(
|
| - net::URLRequest* request,
|
| - net::NetworkDelegate* network_delegate) const OVERRIDE {
|
| - return new BlobURLRequestJob(
|
| - request,
|
| - network_delegate,
|
| - blob_storage_controller_->GetBlobDataFromUrl(request->url()),
|
| - file_system_context_,
|
| - base::MessageLoopProxy::current());
|
| - }
|
| -
|
| - private:
|
| - webkit_blob::BlobStorageController* const blob_storage_controller_;
|
| - fileapi::FileSystemContext* const file_system_context_;
|
| -
|
| - DISALLOW_COPY_AND_ASSIGN(MockBlobProtocolHandler);
|
| -};
|
| -
|
| -} // namespace
|
| -
|
| MockBlobURLRequestContext::MockBlobURLRequestContext(
|
| fileapi::FileSystemContext* file_system_context)
|
| - : blob_storage_controller_(new BlobStorageController) {
|
| + : blob_storage_context_(new BlobStorageContext) {
|
| // Job factory owns the protocol handler.
|
| job_factory_.SetProtocolHandler(
|
| - "blob", new MockBlobProtocolHandler(blob_storage_controller_.get(),
|
| - file_system_context));
|
| + "blob", new BlobProtocolHandler(blob_storage_context_.get(),
|
| + file_system_context,
|
| + base::MessageLoopProxy::current()));
|
| set_job_factory(&job_factory_);
|
| }
|
|
|
| @@ -57,18 +26,23 @@
|
|
|
| ScopedTextBlob::ScopedTextBlob(
|
| const MockBlobURLRequestContext& request_context,
|
| - const GURL& blob_url,
|
| + const std::string& blob_id,
|
| const std::string& data)
|
| - : blob_url_(blob_url),
|
| - blob_storage_controller_(request_context.blob_storage_controller()) {
|
| - DCHECK(blob_storage_controller_);
|
| - scoped_refptr<BlobData> blob_data(new BlobData());
|
| - blob_data->AppendData(data);
|
| - blob_storage_controller_->AddFinishedBlob(blob_url_, blob_data);
|
| + : blob_id_(blob_id),
|
| + blob_storage_context_(request_context.blob_storage_context()) {
|
| + DCHECK(blob_storage_context_);
|
| + scoped_refptr<BlobData> blob_data(new BlobData(blob_id_));
|
| + if (!data.empty())
|
| + blob_data->AppendData(data);
|
| + blob_storage_context_->AddFinishedBlob(blob_data);
|
| }
|
|
|
| ScopedTextBlob::~ScopedTextBlob() {
|
| - blob_storage_controller_->RemoveBlob(blob_url_);
|
| + blob_storage_context_->DecrementBlobRefCount(blob_id_);
|
| }
|
|
|
| +scoped_ptr<BlobDataHandle> ScopedTextBlob::GetBlobDataHandle() {
|
| + return blob_storage_context_->GetBlobDataFromUUID(blob_id_);
|
| +}
|
| +
|
| } // namespace webkit_blob
|
|
|