Commit 8b21196a authored by jhawkins@chromium.org's avatar jhawkins@chromium.org

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
parent 18d4f55a
...@@ -63,14 +63,16 @@ void BrowsingDataAppCacheHelper::DeleteAppCacheGroup( ...@@ -63,14 +63,16 @@ void BrowsingDataAppCacheHelper::DeleteAppCacheGroup(
manifest_url)); manifest_url));
return; return;
} }
appcache_service_->DeleteAppCacheGroup(manifest_url, NULL);
appcache_service_->DeleteAppCacheGroup(
manifest_url, net::CompletionCallback());
} }
BrowsingDataAppCacheHelper::~BrowsingDataAppCacheHelper() {} BrowsingDataAppCacheHelper::~BrowsingDataAppCacheHelper() {}
void BrowsingDataAppCacheHelper::OnFetchComplete(int rv) { void BrowsingDataAppCacheHelper::OnFetchComplete(int rv) {
if (BrowserThread::CurrentlyOn(BrowserThread::IO)) { 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. // considered browsing data.
typedef std::map<GURL, appcache::AppCacheInfoVector> InfoByOrigin; typedef std::map<GURL, appcache::AppCacheInfoVector> InfoByOrigin;
InfoByOrigin& origin_map = info_collection_->infos_by_origin; InfoByOrigin& origin_map = info_collection_->infos_by_origin;
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include "base/logging.h" #include "base/logging.h"
#include "base/message_loop.h" #include "base/message_loop.h"
#include "base/stl_util.h" #include "base/stl_util.h"
#include "net/base/completion_callback.h"
#include "net/base/io_buffer.h" #include "net/base/io_buffer.h"
#include "webkit/appcache/appcache.h" #include "webkit/appcache/appcache.h"
#include "webkit/appcache/appcache_backend_impl.h" #include "webkit/appcache/appcache_backend_impl.h"
...@@ -94,7 +95,7 @@ class AppCacheService::AsyncHelper ...@@ -94,7 +95,7 @@ class AppCacheService::AsyncHelper
protected: protected:
void CallCallback(int rv) { void CallCallback(int rv) {
if (callback_) { if (callback_) {
// Defer to guarentee async completion. // Defer to guarantee async completion.
MessageLoop::current()->PostTask( MessageLoop::current()->PostTask(
FROM_HERE, base::Bind(&DeferredCallCallback, callback_, rv)); FROM_HERE, base::Bind(&DeferredCallCallback, callback_, rv));
} }
...@@ -143,7 +144,7 @@ class AppCacheService::CanHandleOfflineHelper : NewAsyncHelper { ...@@ -143,7 +144,7 @@ class AppCacheService::CanHandleOfflineHelper : NewAsyncHelper {
} }
private: private:
// AppCacheStorage::Delegate override // AppCacheStorage::Delegate implementation.
virtual void OnMainResponseFound( virtual void OnMainResponseFound(
const GURL& url, const AppCacheEntry& entry, const GURL& url, const AppCacheEntry& entry,
const GURL& fallback_url, const AppCacheEntry& fallback_entry, const GURL& fallback_url, const AppCacheEntry& fallback_entry,
...@@ -166,12 +167,12 @@ void AppCacheService::CanHandleOfflineHelper::OnMainResponseFound( ...@@ -166,12 +167,12 @@ void AppCacheService::CanHandleOfflineHelper::OnMainResponseFound(
// DeleteHelper ------- // DeleteHelper -------
class AppCacheService::DeleteHelper : public AsyncHelper { class AppCacheService::DeleteHelper : public NewAsyncHelper {
public: public:
DeleteHelper( DeleteHelper(
AppCacheService* service, const GURL& manifest_url, AppCacheService* service, const GURL& manifest_url,
net::OldCompletionCallback* callback) const net::CompletionCallback& callback)
: AsyncHelper(service, callback), manifest_url_(manifest_url) { : NewAsyncHelper(service, callback), manifest_url_(manifest_url) {
} }
virtual void Start() { virtual void Start() {
...@@ -179,7 +180,7 @@ class AppCacheService::DeleteHelper : public AsyncHelper { ...@@ -179,7 +180,7 @@ class AppCacheService::DeleteHelper : public AsyncHelper {
} }
private: private:
// AppCacheStorage::Delegate methods // AppCacheStorage::Delegate implementation.
virtual void OnGroupLoaded( virtual void OnGroupLoaded(
appcache::AppCacheGroup* group, const GURL& manifest_url); appcache::AppCacheGroup* group, const GURL& manifest_url);
virtual void OnGroupMadeObsolete( virtual void OnGroupMadeObsolete(
...@@ -224,7 +225,7 @@ class AppCacheService::DeleteOriginHelper : public AsyncHelper { ...@@ -224,7 +225,7 @@ class AppCacheService::DeleteOriginHelper : public AsyncHelper {
} }
private: private:
// AppCacheStorage::Delegate methods // AppCacheStorage::Delegate implementation.
virtual void OnAllInfo(AppCacheInfoCollection* collection); virtual void OnAllInfo(AppCacheInfoCollection* collection);
virtual void OnGroupLoaded( virtual void OnGroupLoaded(
appcache::AppCacheGroup* group, const GURL& manifest_url); appcache::AppCacheGroup* group, const GURL& manifest_url);
...@@ -312,7 +313,7 @@ class AppCacheService::GetInfoHelper : NewAsyncHelper { ...@@ -312,7 +313,7 @@ class AppCacheService::GetInfoHelper : NewAsyncHelper {
} }
private: private:
// AppCacheStorage::Delegate override // AppCacheStorage::Delegate implementation.
virtual void OnAllInfo(AppCacheInfoCollection* collection); virtual void OnAllInfo(AppCacheInfoCollection* collection);
scoped_refptr<AppCacheInfoCollection> collection_; scoped_refptr<AppCacheInfoCollection> collection_;
...@@ -401,7 +402,7 @@ void AppCacheService::CheckResponseHelper::OnGroupLoaded( ...@@ -401,7 +402,7 @@ void AppCacheService::CheckResponseHelper::OnGroupLoaded(
if (cache_->cache_id() == cache_id_) { if (cache_->cache_id() == cache_id_) {
AppCacheHistograms::CountCheckResponseResult( AppCacheHistograms::CountCheckResponseResult(
AppCacheHistograms::ENTRY_NOT_FOUND); AppCacheHistograms::ENTRY_NOT_FOUND);
service_->DeleteAppCacheGroup(manifest_url_, NULL); service_->DeleteAppCacheGroup(manifest_url_, net::CompletionCallback());
} else { } else {
AppCacheHistograms::CountCheckResponseResult( AppCacheHistograms::CountCheckResponseResult(
AppCacheHistograms::RESPONSE_OUT_OF_DATE); AppCacheHistograms::RESPONSE_OUT_OF_DATE);
...@@ -422,7 +423,7 @@ void AppCacheService::CheckResponseHelper::OnReadInfoComplete(int result) { ...@@ -422,7 +423,7 @@ void AppCacheService::CheckResponseHelper::OnReadInfoComplete(int result) {
if (result < 0) { if (result < 0) {
AppCacheHistograms::CountCheckResponseResult( AppCacheHistograms::CountCheckResponseResult(
AppCacheHistograms::READ_HEADERS_ERROR); AppCacheHistograms::READ_HEADERS_ERROR);
service_->DeleteAppCacheGroup(manifest_url_, NULL); service_->DeleteAppCacheGroup(manifest_url_, net::CompletionCallback());
delete this; delete this;
return; return;
} }
...@@ -454,7 +455,7 @@ void AppCacheService::CheckResponseHelper::OnReadDataComplete(int result) { ...@@ -454,7 +455,7 @@ void AppCacheService::CheckResponseHelper::OnReadDataComplete(int result) {
AppCacheHistograms::CountCheckResponseResult(check_result); AppCacheHistograms::CountCheckResponseResult(check_result);
if (check_result != AppCacheHistograms::RESPONSE_OK) if (check_result != AppCacheHistograms::RESPONSE_OK)
service_->DeleteAppCacheGroup(manifest_url_, NULL); service_->DeleteAppCacheGroup(manifest_url_, net::CompletionCallback());
delete this; delete this;
} }
...@@ -515,8 +516,9 @@ void AppCacheService::GetAllAppCacheInfo( ...@@ -515,8 +516,9 @@ void AppCacheService::GetAllAppCacheInfo(
helper->Start(); helper->Start();
} }
void AppCacheService::DeleteAppCacheGroup(const GURL& manifest_url, void AppCacheService::DeleteAppCacheGroup(
net::OldCompletionCallback* callback) { const GURL& manifest_url,
const net::CompletionCallback& callback) {
DeleteHelper* helper = new DeleteHelper(this, manifest_url, callback); DeleteHelper* helper = new DeleteHelper(this, manifest_url, callback);
helper->Start(); helper->Start();
} }
......
...@@ -86,7 +86,7 @@ class APPCACHE_EXPORT AppCacheService { ...@@ -86,7 +86,7 @@ class APPCACHE_EXPORT AppCacheService {
// subresource loads for pages associated with a deleted group // subresource loads for pages associated with a deleted group
// will fail. This method always completes asynchronously. // will fail. This method always completes asynchronously.
void DeleteAppCacheGroup(const GURL& manifest_url, void DeleteAppCacheGroup(const GURL& manifest_url,
net::OldCompletionCallback* callback); const net::CompletionCallback& callback);
// Deletes all appcaches for the origin, 'callback' is invoked upon // Deletes all appcaches for the origin, 'callback' is invoked upon
// completion. This method always completes asynchronously. // completion. This method always completes asynchronously.
......
...@@ -8,6 +8,7 @@ ...@@ -8,6 +8,7 @@
#include "webkit/appcache/view_appcache_internals_job.h" #include "webkit/appcache/view_appcache_internals_job.h"
#include "base/base64.h" #include "base/base64.h"
#include "base/bind.h"
#include "base/format_macros.h" #include "base/format_macros.h"
#include "base/i18n/time_formatting.h" #include "base/i18n/time_formatting.h"
#include "base/logging.h" #include "base/logging.h"
...@@ -400,31 +401,27 @@ class RemoveAppCacheJob : public RedirectToMainPageJob { ...@@ -400,31 +401,27 @@ class RemoveAppCacheJob : public RedirectToMainPageJob {
net::URLRequest* request, AppCacheService* service, net::URLRequest* request, AppCacheService* service,
const GURL& manifest_url) const GURL& manifest_url)
: RedirectToMainPageJob(request, service), : RedirectToMainPageJob(request, service),
manifest_url_(manifest_url) {} manifest_url_(manifest_url),
ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)) {
}
virtual void Start() { virtual void Start() {
DCHECK(request_); DCHECK(request_);
delete_appcache_callback_ =
new net::CancelableOldCompletionCallback<RemoveAppCacheJob>(
this, &RemoveAppCacheJob::OnDeleteAppCacheComplete);
appcache_service_->DeleteAppCacheGroup( appcache_service_->DeleteAppCacheGroup(
manifest_url_, delete_appcache_callback_); manifest_url_,base::Bind(&RemoveAppCacheJob::OnDeleteAppCacheComplete,
weak_factory_.GetWeakPtr()));
} }
private: private:
virtual ~RemoveAppCacheJob() { virtual ~RemoveAppCacheJob() {}
if (delete_appcache_callback_)
delete_appcache_callback_.release()->Cancel();
}
void OnDeleteAppCacheComplete(int rv) { void OnDeleteAppCacheComplete(int rv) {
delete_appcache_callback_ = NULL;
StartAsync(); // Causes the base class to redirect. StartAsync(); // Causes the base class to redirect.
} }
GURL manifest_url_; GURL manifest_url_;
scoped_refptr<net::CancelableOldCompletionCallback<RemoveAppCacheJob> > base::WeakPtrFactory<RemoveAppCacheJob> weak_factory_;
delete_appcache_callback_;
}; };
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment