| Index: webkit/appcache/view_appcache_internals_job.cc
|
| diff --git a/webkit/appcache/view_appcache_internals_job.cc b/webkit/appcache/view_appcache_internals_job.cc
|
| index 6ddb5db072b557f1c7dfd11ec66d6b9cda0c939d..025139b1ffac1aac6e64811834941e37ed0229d4 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_;
|
| };
|
|
|
|
|
|
|