summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-02 02:57:25 +0000
committerjhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-12-02 02:57:25 +0000
commit8b21196a3d2205ae69cd3c155587168809589e72 (patch)
tree94c8d567aab19eefd6c3b167151c3382776f4009
parent18d4f55aea3cea92fafe2a457615fef7b8becab6 (diff)
downloadchromium_src-8b21196a3d2205ae69cd3c155587168809589e72.zip
chromium_src-8b21196a3d2205ae69cd3c155587168809589e72.tar.gz
chromium_src-8b21196a3d2205ae69cd3c155587168809589e72.tar.bz2
base::Bind: Convert AppCacheHelper::DeleteAppCacheGroup.
BUG=none TEST=none R=groby Review URL: http://codereview.chromium.org/8775034 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@112623 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/browsing_data_appcache_helper.cc6
-rw-r--r--webkit/appcache/appcache_service.cc28
-rw-r--r--webkit/appcache/appcache_service.h2
-rw-r--r--webkit/appcache/view_appcache_internals_job.cc21
4 files changed, 29 insertions, 28 deletions
diff --git a/chrome/browser/browsing_data_appcache_helper.cc b/chrome/browser/browsing_data_appcache_helper.cc
index 4d4febf..106d507 100644
--- a/chrome/browser/browsing_data_appcache_helper.cc
+++ b/chrome/browser/browsing_data_appcache_helper.cc
@@ -63,14 +63,16 @@ void BrowsingDataAppCacheHelper::DeleteAppCacheGroup(
manifest_url));
return;
}
- appcache_service_->DeleteAppCacheGroup(manifest_url, NULL);
+
+ appcache_service_->DeleteAppCacheGroup(
+ manifest_url, net::CompletionCallback());
}
BrowsingDataAppCacheHelper::~BrowsingDataAppCacheHelper() {}
void BrowsingDataAppCacheHelper::OnFetchComplete(int rv) {
if (BrowserThread::CurrentlyOn(BrowserThread::IO)) {
- // Filter out appache info entries for extensions. Extension state is not
+ // Filter out appcache info entries for extensions. Extension state is not
// considered browsing data.
typedef std::map<GURL, appcache::AppCacheInfoVector> InfoByOrigin;
InfoByOrigin& origin_map = info_collection_->infos_by_origin;
diff --git a/webkit/appcache/appcache_service.cc b/webkit/appcache/appcache_service.cc
index f48faf8..9aaa50c 100644
--- a/webkit/appcache/appcache_service.cc
+++ b/webkit/appcache/appcache_service.cc
@@ -8,6 +8,7 @@
#include "base/logging.h"
#include "base/message_loop.h"
#include "base/stl_util.h"
+#include "net/base/completion_callback.h"
#include "net/base/io_buffer.h"
#include "webkit/appcache/appcache.h"
#include "webkit/appcache/appcache_backend_impl.h"
@@ -94,7 +95,7 @@ class AppCacheService::AsyncHelper
protected:
void CallCallback(int rv) {
if (callback_) {
- // Defer to guarentee async completion.
+ // Defer to guarantee async completion.
MessageLoop::current()->PostTask(
FROM_HERE, base::Bind(&DeferredCallCallback, callback_, rv));
}
@@ -143,7 +144,7 @@ class AppCacheService::CanHandleOfflineHelper : NewAsyncHelper {
}
private:
- // AppCacheStorage::Delegate override
+ // AppCacheStorage::Delegate implementation.
virtual void OnMainResponseFound(
const GURL& url, const AppCacheEntry& entry,
const GURL& fallback_url, const AppCacheEntry& fallback_entry,
@@ -166,12 +167,12 @@ void AppCacheService::CanHandleOfflineHelper::OnMainResponseFound(
// DeleteHelper -------
-class AppCacheService::DeleteHelper : public AsyncHelper {
+class AppCacheService::DeleteHelper : public NewAsyncHelper {
public:
DeleteHelper(
AppCacheService* service, const GURL& manifest_url,
- net::OldCompletionCallback* callback)
- : AsyncHelper(service, callback), manifest_url_(manifest_url) {
+ const net::CompletionCallback& callback)
+ : NewAsyncHelper(service, callback), manifest_url_(manifest_url) {
}
virtual void Start() {
@@ -179,7 +180,7 @@ class AppCacheService::DeleteHelper : public AsyncHelper {
}
private:
- // AppCacheStorage::Delegate methods
+ // AppCacheStorage::Delegate implementation.
virtual void OnGroupLoaded(
appcache::AppCacheGroup* group, const GURL& manifest_url);
virtual void OnGroupMadeObsolete(
@@ -224,7 +225,7 @@ class AppCacheService::DeleteOriginHelper : public AsyncHelper {
}
private:
- // AppCacheStorage::Delegate methods
+ // AppCacheStorage::Delegate implementation.
virtual void OnAllInfo(AppCacheInfoCollection* collection);
virtual void OnGroupLoaded(
appcache::AppCacheGroup* group, const GURL& manifest_url);
@@ -312,7 +313,7 @@ class AppCacheService::GetInfoHelper : NewAsyncHelper {
}
private:
- // AppCacheStorage::Delegate override
+ // AppCacheStorage::Delegate implementation.
virtual void OnAllInfo(AppCacheInfoCollection* collection);
scoped_refptr<AppCacheInfoCollection> collection_;
@@ -401,7 +402,7 @@ void AppCacheService::CheckResponseHelper::OnGroupLoaded(
if (cache_->cache_id() == cache_id_) {
AppCacheHistograms::CountCheckResponseResult(
AppCacheHistograms::ENTRY_NOT_FOUND);
- service_->DeleteAppCacheGroup(manifest_url_, NULL);
+ service_->DeleteAppCacheGroup(manifest_url_, net::CompletionCallback());
} else {
AppCacheHistograms::CountCheckResponseResult(
AppCacheHistograms::RESPONSE_OUT_OF_DATE);
@@ -422,7 +423,7 @@ void AppCacheService::CheckResponseHelper::OnReadInfoComplete(int result) {
if (result < 0) {
AppCacheHistograms::CountCheckResponseResult(
AppCacheHistograms::READ_HEADERS_ERROR);
- service_->DeleteAppCacheGroup(manifest_url_, NULL);
+ service_->DeleteAppCacheGroup(manifest_url_, net::CompletionCallback());
delete this;
return;
}
@@ -454,7 +455,7 @@ void AppCacheService::CheckResponseHelper::OnReadDataComplete(int result) {
AppCacheHistograms::CountCheckResponseResult(check_result);
if (check_result != AppCacheHistograms::RESPONSE_OK)
- service_->DeleteAppCacheGroup(manifest_url_, NULL);
+ service_->DeleteAppCacheGroup(manifest_url_, net::CompletionCallback());
delete this;
}
@@ -515,8 +516,9 @@ void AppCacheService::GetAllAppCacheInfo(
helper->Start();
}
-void AppCacheService::DeleteAppCacheGroup(const GURL& manifest_url,
- net::OldCompletionCallback* callback) {
+void AppCacheService::DeleteAppCacheGroup(
+ const GURL& manifest_url,
+ const net::CompletionCallback& callback) {
DeleteHelper* helper = new DeleteHelper(this, manifest_url, callback);
helper->Start();
}
diff --git a/webkit/appcache/appcache_service.h b/webkit/appcache/appcache_service.h
index 00e6795..dade754 100644
--- a/webkit/appcache/appcache_service.h
+++ b/webkit/appcache/appcache_service.h
@@ -86,7 +86,7 @@ class APPCACHE_EXPORT AppCacheService {
// subresource loads for pages associated with a deleted group
// will fail. This method always completes asynchronously.
void DeleteAppCacheGroup(const GURL& manifest_url,
- net::OldCompletionCallback* callback);
+ const net::CompletionCallback& callback);
// Deletes all appcaches for the origin, 'callback' is invoked upon
// completion. This method always completes asynchronously.
diff --git a/webkit/appcache/view_appcache_internals_job.cc b/webkit/appcache/view_appcache_internals_job.cc
index 6ddb5db..025139b 100644
--- a/webkit/appcache/view_appcache_internals_job.cc
+++ b/webkit/appcache/view_appcache_internals_job.cc
@@ -8,6 +8,7 @@
#include "webkit/appcache/view_appcache_internals_job.h"
#include "base/base64.h"
+#include "base/bind.h"
#include "base/format_macros.h"
#include "base/i18n/time_formatting.h"
#include "base/logging.h"
@@ -400,31 +401,27 @@ class RemoveAppCacheJob : public RedirectToMainPageJob {
net::URLRequest* request, AppCacheService* service,
const GURL& manifest_url)
: RedirectToMainPageJob(request, service),
- manifest_url_(manifest_url) {}
+ manifest_url_(manifest_url),
+ ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {
+ }
virtual void Start() {
DCHECK(request_);
- delete_appcache_callback_ =
- new net::CancelableOldCompletionCallback<RemoveAppCacheJob>(
- this, &RemoveAppCacheJob::OnDeleteAppCacheComplete);
+
appcache_service_->DeleteAppCacheGroup(
- manifest_url_, delete_appcache_callback_);
+ manifest_url_,base::Bind(&RemoveAppCacheJob::OnDeleteAppCacheComplete,
+ weak_factory_.GetWeakPtr()));
}
private:
- virtual ~RemoveAppCacheJob() {
- if (delete_appcache_callback_)
- delete_appcache_callback_.release()->Cancel();
- }
+ virtual ~RemoveAppCacheJob() {}
void OnDeleteAppCacheComplete(int rv) {
- delete_appcache_callback_ = NULL;
StartAsync(); // Causes the base class to redirect.
}
GURL manifest_url_;
- scoped_refptr<net::CancelableOldCompletionCallback<RemoveAppCacheJob> >
- delete_appcache_callback_;
+ base::WeakPtrFactory<RemoveAppCacheJob> weak_factory_;
};