Index: webkit/blob/view_blob_internals_job.cc |
diff --git a/webkit/blob/view_blob_internals_job.cc b/webkit/blob/view_blob_internals_job.cc |
index 6d6955b6461eeacda2db67445a9774226df485bb..49798b46450ceffe317334c091d4b6f5c5c32358 100644 |
--- a/webkit/blob/view_blob_internals_job.cc |
+++ b/webkit/blob/view_blob_internals_job.cc |
@@ -4,6 +4,7 @@ |
#include "webkit/blob/view_blob_internals_job.h" |
+#include "base/compiler_specific.h" |
#include "base/logging.h" |
#include "base/format_macros.h" |
#include "base/i18n/number_formatting.h" |
@@ -102,15 +103,17 @@ namespace webkit_blob { |
ViewBlobInternalsJob::ViewBlobInternalsJob( |
net::URLRequest* request, BlobStorageController* blob_storage_controller) |
: URLRequestSimpleJob(request), |
- blob_storage_controller_(blob_storage_controller) { |
+ blob_storage_controller_(blob_storage_controller), |
+ ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)) { |
} |
ViewBlobInternalsJob::~ViewBlobInternalsJob() { |
} |
void ViewBlobInternalsJob::Start() { |
- MessageLoop::current()->PostTask(FROM_HERE, NewRunnableMethod( |
- this, &ViewBlobInternalsJob::DoWorkAsync)); |
+ MessageLoop::current()->PostTask( |
+ FROM_HERE, |
+ method_factory_.NewRunnableMethod(&ViewBlobInternalsJob::DoWorkAsync)); |
} |
bool ViewBlobInternalsJob::IsRedirectResponse(GURL* location, |
@@ -126,6 +129,11 @@ bool ViewBlobInternalsJob::IsRedirectResponse(GURL* location, |
return false; |
} |
+void ViewBlobInternalsJob::Kill() { |
+ URLRequestSimpleJob::Kill(); |
+ method_factory_.RevokeAll(); |
+} |
+ |
void ViewBlobInternalsJob::DoWorkAsync() { |
if (request_->url().has_query() && |
StartsWithASCII(request_->url().query(), "remove=", true)) { |