diff options
author | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-02 02:57:25 +0000 |
---|---|---|
committer | jhawkins@chromium.org <jhawkins@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-12-02 02:57:25 +0000 |
commit | 8b21196a3d2205ae69cd3c155587168809589e72 (patch) | |
tree | 94c8d567aab19eefd6c3b167151c3382776f4009 | |
parent | 18d4f55aea3cea92fafe2a457615fef7b8becab6 (diff) | |
download | chromium_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.cc | 6 | ||||
-rw-r--r-- | webkit/appcache/appcache_service.cc | 28 | ||||
-rw-r--r-- | webkit/appcache/appcache_service.h | 2 | ||||
-rw-r--r-- | webkit/appcache/view_appcache_internals_job.cc | 21 |
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_; }; |