diff options
Diffstat (limited to 'webkit/blob/view_blob_internals_job.cc')
-rw-r--r-- | webkit/blob/view_blob_internals_job.cc | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/webkit/blob/view_blob_internals_job.cc b/webkit/blob/view_blob_internals_job.cc index 6d6955b..49798b4 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)) { |