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

Unified Diff: webkit/appcache/appcache_quota_client.cc

Issue 8070001: Use base::Callback in Quota related code. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: choke lint Created 9 years, 3 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/appcache/appcache_quota_client.cc
diff --git a/webkit/appcache/appcache_quota_client.cc b/webkit/appcache/appcache_quota_client.cc
index db41d5e688f62f896f9f5bd9b90c4972929bdc7e..a0d52dbab6d669fa9b8e76ab9828dad3a3b7d9e0 100644
--- a/webkit/appcache/appcache_quota_client.cc
+++ b/webkit/appcache/appcache_quota_client.cc
@@ -6,6 +6,7 @@
#include <algorithm>
#include <map>
+#include <set>
#include "webkit/appcache/appcache_service.h"
@@ -36,7 +37,7 @@ AppCacheQuotaClient::~AppCacheQuotaClient() {
DCHECK(pending_usage_requests_.empty());
DCHECK(pending_origins_requests_.empty());
DCHECK(pending_delete_requests_.empty());
- DCHECK(!current_delete_request_callback_.get());
+ DCHECK(current_delete_request_callback_.is_null());
}
QuotaClient::ID AppCacheQuotaClient::id() const {
@@ -45,8 +46,8 @@ QuotaClient::ID AppCacheQuotaClient::id() const {
void AppCacheQuotaClient::OnQuotaManagerDestroyed() {
DeletePendingRequests();
- if (current_delete_request_callback_.get()) {
- current_delete_request_callback_.reset();
+ if (!current_delete_request_callback_.is_null()) {
+ current_delete_request_callback_.Reset();
service_delete_callback_.release()->Cancel();
} else {
service_delete_callback_ = NULL;
@@ -59,13 +60,12 @@ void AppCacheQuotaClient::OnQuotaManagerDestroyed() {
void AppCacheQuotaClient::GetOriginUsage(
const GURL& origin,
quota::StorageType type,
- GetUsageCallback* callback_ptr) {
- DCHECK(callback_ptr);
+ GetUsageCallback callback) {
+ DCHECK(!callback.is_null());
DCHECK(!quota_manager_is_destroyed_);
- scoped_ptr<GetUsageCallback> callback(callback_ptr);
if (!service_) {
- callback->Run(0);
+ callback.Run(0);
return;
}
@@ -73,64 +73,61 @@ void AppCacheQuotaClient::GetOriginUsage(
pending_usage_requests_.push_back(UsageRequest());
pending_usage_requests_.back().origin = origin;
pending_usage_requests_.back().type = type;
- pending_usage_requests_.back().callback = callback.release();
+ pending_usage_requests_.back().callback = callback;
return;
}
if (type == quota::kStorageTypePersistent) {
- callback->Run(0);
+ callback.Run(0);
return;
}
const AppCacheStorage::UsageMap* map = GetUsageMap();
AppCacheStorage::UsageMap::const_iterator found = map->find(origin);
if (found == map->end()) {
- callback->Run(0);
+ callback.Run(0);
return;
}
- callback->Run(found->second);
+ callback.Run(found->second);
}
void AppCacheQuotaClient::GetOriginsForType(
quota::StorageType type,
- GetOriginsCallback* callback_ptr) {
- GetOriginsHelper(type, std::string(), callback_ptr);
+ GetOriginsCallback callback) {
+ GetOriginsHelper(type, std::string(), callback);
}
void AppCacheQuotaClient::GetOriginsForHost(
quota::StorageType type,
const std::string& host,
- GetOriginsCallback* callback_ptr) {
- DCHECK(callback_ptr);
+ GetOriginsCallback callback) {
+ DCHECK(!callback.is_null());
if (host.empty()) {
- callback_ptr->Run(std::set<GURL>(), type);
- delete callback_ptr;
+ callback.Run(std::set<GURL>(), type);
return;
}
- GetOriginsHelper(type, host, callback_ptr);
+ GetOriginsHelper(type, host, callback);
}
void AppCacheQuotaClient::DeleteOriginData(const GURL& origin,
quota::StorageType type,
- DeletionCallback* callback_ptr) {
- DCHECK(callback_ptr);
+ DeletionCallback callback) {
DCHECK(!quota_manager_is_destroyed_);
- scoped_ptr<DeletionCallback> callback(callback_ptr);
if (!service_) {
- callback->Run(quota::kQuotaErrorAbort);
+ callback.Run(quota::kQuotaErrorAbort);
return;
}
- if (!appcache_is_ready_ || current_delete_request_callback_.get()) {
+ if (!appcache_is_ready_ || !current_delete_request_callback_.is_null()) {
pending_delete_requests_.push_back(DeleteRequest());
pending_delete_requests_.back().origin = origin;
pending_delete_requests_.back().type = type;
- pending_delete_requests_.back().callback = callback.release();
+ pending_delete_requests_.back().callback = callback;
return;
}
- current_delete_request_callback_.swap(callback);
+ std::swap(current_delete_request_callback_, callback);
if (type == quota::kStorageTypePersistent) {
DidDeleteAppCachesForOrigin(net::OK);
return;
@@ -138,20 +135,29 @@ void AppCacheQuotaClient::DeleteOriginData(const GURL& origin,
service_->DeleteAppCachesForOrigin(origin, service_delete_callback_);
}
+AppCacheQuotaClient::UsageRequest::UsageRequest() {}
+AppCacheQuotaClient::UsageRequest::~UsageRequest() {}
+
+AppCacheQuotaClient::OriginsRequest::OriginsRequest() {}
+AppCacheQuotaClient::OriginsRequest::~OriginsRequest() {}
+
+AppCacheQuotaClient::DeleteRequest::DeleteRequest() {}
+AppCacheQuotaClient::DeleteRequest::~DeleteRequest() {}
+
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();
+ current_delete_request_callback_.Run(NetErrorCodeToQuotaStatus(rv));
+ current_delete_request_callback_.Reset();
if (pending_delete_requests_.empty())
return;
// Start the next in the queue.
DeleteRequest& next_request = pending_delete_requests_.front();
- current_delete_request_callback_.reset(next_request.callback);
+ current_delete_request_callback_ = next_request.callback;
service_->DeleteAppCachesForOrigin(next_request.origin,
service_delete_callback_);
pending_delete_requests_.pop_front();
@@ -160,13 +166,12 @@ void AppCacheQuotaClient::DidDeleteAppCachesForOrigin(int rv) {
void AppCacheQuotaClient::GetOriginsHelper(
quota::StorageType type,
const std::string& opt_host,
- GetOriginsCallback* callback_ptr) {
- DCHECK(callback_ptr);
+ GetOriginsCallback callback) {
+ DCHECK(!callback.is_null());
DCHECK(!quota_manager_is_destroyed_);
- scoped_ptr<GetOriginsCallback> callback(callback_ptr);
if (!service_) {
- callback->Run(std::set<GURL>(), type);
+ callback.Run(std::set<GURL>(), type);
return;
}
@@ -174,12 +179,12 @@ void AppCacheQuotaClient::GetOriginsHelper(
pending_origins_requests_.push_back(OriginsRequest());
pending_origins_requests_.back().opt_host = opt_host;
pending_origins_requests_.back().type = type;
- pending_origins_requests_.back().callback = callback.release();
+ pending_origins_requests_.back().callback = callback;
return;
}
if (type == quota::kStorageTypePersistent) {
- callback->Run(std::set<GURL>(), type);
+ callback.Run(std::set<GURL>(), type);
return;
}
@@ -190,7 +195,7 @@ void AppCacheQuotaClient::GetOriginsHelper(
if (opt_host.empty() || iter->first.host() == opt_host)
origins.insert(iter->first);
}
- callback->Run(origins, type);
+ callback.Run(origins, type);
}
void AppCacheQuotaClient::ProcessPendingRequests() {
@@ -215,34 +220,28 @@ void AppCacheQuotaClient::ProcessPendingRequests() {
void AppCacheQuotaClient::AbortPendingRequests() {
while (!pending_usage_requests_.empty()) {
- pending_usage_requests_.front().callback->Run(0);
- delete pending_usage_requests_.front().callback;
+ pending_usage_requests_.front().callback.Run(0);
pending_usage_requests_.pop_front();
}
while (!pending_origins_requests_.empty()) {
- pending_origins_requests_.front().callback->Run(std::set<GURL>(),
+ pending_origins_requests_.front().callback.Run(std::set<GURL>(),
pending_origins_requests_.front().type);
- delete pending_origins_requests_.front().callback;
pending_origins_requests_.pop_front();
}
while (!pending_delete_requests_.empty()) {
- pending_delete_requests_.front().callback->Run(quota::kQuotaErrorAbort);
- delete pending_delete_requests_.front().callback;
+ pending_delete_requests_.front().callback.Run(quota::kQuotaErrorAbort);
pending_delete_requests_.pop_front();
}
}
void AppCacheQuotaClient::DeletePendingRequests() {
while (!pending_usage_requests_.empty()) {
- delete pending_usage_requests_.front().callback;
pending_usage_requests_.pop_front();
}
while (!pending_origins_requests_.empty()) {
- delete pending_origins_requests_.front().callback;
pending_origins_requests_.pop_front();
}
while (!pending_delete_requests_.empty()) {
- delete pending_delete_requests_.front().callback;
pending_delete_requests_.pop_front();
}
}
@@ -260,9 +259,9 @@ void AppCacheQuotaClient::NotifyAppCacheReady() {
void AppCacheQuotaClient::NotifyAppCacheDestroyed() {
service_ = NULL;
AbortPendingRequests();
- if (current_delete_request_callback_.get()) {
- current_delete_request_callback_->Run(quota::kQuotaErrorAbort);
- current_delete_request_callback_.reset();
+ if (!current_delete_request_callback_.is_null()) {
+ current_delete_request_callback_.Run(quota::kQuotaErrorAbort);
+ current_delete_request_callback_.Reset();
service_delete_callback_.release()->Cancel();
} else {
service_delete_callback_ = NULL;

Powered by Google App Engine
This is Rietveld 408576698