summaryrefslogtreecommitdiffstats
path: root/storage
diff options
context:
space:
mode:
authormmenke <mmenke@chromium.org>2015-12-08 15:20:42 -0800
committerCommit bot <commit-bot@chromium.org>2015-12-08 23:21:33 +0000
commited0498b7dcbec9d443689b66c546d8933a244f77 (patch)
treed8dca2c73181540fd5c32f8e434660764a68af95 /storage
parent6c6f81d3d178b28111f9df4ad3ff300ab577b143 (diff)
downloadchromium_src-ed0498b7dcbec9d443689b66c546d8933a244f77.zip
chromium_src-ed0498b7dcbec9d443689b66c546d8933a244f77.tar.gz
chromium_src-ed0498b7dcbec9d443689b66c546d8933a244f77.tar.bz2
Remove reference counting from URLRequestJob.
The URLRequest now has control over its lifetime, so undead URLRequestJobs can't come back to haunt us after the request has been destroyed. Longer term, hopefully we'll be able to delete URLRequestJobs on cancellation. BUG=490668 TBR=thakis@chromium.org Review URL: https://codereview.chromium.org/1457043005 Cr-Commit-Position: refs/heads/master@{#363819}
Diffstat (limited to 'storage')
-rw-r--r--storage/browser/fileapi/file_system_dir_url_request_job.cc7
-rw-r--r--storage/browser/fileapi/file_system_dir_url_request_job.h4
2 files changed, 6 insertions, 5 deletions
diff --git a/storage/browser/fileapi/file_system_dir_url_request_job.cc b/storage/browser/fileapi/file_system_dir_url_request_job.cc
index c053773..c99454d 100644
--- a/storage/browser/fileapi/file_system_dir_url_request_job.cc
+++ b/storage/browser/fileapi/file_system_dir_url_request_job.cc
@@ -100,8 +100,8 @@ void FileSystemDirURLRequestJob::StartAsync() {
return;
}
file_system_context_->operation_runner()->ReadDirectory(
- url_,
- base::Bind(&FileSystemDirURLRequestJob::DidReadDirectory, this));
+ url_, base::Bind(&FileSystemDirURLRequestJob::DidReadDirectory,
+ weak_factory_.GetWeakPtr()));
}
void FileSystemDirURLRequestJob::DidAttemptAutoMount(base::File::Error result) {
@@ -159,7 +159,8 @@ void FileSystemDirURLRequestJob::GetMetadata(size_t index) {
file_system_context_->operation_runner()->GetMetadata(
url, FileSystemOperation::GET_METADATA_FIELD_SIZE |
FileSystemOperation::GET_METADATA_FIELD_LAST_MODIFIED,
- base::Bind(&FileSystemDirURLRequestJob::DidGetMetadata, this, index));
+ base::Bind(&FileSystemDirURLRequestJob::DidGetMetadata,
+ weak_factory_.GetWeakPtr(), index));
}
void FileSystemDirURLRequestJob::DidGetMetadata(
diff --git a/storage/browser/fileapi/file_system_dir_url_request_job.h b/storage/browser/fileapi/file_system_dir_url_request_job.h
index 93fdd1f..57b6904 100644
--- a/storage/browser/fileapi/file_system_dir_url_request_job.h
+++ b/storage/browser/fileapi/file_system_dir_url_request_job.h
@@ -29,6 +29,8 @@ class STORAGE_EXPORT FileSystemDirURLRequestJob : public net::URLRequestJob {
const std::string& storage_domain,
FileSystemContext* file_system_context);
+ ~FileSystemDirURLRequestJob() override;
+
// URLRequestJob methods:
void Start() override;
void Kill() override;
@@ -43,8 +45,6 @@ class STORAGE_EXPORT FileSystemDirURLRequestJob : public net::URLRequestJob {
private:
class CallbackDispatcher;
- ~FileSystemDirURLRequestJob() override;
-
void StartAsync();
void DidAttemptAutoMount(base::File::Error result);
void DidReadDirectory(base::File::Error result,