Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(732)

Unified Diff: chrome/browser/chromeos/fileapi/file_system_backend.cc

Issue 243703005: [fsp] [recommit #2] Add an initial AsyncFileUtil. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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(
« no previous file with comments | « chrome/browser/chromeos/fileapi/file_system_backend.h ('k') | chrome/browser/chromeos/fileapi/file_system_backend_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698