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(
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;
......
......@@ -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();
}
......
......@@ -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.
......
......@@ -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_;
};
......
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