Index: webkit/browser/fileapi/quota/quota_backend_impl.cc |
diff --git a/webkit/browser/fileapi/quota/quota_backend_impl.cc b/webkit/browser/fileapi/quota/quota_backend_impl.cc |
deleted file mode 100644 |
index deb100eecf38328e8609659cd179f0c1263a119b..0000000000000000000000000000000000000000 |
--- a/webkit/browser/fileapi/quota/quota_backend_impl.cc |
+++ /dev/null |
@@ -1,172 +0,0 @@ |
-// Copyright 2013 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 "webkit/browser/fileapi/quota/quota_backend_impl.h" |
- |
-#include <string> |
- |
-#include "base/bind.h" |
-#include "base/callback.h" |
-#include "base/logging.h" |
-#include "base/numerics/safe_conversions.h" |
-#include "base/sequenced_task_runner.h" |
-#include "webkit/browser/fileapi/file_system_usage_cache.h" |
-#include "webkit/browser/quota/quota_client.h" |
-#include "webkit/browser/quota/quota_manager_proxy.h" |
-#include "webkit/common/fileapi/file_system_util.h" |
- |
-namespace storage { |
- |
-QuotaBackendImpl::QuotaBackendImpl( |
- base::SequencedTaskRunner* file_task_runner, |
- ObfuscatedFileUtil* obfuscated_file_util, |
- FileSystemUsageCache* file_system_usage_cache, |
- storage::QuotaManagerProxy* quota_manager_proxy) |
- : file_task_runner_(file_task_runner), |
- obfuscated_file_util_(obfuscated_file_util), |
- file_system_usage_cache_(file_system_usage_cache), |
- quota_manager_proxy_(quota_manager_proxy), |
- weak_ptr_factory_(this) { |
-} |
- |
-QuotaBackendImpl::~QuotaBackendImpl() { |
-} |
- |
-void QuotaBackendImpl::ReserveQuota(const GURL& origin, |
- FileSystemType type, |
- int64 delta, |
- const ReserveQuotaCallback& callback) { |
- DCHECK(file_task_runner_->RunsTasksOnCurrentThread()); |
- DCHECK(origin.is_valid()); |
- if (!delta) { |
- callback.Run(base::File::FILE_OK, 0); |
- return; |
- } |
- DCHECK(quota_manager_proxy_.get()); |
- quota_manager_proxy_->GetUsageAndQuota( |
- file_task_runner_.get(), |
- origin, |
- FileSystemTypeToQuotaStorageType(type), |
- base::Bind(&QuotaBackendImpl::DidGetUsageAndQuotaForReserveQuota, |
- weak_ptr_factory_.GetWeakPtr(), |
- QuotaReservationInfo(origin, type, delta), |
- callback)); |
-} |
- |
-void QuotaBackendImpl::ReleaseReservedQuota(const GURL& origin, |
- FileSystemType type, |
- int64 size) { |
- DCHECK(file_task_runner_->RunsTasksOnCurrentThread()); |
- DCHECK(origin.is_valid()); |
- DCHECK_LE(0, size); |
- if (!size) |
- return; |
- ReserveQuotaInternal(QuotaReservationInfo(origin, type, -size)); |
-} |
- |
-void QuotaBackendImpl::CommitQuotaUsage(const GURL& origin, |
- FileSystemType type, |
- int64 delta) { |
- DCHECK(file_task_runner_->RunsTasksOnCurrentThread()); |
- DCHECK(origin.is_valid()); |
- if (!delta) |
- return; |
- ReserveQuotaInternal(QuotaReservationInfo(origin, type, delta)); |
- base::FilePath path; |
- if (GetUsageCachePath(origin, type, &path) != base::File::FILE_OK) |
- return; |
- bool result = file_system_usage_cache_->AtomicUpdateUsageByDelta(path, delta); |
- DCHECK(result); |
-} |
- |
-void QuotaBackendImpl::IncrementDirtyCount(const GURL& origin, |
- FileSystemType type) { |
- DCHECK(file_task_runner_->RunsTasksOnCurrentThread()); |
- DCHECK(origin.is_valid()); |
- base::FilePath path; |
- if (GetUsageCachePath(origin, type, &path) != base::File::FILE_OK) |
- return; |
- DCHECK(file_system_usage_cache_); |
- file_system_usage_cache_->IncrementDirty(path); |
-} |
- |
-void QuotaBackendImpl::DecrementDirtyCount(const GURL& origin, |
- FileSystemType type) { |
- DCHECK(file_task_runner_->RunsTasksOnCurrentThread()); |
- DCHECK(origin.is_valid()); |
- base::FilePath path; |
- if (GetUsageCachePath(origin, type, &path) != base::File::FILE_OK) |
- return; |
- DCHECK(file_system_usage_cache_); |
- file_system_usage_cache_->DecrementDirty(path); |
-} |
- |
-void QuotaBackendImpl::DidGetUsageAndQuotaForReserveQuota( |
- const QuotaReservationInfo& info, |
- const ReserveQuotaCallback& callback, |
- storage::QuotaStatusCode status, |
- int64 usage, |
- int64 quota) { |
- DCHECK(file_task_runner_->RunsTasksOnCurrentThread()); |
- DCHECK(info.origin.is_valid()); |
- DCHECK_LE(0, usage); |
- DCHECK_LE(0, quota); |
- if (status != storage::kQuotaStatusOk) { |
- callback.Run(base::File::FILE_ERROR_FAILED, 0); |
- return; |
- } |
- |
- QuotaReservationInfo normalized_info = info; |
- if (info.delta > 0) { |
- int64 new_usage = |
- base::saturated_cast<int64>(usage + static_cast<uint64>(info.delta)); |
- if (quota < new_usage) |
- new_usage = quota; |
- normalized_info.delta = std::max(static_cast<int64>(0), new_usage - usage); |
- } |
- |
- ReserveQuotaInternal(normalized_info); |
- if (callback.Run(base::File::FILE_OK, normalized_info.delta)) |
- return; |
- // The requester could not accept the reserved quota. Revert it. |
- ReserveQuotaInternal( |
- QuotaReservationInfo(normalized_info.origin, |
- normalized_info.type, |
- -normalized_info.delta)); |
-} |
- |
-void QuotaBackendImpl::ReserveQuotaInternal(const QuotaReservationInfo& info) { |
- DCHECK(file_task_runner_->RunsTasksOnCurrentThread()); |
- DCHECK(info.origin.is_valid()); |
- DCHECK(quota_manager_proxy_.get()); |
- quota_manager_proxy_->NotifyStorageModified( |
- storage::QuotaClient::kFileSystem, |
- info.origin, |
- FileSystemTypeToQuotaStorageType(info.type), |
- info.delta); |
-} |
- |
-base::File::Error QuotaBackendImpl::GetUsageCachePath( |
- const GURL& origin, |
- FileSystemType type, |
- base::FilePath* usage_file_path) { |
- DCHECK(file_task_runner_->RunsTasksOnCurrentThread()); |
- DCHECK(origin.is_valid()); |
- DCHECK(usage_file_path); |
- base::File::Error error = base::File::FILE_OK; |
- *usage_file_path = |
- SandboxFileSystemBackendDelegate::GetUsageCachePathForOriginAndType( |
- obfuscated_file_util_, origin, type, &error); |
- return error; |
-} |
- |
-QuotaBackendImpl::QuotaReservationInfo::QuotaReservationInfo( |
- const GURL& origin, FileSystemType type, int64 delta) |
- : origin(origin), type(type), delta(delta) { |
-} |
- |
-QuotaBackendImpl::QuotaReservationInfo::~QuotaReservationInfo() { |
-} |
- |
-} // namespace storage |