| Index: webkit/blob/blob_url_request_job.cc
|
| diff --git a/webkit/blob/blob_url_request_job.cc b/webkit/blob/blob_url_request_job.cc
|
| index a02096f56ec579a2ff5fd726279c3820b226a77e..d70536a26443295b136daf1da4d0a2d70acacac5 100644
|
| --- a/webkit/blob/blob_url_request_job.cc
|
| +++ b/webkit/blob/blob_url_request_job.cc
|
| @@ -52,7 +52,8 @@ BlobURLRequestJob::BlobURLRequestJob(
|
| BlobData* blob_data,
|
| base::MessageLoopProxy* file_thread_proxy)
|
| : net::URLRequestJob(request),
|
| - callback_factory_(ALLOW_THIS_IN_INITIALIZER_LIST(this)),
|
| + ALLOW_THIS_IN_INITIALIZER_LIST(callback_factory_(this)),
|
| + ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)),
|
| blob_data_(blob_data),
|
| file_thread_proxy_(file_thread_proxy),
|
| item_index_(0),
|
| @@ -111,6 +112,7 @@ void BlobURLRequestJob::Kill() {
|
|
|
| net::URLRequestJob::Kill();
|
| callback_factory_.RevokeAll();
|
| + weak_factory_.InvalidateWeakPtrs();
|
| method_factory_.RevokeAll();
|
| }
|
|
|
| @@ -316,7 +318,7 @@ bool BlobURLRequestJob::DispatchReadFile(const BlobData::Item& item) {
|
|
|
| base::FileUtilProxy::CreateOrOpen(
|
| file_thread_proxy_, item.file_path(), kFileOpenFlags,
|
| - callback_factory_.NewCallback(&BlobURLRequestJob::DidOpen));
|
| + base::Bind(&BlobURLRequestJob::DidOpen, weak_factory_.GetWeakPtr()));
|
| SetStatus(net::URLRequestStatus(net::URLRequestStatus::IO_PENDING, 0));
|
| return false;
|
| }
|
|
|