diff options
author | nhiroki@chromium.org <nhiroki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-10 09:17:05 +0000 |
---|---|---|
committer | nhiroki@chromium.org <nhiroki@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-10 09:17:05 +0000 |
commit | 3ee9eb00a07038024d387390a640bb1f0ab51da6 (patch) | |
tree | ea6c3a53b10d34d187eba9b96f6554ca0f2eb1b2 /webkit | |
parent | 69df6ccb26f6db8f4470e70c8551c8a149b05330 (diff) | |
download | chromium_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.cc | 2 | ||||
-rw-r--r-- | webkit/chromeos/fileapi/cros_mount_point_provider.cc | 21 | ||||
-rw-r--r-- | webkit/chromeos/fileapi/cros_mount_point_provider.h | 4 | ||||
-rw-r--r-- | webkit/fileapi/file_system_context.cc | 15 | ||||
-rw-r--r-- | webkit/fileapi/file_system_context.h | 4 | ||||
-rw-r--r-- | webkit/fileapi/file_system_mount_point_provider.h | 6 | ||||
-rw-r--r-- | webkit/fileapi/file_system_url_request_job.cc | 7 | ||||
-rw-r--r-- | webkit/fileapi/isolated_mount_point_provider.cc | 14 | ||||
-rw-r--r-- | webkit/fileapi/isolated_mount_point_provider.h | 4 | ||||
-rw-r--r-- | webkit/fileapi/sandbox_mount_point_provider.cc | 14 | ||||
-rw-r--r-- | webkit/fileapi/sandbox_mount_point_provider.h | 4 | ||||
-rw-r--r-- | webkit/fileapi/test_mount_point_provider.cc | 14 | ||||
-rw-r--r-- | webkit/fileapi/test_mount_point_provider.h | 4 | ||||
-rw-r--r-- | webkit/fileapi/upload_file_system_file_element_reader.cc | 4 |
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( |