Index: content/browser/fileapi/chrome_blob_storage_context.cc |
diff --git a/content/browser/fileapi/chrome_blob_storage_context.cc b/content/browser/fileapi/chrome_blob_storage_context.cc |
deleted file mode 100644 |
index 71424bce62c47f0a44afd492b329ce6abe9e7f5b..0000000000000000000000000000000000000000 |
--- a/content/browser/fileapi/chrome_blob_storage_context.cc |
+++ /dev/null |
@@ -1,120 +0,0 @@ |
-// Copyright (c) 2012 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 "content/browser/fileapi/chrome_blob_storage_context.h" |
- |
-#include <utility> |
- |
-#include "base/bind.h" |
-#include "base/guid.h" |
-#include "content/public/browser/blob_handle.h" |
-#include "content/public/browser/browser_context.h" |
-#include "content/public/browser/browser_thread.h" |
-#include "storage/browser/blob/blob_data_builder.h" |
-#include "storage/browser/blob/blob_data_handle.h" |
-#include "storage/browser/blob/blob_storage_context.h" |
- |
-using base::UserDataAdapter; |
-using storage::BlobStorageContext; |
- |
-namespace content { |
- |
-namespace { |
- |
-const char kBlobStorageContextKeyName[] = "content_blob_storage_context"; |
- |
-class BlobHandleImpl : public BlobHandle { |
- public: |
- explicit BlobHandleImpl(std::unique_ptr<storage::BlobDataHandle> handle) |
- : handle_(std::move(handle)) {} |
- |
- ~BlobHandleImpl() override {} |
- |
- std::string GetUUID() override { return handle_->uuid(); } |
- |
- private: |
- std::unique_ptr<storage::BlobDataHandle> handle_; |
-}; |
- |
-} // namespace |
- |
-ChromeBlobStorageContext::ChromeBlobStorageContext() {} |
- |
-ChromeBlobStorageContext* ChromeBlobStorageContext::GetFor( |
- BrowserContext* context) { |
- if (!context->GetUserData(kBlobStorageContextKeyName)) { |
- scoped_refptr<ChromeBlobStorageContext> blob = |
- new ChromeBlobStorageContext(); |
- context->SetUserData( |
- kBlobStorageContextKeyName, |
- new UserDataAdapter<ChromeBlobStorageContext>(blob.get())); |
- // Check first to avoid memory leak in unittests. |
- if (BrowserThread::IsMessageLoopValid(BrowserThread::IO)) { |
- BrowserThread::PostTask( |
- BrowserThread::IO, FROM_HERE, |
- base::Bind(&ChromeBlobStorageContext::InitializeOnIOThread, blob)); |
- } |
- } |
- |
- return UserDataAdapter<ChromeBlobStorageContext>::Get( |
- context, kBlobStorageContextKeyName); |
-} |
- |
-void ChromeBlobStorageContext::InitializeOnIOThread() { |
- DCHECK_CURRENTLY_ON(BrowserThread::IO); |
- context_.reset(new BlobStorageContext()); |
-} |
- |
-std::unique_ptr<BlobHandle> ChromeBlobStorageContext::CreateMemoryBackedBlob( |
- const char* data, |
- size_t length) { |
- DCHECK_CURRENTLY_ON(BrowserThread::IO); |
- |
- std::string uuid(base::GenerateGUID()); |
- storage::BlobDataBuilder blob_data_builder(uuid); |
- blob_data_builder.AppendData(data, length); |
- |
- std::unique_ptr<storage::BlobDataHandle> blob_data_handle = |
- context_->AddFinishedBlob(&blob_data_builder); |
- if (!blob_data_handle) |
- return std::unique_ptr<BlobHandle>(); |
- |
- std::unique_ptr<BlobHandle> blob_handle( |
- new BlobHandleImpl(std::move(blob_data_handle))); |
- return blob_handle; |
-} |
- |
-std::unique_ptr<BlobHandle> ChromeBlobStorageContext::CreateFileBackedBlob( |
- const base::FilePath& path, |
- int64_t offset, |
- int64_t size, |
- const base::Time& expected_modification_time) { |
- DCHECK_CURRENTLY_ON(BrowserThread::IO); |
- |
- std::string uuid(base::GenerateGUID()); |
- storage::BlobDataBuilder blob_data_builder(uuid); |
- blob_data_builder.AppendFile(path, offset, size, expected_modification_time); |
- |
- std::unique_ptr<storage::BlobDataHandle> blob_data_handle = |
- context_->AddFinishedBlob(&blob_data_builder); |
- if (!blob_data_handle) |
- return std::unique_ptr<BlobHandle>(); |
- |
- std::unique_ptr<BlobHandle> blob_handle( |
- new BlobHandleImpl(std::move(blob_data_handle))); |
- return blob_handle; |
-} |
- |
-ChromeBlobStorageContext::~ChromeBlobStorageContext() {} |
- |
-void ChromeBlobStorageContext::DeleteOnCorrectThread() const { |
- if (BrowserThread::IsMessageLoopValid(BrowserThread::IO) && |
- !BrowserThread::CurrentlyOn(BrowserThread::IO)) { |
- BrowserThread::DeleteSoon(BrowserThread::IO, FROM_HERE, this); |
- return; |
- } |
- delete this; |
-} |
- |
-} // namespace content |