summaryrefslogtreecommitdiffstats
path: root/webkit
diff options
context:
space:
mode:
authornhiroki@chromium.org <nhiroki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-10 09:17:05 +0000
committernhiroki@chromium.org <nhiroki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-10 09:17:05 +0000
commit3ee9eb00a07038024d387390a640bb1f0ab51da6 (patch)
treeea6c3a53b10d34d187eba9b96f6554ca0f2eb1b2 /webkit
parent69df6ccb26f6db8f4470e70c8551c8a149b05330 (diff)
downloadchromium_src-3ee9eb00a07038024d387390a640bb1f0ab51da6.zip
chromium_src-3ee9eb00a07038024d387390a640bb1f0ab51da6.tar.gz
chromium_src-3ee9eb00a07038024d387390a640bb1f0ab51da6.tar.bz2
Refactor FileSystemMountPointProvider::CreateFileStream{Reader,Writer}
FileSystemMountPointProvider::CreateFileStream{Reader,Writer} should return scoped_ptr instead of raw pointer so that the caller can make sure it obtains the ownership of the returned Reader/Writer. BUG=175934 TEST=should pass all existing tests Review URL: https://chromiumcodereview.appspot.com/13811013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@193354 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'webkit')
-rw-r--r--webkit/blob/blob_url_request_job.cc2
-rw-r--r--webkit/chromeos/fileapi/cros_mount_point_provider.cc21
-rw-r--r--webkit/chromeos/fileapi/cros_mount_point_provider.h4
-rw-r--r--webkit/fileapi/file_system_context.cc15
-rw-r--r--webkit/fileapi/file_system_context.h4
-rw-r--r--webkit/fileapi/file_system_mount_point_provider.h6
-rw-r--r--webkit/fileapi/file_system_url_request_job.cc7
-rw-r--r--webkit/fileapi/isolated_mount_point_provider.cc14
-rw-r--r--webkit/fileapi/isolated_mount_point_provider.h4
-rw-r--r--webkit/fileapi/sandbox_mount_point_provider.cc14
-rw-r--r--webkit/fileapi/sandbox_mount_point_provider.h4
-rw-r--r--webkit/fileapi/test_mount_point_provider.cc14
-rw-r--r--webkit/fileapi/test_mount_point_provider.h4
-rw-r--r--webkit/fileapi/upload_file_system_file_element_reader.cc4
14 files changed, 64 insertions, 53 deletions
diff --git a/webkit/blob/blob_url_request_job.cc b/webkit/blob/blob_url_request_job.cc
index 27892ad..6853bb0 100644
--- a/webkit/blob/blob_url_request_job.cc
+++ b/webkit/blob/blob_url_request_job.cc
@@ -595,7 +595,7 @@ void BlobURLRequestJob::CreateFileStreamReader(size_t index,
reader = file_system_context_->CreateFileStreamReader(
fileapi::FileSystemURL(file_system_context_->CrackURL(item.url())),
item.offset() + additional_offset,
- item.expected_modification_time());
+ item.expected_modification_time()).release();
break;
default:
NOTREACHED();
diff --git a/webkit/chromeos/fileapi/cros_mount_point_provider.cc b/webkit/chromeos/fileapi/cros_mount_point_provider.cc
index 550bb61..11cf6f7 100644
--- a/webkit/chromeos/fileapi/cros_mount_point_provider.cc
+++ b/webkit/chromeos/fileapi/cros_mount_point_provider.cc
@@ -279,7 +279,8 @@ fileapi::FileSystemOperation* CrosMountPointProvider::CreateFileSystemOperation(
operation_context.Pass());
}
-webkit_blob::FileStreamReader* CrosMountPointProvider::CreateFileStreamReader(
+scoped_ptr<webkit_blob::FileStreamReader>
+CrosMountPointProvider::CreateFileStreamReader(
const fileapi::FileSystemURL& url,
int64 offset,
const base::Time& expected_modification_time,
@@ -287,11 +288,13 @@ webkit_blob::FileStreamReader* CrosMountPointProvider::CreateFileStreamReader(
// For now we return a generic Reader implementation which utilizes
// CreateSnapshotFile internally (i.e. will download everything first).
// TODO(satorux,zel): implement more efficient reader for remote cases.
- return new fileapi::FileSystemFileStreamReader(
- context, url, offset, expected_modification_time);
+ return scoped_ptr<webkit_blob::FileStreamReader>(
+ new fileapi::FileSystemFileStreamReader(
+ context, url, offset, expected_modification_time));
}
-fileapi::FileStreamWriter* CrosMountPointProvider::CreateFileStreamWriter(
+scoped_ptr<fileapi::FileStreamWriter>
+CrosMountPointProvider::CreateFileStreamWriter(
const fileapi::FileSystemURL& url,
int64 offset,
fileapi::FileSystemContext* context) const {
@@ -301,15 +304,17 @@ fileapi::FileStreamWriter* CrosMountPointProvider::CreateFileStreamWriter(
fileapi::RemoteFileSystemProxyInterface* remote_proxy =
GetRemoteProxy(url.filesystem_id());
if (!remote_proxy)
- return NULL;
- return new fileapi::RemoteFileStreamWriter(remote_proxy, url, offset);
+ return scoped_ptr<fileapi::FileStreamWriter>();
+ return scoped_ptr<fileapi::FileStreamWriter>(
+ new fileapi::RemoteFileStreamWriter(remote_proxy, url, offset));
}
if (url.type() == fileapi::kFileSystemTypeRestrictedNativeLocal)
- return NULL;
+ return scoped_ptr<fileapi::FileStreamWriter>();
DCHECK(url.type() == fileapi::kFileSystemTypeNativeLocal);
- return new fileapi::LocalFileStreamWriter(url.path(), offset);
+ return scoped_ptr<fileapi::FileStreamWriter>(
+ new fileapi::LocalFileStreamWriter(url.path(), offset));
}
bool CrosMountPointProvider::GetVirtualPath(
diff --git a/webkit/chromeos/fileapi/cros_mount_point_provider.h b/webkit/chromeos/fileapi/cros_mount_point_provider.h
index bf27785..7f83280 100644
--- a/webkit/chromeos/fileapi/cros_mount_point_provider.h
+++ b/webkit/chromeos/fileapi/cros_mount_point_provider.h
@@ -78,12 +78,12 @@ class WEBKIT_STORAGE_EXPORT CrosMountPointProvider
const fileapi::FileSystemURL& url,
fileapi::FileSystemContext* context,
base::PlatformFileError* error_code) const OVERRIDE;
- virtual webkit_blob::FileStreamReader* CreateFileStreamReader(
+ virtual scoped_ptr<webkit_blob::FileStreamReader> CreateFileStreamReader(
const fileapi::FileSystemURL& path,
int64 offset,
const base::Time& expected_modification_time,
fileapi::FileSystemContext* context) const OVERRIDE;
- virtual fileapi::FileStreamWriter* CreateFileStreamWriter(
+ virtual scoped_ptr<fileapi::FileStreamWriter> CreateFileStreamWriter(
const fileapi::FileSystemURL& url,
int64 offset,
fileapi::FileSystemContext* context) const OVERRIDE;
diff --git a/webkit/fileapi/file_system_context.cc b/webkit/fileapi/file_system_context.cc
index d0cefc8..72558d9 100644
--- a/webkit/fileapi/file_system_context.cc
+++ b/webkit/fileapi/file_system_context.cc
@@ -8,8 +8,10 @@
#include "base/stl_util.h"
#include "base/single_thread_task_runner.h"
#include "googleurl/src/gurl.h"
+#include "webkit/blob/file_stream_reader.h"
#include "webkit/fileapi/copy_or_move_file_validator.h"
#include "webkit/fileapi/external_mount_points.h"
+#include "webkit/fileapi/file_stream_writer.h"
#include "webkit/fileapi/file_system_file_util.h"
#include "webkit/fileapi/file_system_operation.h"
#include "webkit/fileapi/file_system_options.h"
@@ -291,29 +293,30 @@ FileSystemOperation* FileSystemContext::CreateFileSystemOperation(
return operation;
}
-webkit_blob::FileStreamReader* FileSystemContext::CreateFileStreamReader(
+scoped_ptr<webkit_blob::FileStreamReader>
+FileSystemContext::CreateFileStreamReader(
const FileSystemURL& url,
int64 offset,
const base::Time& expected_modification_time) {
if (!url.is_valid())
- return NULL;
+ return scoped_ptr<webkit_blob::FileStreamReader>();
FileSystemMountPointProvider* mount_point_provider =
GetMountPointProvider(url.type());
if (!mount_point_provider)
- return NULL;
+ return scoped_ptr<webkit_blob::FileStreamReader>();
return mount_point_provider->CreateFileStreamReader(
url, offset, expected_modification_time, this);
}
-FileStreamWriter* FileSystemContext::CreateFileStreamWriter(
+scoped_ptr<FileStreamWriter> FileSystemContext::CreateFileStreamWriter(
const FileSystemURL& url,
int64 offset) {
if (!url.is_valid())
- return NULL;
+ return scoped_ptr<FileStreamWriter>();
FileSystemMountPointProvider* mount_point_provider =
GetMountPointProvider(url.type());
if (!mount_point_provider)
- return NULL;
+ return scoped_ptr<FileStreamWriter>();
return mount_point_provider->CreateFileStreamWriter(url, offset, this);
}
diff --git a/webkit/fileapi/file_system_context.h b/webkit/fileapi/file_system_context.h
index 2286407..0225a21 100644
--- a/webkit/fileapi/file_system_context.h
+++ b/webkit/fileapi/file_system_context.h
@@ -181,14 +181,14 @@ class WEBKIT_STORAGE_EXPORT FileSystemContext
// MountPointProvider for the URL and call the provider's CreateFileReader.
// The resolved MountPointProvider could perform further specialization
// depending on the filesystem type pointed by the |url|.
- webkit_blob::FileStreamReader* CreateFileStreamReader(
+ scoped_ptr<webkit_blob::FileStreamReader> CreateFileStreamReader(
const FileSystemURL& url,
int64 offset,
const base::Time& expected_modification_time);
// Creates new FileStreamWriter instance to write into a file pointed by
// |url| from |offset|.
- FileStreamWriter* CreateFileStreamWriter(
+ scoped_ptr<FileStreamWriter> CreateFileStreamWriter(
const FileSystemURL& url,
int64 offset);
diff --git a/webkit/fileapi/file_system_mount_point_provider.h b/webkit/fileapi/file_system_mount_point_provider.h
index 066c2ab..9ca3997 100644
--- a/webkit/fileapi/file_system_mount_point_provider.h
+++ b/webkit/fileapi/file_system_mount_point_provider.h
@@ -104,10 +104,9 @@ class WEBKIT_STORAGE_EXPORT FileSystemMountPointProvider {
// file's actual modification time to see if the file has been modified, and
// if it does any succeeding read operations should fail with
// ERR_UPLOAD_FILE_CHANGED error.
- // The returned object must be owned and managed by the caller.
// This method itself does *not* check if the given path exists and is a
// regular file.
- virtual webkit_blob::FileStreamReader* CreateFileStreamReader(
+ virtual scoped_ptr<webkit_blob::FileStreamReader> CreateFileStreamReader(
const FileSystemURL& url,
int64 offset,
const base::Time& expected_modification_time,
@@ -115,10 +114,9 @@ class WEBKIT_STORAGE_EXPORT FileSystemMountPointProvider {
// Creates a new file stream writer for a given filesystem URL |url| with an
// offset |offset|.
- // The returned object must be owned and managed by the caller.
// This method itself does *not* check if the given path exists and is a
// regular file.
- virtual FileStreamWriter* CreateFileStreamWriter(
+ virtual scoped_ptr<FileStreamWriter> CreateFileStreamWriter(
const FileSystemURL& url,
int64 offset,
FileSystemContext* context) const = 0;
diff --git a/webkit/fileapi/file_system_url_request_job.cc b/webkit/fileapi/file_system_url_request_job.cc
index afa6e37..f6e1f9b 100644
--- a/webkit/fileapi/file_system_url_request_job.cc
+++ b/webkit/fileapi/file_system_url_request_job.cc
@@ -202,11 +202,8 @@ void FileSystemURLRequestJob::DidGetMetadata(
DCHECK_GE(remaining_bytes_, 0);
DCHECK(!reader_.get());
- reader_.reset(
- file_system_context_->CreateFileStreamReader(
- url_,
- byte_range_.first_byte_position(),
- base::Time()));
+ reader_ = file_system_context_->CreateFileStreamReader(
+ url_, byte_range_.first_byte_position(), base::Time());
set_expected_content_size(remaining_bytes_);
response_info_.reset(new net::HttpResponseInfo());
diff --git a/webkit/fileapi/isolated_mount_point_provider.cc b/webkit/fileapi/isolated_mount_point_provider.cc
index c6590f8..3dc57ac 100644
--- a/webkit/fileapi/isolated_mount_point_provider.cc
+++ b/webkit/fileapi/isolated_mount_point_provider.cc
@@ -181,22 +181,24 @@ FileSystemOperation* IsolatedMountPointProvider::CreateFileSystemOperation(
return new LocalFileSystemOperation(context, operation_context.Pass());
}
-webkit_blob::FileStreamReader*
+scoped_ptr<webkit_blob::FileStreamReader>
IsolatedMountPointProvider::CreateFileStreamReader(
const FileSystemURL& url,
int64 offset,
const base::Time& expected_modification_time,
FileSystemContext* context) const {
- return new webkit_blob::LocalFileStreamReader(
- context->task_runners()->file_task_runner(),
- url.path(), offset, expected_modification_time);
+ return scoped_ptr<webkit_blob::FileStreamReader>(
+ new webkit_blob::LocalFileStreamReader(
+ context->task_runners()->file_task_runner(),
+ url.path(), offset, expected_modification_time));
}
-FileStreamWriter* IsolatedMountPointProvider::CreateFileStreamWriter(
+scoped_ptr<FileStreamWriter> IsolatedMountPointProvider::CreateFileStreamWriter(
const FileSystemURL& url,
int64 offset,
FileSystemContext* context) const {
- return new LocalFileStreamWriter(url.path(), offset);
+ return scoped_ptr<FileStreamWriter>(
+ new LocalFileStreamWriter(url.path(), offset));
}
FileSystemQuotaUtil* IsolatedMountPointProvider::GetQuotaUtil() {
diff --git a/webkit/fileapi/isolated_mount_point_provider.h b/webkit/fileapi/isolated_mount_point_provider.h
index 8562ee8..f2d8d39 100644
--- a/webkit/fileapi/isolated_mount_point_provider.h
+++ b/webkit/fileapi/isolated_mount_point_provider.h
@@ -48,12 +48,12 @@ class IsolatedMountPointProvider : public FileSystemMountPointProvider {
const FileSystemURL& url,
FileSystemContext* context,
base::PlatformFileError* error_code) const OVERRIDE;
- virtual webkit_blob::FileStreamReader* CreateFileStreamReader(
+ virtual scoped_ptr<webkit_blob::FileStreamReader> CreateFileStreamReader(
const FileSystemURL& url,
int64 offset,
const base::Time& expected_modification_time,
FileSystemContext* context) const OVERRIDE;
- virtual FileStreamWriter* CreateFileStreamWriter(
+ virtual scoped_ptr<FileStreamWriter> CreateFileStreamWriter(
const FileSystemURL& url,
int64 offset,
FileSystemContext* context) const OVERRIDE;
diff --git a/webkit/fileapi/sandbox_mount_point_provider.cc b/webkit/fileapi/sandbox_mount_point_provider.cc
index da1ea76..b5341e9 100644
--- a/webkit/fileapi/sandbox_mount_point_provider.cc
+++ b/webkit/fileapi/sandbox_mount_point_provider.cc
@@ -332,22 +332,24 @@ FileSystemOperation* SandboxMountPointProvider::CreateFileSystemOperation(
return new LocalFileSystemOperation(context, operation_context.Pass());
}
-webkit_blob::FileStreamReader*
+scoped_ptr<webkit_blob::FileStreamReader>
SandboxMountPointProvider::CreateFileStreamReader(
const FileSystemURL& url,
int64 offset,
const base::Time& expected_modification_time,
FileSystemContext* context) const {
- return new FileSystemFileStreamReader(
- context, url, offset, expected_modification_time);
+ return scoped_ptr<webkit_blob::FileStreamReader>(
+ new FileSystemFileStreamReader(
+ context, url, offset, expected_modification_time));
}
-fileapi::FileStreamWriter* SandboxMountPointProvider::CreateFileStreamWriter(
+scoped_ptr<fileapi::FileStreamWriter>
+SandboxMountPointProvider::CreateFileStreamWriter(
const FileSystemURL& url,
int64 offset,
FileSystemContext* context) const {
- return new SandboxFileStreamWriter(
- context, url, offset, update_observers_);
+ return scoped_ptr<fileapi::FileStreamWriter>(
+ new SandboxFileStreamWriter(context, url, offset, update_observers_));
}
FileSystemQuotaUtil* SandboxMountPointProvider::GetQuotaUtil() {
diff --git a/webkit/fileapi/sandbox_mount_point_provider.h b/webkit/fileapi/sandbox_mount_point_provider.h
index e8fe024..0fae7e5 100644
--- a/webkit/fileapi/sandbox_mount_point_provider.h
+++ b/webkit/fileapi/sandbox_mount_point_provider.h
@@ -102,12 +102,12 @@ class WEBKIT_STORAGE_EXPORT SandboxMountPointProvider
const FileSystemURL& url,
FileSystemContext* context,
base::PlatformFileError* error_code) const OVERRIDE;
- virtual webkit_blob::FileStreamReader* CreateFileStreamReader(
+ virtual scoped_ptr<webkit_blob::FileStreamReader> CreateFileStreamReader(
const FileSystemURL& url,
int64 offset,
const base::Time& expected_modification_time,
FileSystemContext* context) const OVERRIDE;
- virtual FileStreamWriter* CreateFileStreamWriter(
+ virtual scoped_ptr<FileStreamWriter> CreateFileStreamWriter(
const FileSystemURL& url,
int64 offset,
FileSystemContext* context) const OVERRIDE;
diff --git a/webkit/fileapi/test_mount_point_provider.cc b/webkit/fileapi/test_mount_point_provider.cc
index 5599c98..e828f8f 100644
--- a/webkit/fileapi/test_mount_point_provider.cc
+++ b/webkit/fileapi/test_mount_point_provider.cc
@@ -140,20 +140,24 @@ FileSystemOperation* TestMountPointProvider::CreateFileSystemOperation(
return new LocalFileSystemOperation(context, operation_context.Pass());
}
-webkit_blob::FileStreamReader* TestMountPointProvider::CreateFileStreamReader(
+scoped_ptr<webkit_blob::FileStreamReader>
+TestMountPointProvider::CreateFileStreamReader(
const FileSystemURL& url,
int64 offset,
const base::Time& expected_modification_time,
FileSystemContext* context) const {
- return new FileSystemFileStreamReader(
- context, url, offset, expected_modification_time);
+ return scoped_ptr<webkit_blob::FileStreamReader>(
+ new FileSystemFileStreamReader(
+ context, url, offset, expected_modification_time));
}
-fileapi::FileStreamWriter* TestMountPointProvider::CreateFileStreamWriter(
+scoped_ptr<fileapi::FileStreamWriter>
+TestMountPointProvider::CreateFileStreamWriter(
const FileSystemURL& url,
int64 offset,
FileSystemContext* context) const {
- return new SandboxFileStreamWriter(context, url, offset, observers_);
+ return scoped_ptr<fileapi::FileStreamWriter>(
+ new SandboxFileStreamWriter(context, url, offset, observers_));
}
FileSystemQuotaUtil* TestMountPointProvider::GetQuotaUtil() {
diff --git a/webkit/fileapi/test_mount_point_provider.h b/webkit/fileapi/test_mount_point_provider.h
index 8ad2308..b2a8087 100644
--- a/webkit/fileapi/test_mount_point_provider.h
+++ b/webkit/fileapi/test_mount_point_provider.h
@@ -57,12 +57,12 @@ class WEBKIT_STORAGE_EXPORT_PRIVATE TestMountPointProvider
const FileSystemURL& url,
FileSystemContext* context,
base::PlatformFileError* error_code) const OVERRIDE;
- virtual webkit_blob::FileStreamReader* CreateFileStreamReader(
+ virtual scoped_ptr<webkit_blob::FileStreamReader> CreateFileStreamReader(
const FileSystemURL& url,
int64 offset,
const base::Time& expected_modification_time,
FileSystemContext* context) const OVERRIDE;
- virtual FileStreamWriter* CreateFileStreamWriter(
+ virtual scoped_ptr<FileStreamWriter> CreateFileStreamWriter(
const FileSystemURL& url,
int64 offset,
FileSystemContext* context) const OVERRIDE;
diff --git a/webkit/fileapi/upload_file_system_file_element_reader.cc b/webkit/fileapi/upload_file_system_file_element_reader.cc
index c0586fc..b4a7ea9 100644
--- a/webkit/fileapi/upload_file_system_file_element_reader.cc
+++ b/webkit/fileapi/upload_file_system_file_element_reader.cc
@@ -39,11 +39,11 @@ int UploadFileSystemFileElementReader::Init(
position_ = 0;
// Initialize the stream reader and the length.
- stream_reader_.reset(
+ stream_reader_ =
file_system_context_->CreateFileStreamReader(
file_system_context_->CrackURL(url_),
range_offset_,
- expected_modification_time_));
+ expected_modification_time_);
DCHECK(stream_reader_);
const int64 result = stream_reader_->GetLength(