Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(846)

Unified Diff: webkit/browser/appcache/appcache_quota_client.cc

Issue 344493002: Move all remaining appcache-related code to content namespace (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: rebase Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: webkit/browser/appcache/appcache_quota_client.cc
diff --git a/webkit/browser/appcache/appcache_quota_client.cc b/webkit/browser/appcache/appcache_quota_client.cc
deleted file mode 100644
index 039b5544bd94361827e30a320c400307a5b3d5aa..0000000000000000000000000000000000000000
--- a/webkit/browser/appcache/appcache_quota_client.cc
+++ /dev/null
@@ -1,253 +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 "webkit/browser/appcache/appcache_quota_client.h"
-
-#include <algorithm>
-#include <map>
-#include <set>
-
-#include "base/bind.h"
-#include "base/bind_helpers.h"
-#include "webkit/browser/appcache/appcache_service_impl.h"
-
-using quota::QuotaClient;
-
-namespace {
-quota::QuotaStatusCode NetErrorCodeToQuotaStatus(int code) {
- if (code == net::OK)
- return quota::kQuotaStatusOk;
- else if (code == net::ERR_ABORTED)
- return quota::kQuotaErrorAbort;
- else
- return quota::kQuotaStatusUnknown;
-}
-
-void RunFront(appcache::AppCacheQuotaClient::RequestQueue* queue) {
- base::Closure request = queue->front();
- queue->pop_front();
- request.Run();
-}
-} // namespace
-
-namespace appcache {
-
-AppCacheQuotaClient::AppCacheQuotaClient(AppCacheServiceImpl* service)
- : service_(service),
- appcache_is_ready_(false),
- quota_manager_is_destroyed_(false) {
-}
-
-AppCacheQuotaClient::~AppCacheQuotaClient() {
- DCHECK(pending_batch_requests_.empty());
- DCHECK(pending_serial_requests_.empty());
- DCHECK(current_delete_request_callback_.is_null());
-}
-
-QuotaClient::ID AppCacheQuotaClient::id() const {
- return kAppcache;
-}
-
-void AppCacheQuotaClient::OnQuotaManagerDestroyed() {
- DeletePendingRequests();
- if (!current_delete_request_callback_.is_null()) {
- current_delete_request_callback_.Reset();
- GetServiceDeleteCallback()->Cancel();
- }
-
- quota_manager_is_destroyed_ = true;
- if (!service_)
- delete this;
-}
-
-void AppCacheQuotaClient::GetOriginUsage(
- const GURL& origin,
- quota::StorageType type,
- const GetUsageCallback& callback) {
- DCHECK(!callback.is_null());
- DCHECK(!quota_manager_is_destroyed_);
-
- if (!service_) {
- callback.Run(0);
- return;
- }
-
- if (!appcache_is_ready_) {
- pending_batch_requests_.push_back(
- base::Bind(&AppCacheQuotaClient::GetOriginUsage,
- base::Unretained(this), origin, type, callback));
- return;
- }
-
- if (type != quota::kStorageTypeTemporary) {
- callback.Run(0);
- return;
- }
-
- const AppCacheStorage::UsageMap* map = GetUsageMap();
- AppCacheStorage::UsageMap::const_iterator found = map->find(origin);
- if (found == map->end()) {
- callback.Run(0);
- return;
- }
- callback.Run(found->second);
-}
-
-void AppCacheQuotaClient::GetOriginsForType(
- quota::StorageType type,
- const GetOriginsCallback& callback) {
- GetOriginsHelper(type, std::string(), callback);
-}
-
-void AppCacheQuotaClient::GetOriginsForHost(
- quota::StorageType type,
- const std::string& host,
- const GetOriginsCallback& callback) {
- DCHECK(!callback.is_null());
- if (host.empty()) {
- callback.Run(std::set<GURL>());
- return;
- }
- GetOriginsHelper(type, host, callback);
-}
-
-void AppCacheQuotaClient::DeleteOriginData(const GURL& origin,
- quota::StorageType type,
- const DeletionCallback& callback) {
- DCHECK(!quota_manager_is_destroyed_);
-
- if (!service_) {
- callback.Run(quota::kQuotaErrorAbort);
- return;
- }
-
- if (!appcache_is_ready_ || !current_delete_request_callback_.is_null()) {
- pending_serial_requests_.push_back(
- base::Bind(&AppCacheQuotaClient::DeleteOriginData,
- base::Unretained(this), origin, type, callback));
- return;
- }
-
- current_delete_request_callback_ = callback;
- if (type != quota::kStorageTypeTemporary) {
- DidDeleteAppCachesForOrigin(net::OK);
- return;
- }
-
- service_->DeleteAppCachesForOrigin(
- origin, GetServiceDeleteCallback()->callback());
-}
-
-bool AppCacheQuotaClient::DoesSupport(quota::StorageType type) const {
- return type == quota::kStorageTypeTemporary;
-}
-
-void AppCacheQuotaClient::DidDeleteAppCachesForOrigin(int rv) {
- DCHECK(service_);
- if (quota_manager_is_destroyed_)
- return;
-
- // Finish the request by calling our callers callback.
- current_delete_request_callback_.Run(NetErrorCodeToQuotaStatus(rv));
- current_delete_request_callback_.Reset();
- if (pending_serial_requests_.empty())
- return;
-
- // Start the next in the queue.
- RunFront(&pending_serial_requests_);
-}
-
-void AppCacheQuotaClient::GetOriginsHelper(
- quota::StorageType type,
- const std::string& opt_host,
- const GetOriginsCallback& callback) {
- DCHECK(!callback.is_null());
- DCHECK(!quota_manager_is_destroyed_);
-
- if (!service_) {
- callback.Run(std::set<GURL>());
- return;
- }
-
- if (!appcache_is_ready_) {
- pending_batch_requests_.push_back(
- base::Bind(&AppCacheQuotaClient::GetOriginsHelper,
- base::Unretained(this), type, opt_host, callback));
- return;
- }
-
- if (type != quota::kStorageTypeTemporary) {
- callback.Run(std::set<GURL>());
- return;
- }
-
- const AppCacheStorage::UsageMap* map = GetUsageMap();
- std::set<GURL> origins;
- for (AppCacheStorage::UsageMap::const_iterator iter = map->begin();
- iter != map->end(); ++iter) {
- if (opt_host.empty() || iter->first.host() == opt_host)
- origins.insert(iter->first);
- }
- callback.Run(origins);
-}
-
-void AppCacheQuotaClient::ProcessPendingRequests() {
- DCHECK(appcache_is_ready_);
- while (!pending_batch_requests_.empty())
- RunFront(&pending_batch_requests_);
-
- if (!pending_serial_requests_.empty())
- RunFront(&pending_serial_requests_);
-}
-
-void AppCacheQuotaClient::DeletePendingRequests() {
- pending_batch_requests_.clear();
- pending_serial_requests_.clear();
-}
-
-const AppCacheStorage::UsageMap* AppCacheQuotaClient::GetUsageMap() {
- DCHECK(service_);
- return service_->storage()->usage_map();
-}
-
-net::CancelableCompletionCallback*
-AppCacheQuotaClient::GetServiceDeleteCallback() {
- // Lazily created due to CancelableCompletionCallback's threading
- // restrictions, there is no way to detach from the thread created on.
- if (!service_delete_callback_) {
- service_delete_callback_.reset(
- new net::CancelableCompletionCallback(
- base::Bind(&AppCacheQuotaClient::DidDeleteAppCachesForOrigin,
- base::Unretained(this))));
- }
- return service_delete_callback_.get();
-}
-
-void AppCacheQuotaClient::NotifyAppCacheReady() {
- // Can reoccur during reinitialization.
- if (!appcache_is_ready_) {
- appcache_is_ready_ = true;
- ProcessPendingRequests();
- }
-}
-
-void AppCacheQuotaClient::NotifyAppCacheDestroyed() {
- service_ = NULL;
- while (!pending_batch_requests_.empty())
- RunFront(&pending_batch_requests_);
-
- while (!pending_serial_requests_.empty())
- RunFront(&pending_serial_requests_);
-
- if (!current_delete_request_callback_.is_null()) {
- current_delete_request_callback_.Run(quota::kQuotaErrorAbort);
- current_delete_request_callback_.Reset();
- GetServiceDeleteCallback()->Cancel();
- }
-
- if (quota_manager_is_destroyed_)
- delete this;
-}
-
-} // namespace appcache

Powered by Google App Engine
This is Rietveld 408576698