| Index: webkit/fileapi/file_system_url_request_job.cc
|
| diff --git a/webkit/fileapi/file_system_url_request_job.cc b/webkit/fileapi/file_system_url_request_job.cc
|
| index 34fec217c7057fbfdadca4b958add24ca597d6b8..30966fbda6d8e6fdbe0842b9bf6d553f8a9516d6 100644
|
| --- a/webkit/fileapi/file_system_url_request_job.cc
|
| +++ b/webkit/fileapi/file_system_url_request_job.cc
|
| @@ -4,6 +4,7 @@
|
|
|
| #include "webkit/fileapi/file_system_url_request_job.h"
|
|
|
| +#include "base/bind.h"
|
| #include "base/compiler_specific.h"
|
| #include "base/file_path.h"
|
| #include "base/file_util_proxy.h"
|
| @@ -105,8 +106,7 @@ FileSystemURLRequestJob::FileSystemURLRequestJob(
|
| : URLRequestJob(request),
|
| file_system_context_(file_system_context),
|
| file_thread_proxy_(file_thread_proxy),
|
| - ALLOW_THIS_IN_INITIALIZER_LIST(method_factory_(this)),
|
| - ALLOW_THIS_IN_INITIALIZER_LIST(callback_factory_(this)),
|
| + ALLOW_THIS_IN_INITIALIZER_LIST(weak_factory_(this)),
|
| ALLOW_THIS_IN_INITIALIZER_LIST(
|
| io_callback_(this, &FileSystemURLRequestJob::DidRead)),
|
| stream_(NULL),
|
| @@ -122,9 +122,10 @@ FileSystemURLRequestJob::~FileSystemURLRequestJob() {
|
| }
|
|
|
| void FileSystemURLRequestJob::Start() {
|
| - MessageLoop::current()->PostTask(FROM_HERE,
|
| - method_factory_.NewRunnableMethod(
|
| - &FileSystemURLRequestJob::StartAsync));
|
| + MessageLoop::current()->PostTask(
|
| + FROM_HERE,
|
| + base::Bind(&FileSystemURLRequestJob::StartAsync,
|
| + weak_factory_.GetWeakPtr()));
|
| }
|
|
|
| void FileSystemURLRequestJob::Kill() {
|
| @@ -133,8 +134,7 @@ void FileSystemURLRequestJob::Kill() {
|
| stream_.reset(NULL);
|
| }
|
| URLRequestJob::Kill();
|
| - method_factory_.RevokeAll();
|
| - callback_factory_.RevokeAll();
|
| + weak_factory_.InvalidateWeakPtrs();
|
| }
|
|
|
| bool FileSystemURLRequestJob::ReadRawData(net::IOBuffer* dest, int dest_size,
|
| @@ -238,7 +238,8 @@ void FileSystemURLRequestJob::DidGetMetadata(
|
| if (!is_directory_) {
|
| base::FileUtilProxy::CreateOrOpen(
|
| file_thread_proxy_, platform_path, kFileFlags,
|
| - callback_factory_.NewCallback(&FileSystemURLRequestJob::DidOpen));
|
| + base::Bind(&FileSystemURLRequestJob::DidOpen,
|
| + weak_factory_.GetWeakPtr()));
|
| } else {
|
| NotifyHeadersComplete();
|
| }
|
|
|