Chromium Code Reviews| Index: chrome/browser/chromeos/fileapi/file_system_backend.cc |
| diff --git a/chrome/browser/chromeos/fileapi/file_system_backend.cc b/chrome/browser/chromeos/fileapi/file_system_backend.cc |
| index d2ad6faff8773fdd7d94d67b2a82372711a5bc8d..78a5fd81e49ec0576ab3dd4e65043fdfbac06c8b 100644 |
| --- a/chrome/browser/chromeos/fileapi/file_system_backend.cc |
| +++ b/chrome/browser/chromeos/fileapi/file_system_backend.cc |
| @@ -37,11 +37,13 @@ bool FileSystemBackend::CanHandleURL(const fileapi::FileSystemURL& url) { |
| return false; |
| return url.type() == fileapi::kFileSystemTypeNativeLocal || |
| url.type() == fileapi::kFileSystemTypeRestrictedNativeLocal || |
| - url.type() == fileapi::kFileSystemTypeDrive; |
| + url.type() == fileapi::kFileSystemTypeDrive || |
| + url.type() == fileapi::kFileSystemTypeProvided; |
| } |
| FileSystemBackend::FileSystemBackend( |
| FileSystemBackendDelegate* drive_delegate, |
| + FileSystemBackendDelegate* file_system_provider_delegate, |
| scoped_refptr<quota::SpecialStoragePolicy> special_storage_policy, |
| scoped_refptr<fileapi::ExternalMountPoints> mount_points, |
| fileapi::ExternalMountPoints* system_mount_points) |
| @@ -49,9 +51,9 @@ FileSystemBackend::FileSystemBackend( |
| file_access_permissions_(new FileAccessPermissions()), |
| local_file_util_(fileapi::AsyncFileUtil::CreateForLocalFileSystem()), |
| drive_delegate_(drive_delegate), |
| + file_system_provider_delegate_(file_system_provider_delegate), |
|
mtomasz
2014/04/21 01:09:35
@kinaba: This was missing, causing a leak of the p
|
| mount_points_(mount_points), |
| - system_mount_points_(system_mount_points) { |
| -} |
| + system_mount_points_(system_mount_points) {} |
| FileSystemBackend::~FileSystemBackend() { |
| } |
| @@ -232,6 +234,8 @@ fileapi::AsyncFileUtil* FileSystemBackend::GetAsyncFileUtil( |
| fileapi::FileSystemType type) { |
| if (type == fileapi::kFileSystemTypeDrive) |
| return drive_delegate_->GetAsyncFileUtil(type); |
| + if (type == fileapi::kFileSystemTypeProvided) |
| + return file_system_provider_delegate_->GetAsyncFileUtil(type); |
| DCHECK(type == fileapi::kFileSystemTypeNativeLocal || |
| type == fileapi::kFileSystemTypeRestrictedNativeLocal); |
| @@ -286,6 +290,11 @@ FileSystemBackend::CreateFileStreamReader( |
| url, offset, expected_modification_time, context); |
| } |
| + if (url.type() == fileapi::kFileSystemTypeProvided) { |
| + return file_system_provider_delegate_->CreateFileStreamReader( |
| + url, offset, expected_modification_time, context); |
| + } |
| + |
| return scoped_ptr<webkit_blob::FileStreamReader>( |
| webkit_blob::FileStreamReader::CreateForFileSystemFile( |
| context, url, offset, expected_modification_time)); |
| @@ -307,6 +316,11 @@ FileSystemBackend::CreateFileStreamWriter( |
| if (url.type() == fileapi::kFileSystemTypeRestrictedNativeLocal) |
| return scoped_ptr<fileapi::FileStreamWriter>(); |
| + if (url.type() == fileapi::kFileSystemTypeProvided) { |
| + return file_system_provider_delegate_->CreateFileStreamWriter( |
| + url, offset, context); |
| + } |
| + |
| DCHECK(url.type() == fileapi::kFileSystemTypeNativeLocal); |
| return scoped_ptr<fileapi::FileStreamWriter>( |
| fileapi::FileStreamWriter::CreateForLocalFile( |