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

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

Issue 2450713002: arc: Register ARC content file system (Closed)
Patch Set: Created 4 years, 2 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 d2c41769a5c5fcc1311188dcc64a44ffafa690cd..dfea63561953c8a623d4cde848667bb6a6a68e0d 100644
--- a/chrome/browser/chromeos/fileapi/file_system_backend.cc
+++ b/chrome/browser/chromeos/fileapi/file_system_backend.cc
@@ -49,13 +49,15 @@ bool FileSystemBackend::CanHandleURL(const storage::FileSystemURL& url) {
url.type() == storage::kFileSystemTypeRestrictedNativeLocal ||
url.type() == storage::kFileSystemTypeDrive ||
url.type() == storage::kFileSystemTypeProvided ||
- url.type() == storage::kFileSystemTypeDeviceMediaAsFileStorage;
+ url.type() == storage::kFileSystemTypeDeviceMediaAsFileStorage ||
+ url.type() == storage::kFileSystemTypeArcContent;
}
FileSystemBackend::FileSystemBackend(
FileSystemBackendDelegate* drive_delegate,
FileSystemBackendDelegate* file_system_provider_delegate,
FileSystemBackendDelegate* mtp_delegate,
+ FileSystemBackendDelegate* arc_content_delegate,
scoped_refptr<storage::ExternalMountPoints> mount_points,
storage::ExternalMountPoints* system_mount_points)
: file_access_permissions_(new FileAccessPermissions()),
@@ -63,9 +65,9 @@ FileSystemBackend::FileSystemBackend(
drive_delegate_(drive_delegate),
file_system_provider_delegate_(file_system_provider_delegate),
mtp_delegate_(mtp_delegate),
+ arc_content_delegate_(arc_content_delegate),
mount_points_(mount_points),
- system_mount_points_(system_mount_points) {
-}
+ system_mount_points_(system_mount_points) {}
FileSystemBackend::~FileSystemBackend() {
}
@@ -99,6 +101,7 @@ bool FileSystemBackend::CanHandleType(storage::FileSystemType type) const {
case storage::kFileSystemTypeNativeForPlatformApp:
case storage::kFileSystemTypeDeviceMediaAsFileStorage:
case storage::kFileSystemTypeProvided:
+ case storage::kFileSystemTypeArcContent:
return true;
default:
return false;
@@ -249,6 +252,8 @@ storage::AsyncFileUtil* FileSystemBackend::GetAsyncFileUtil(
return local_file_util_.get();
case storage::kFileSystemTypeDeviceMediaAsFileStorage:
return mtp_delegate_->GetAsyncFileUtil(type);
+ case storage::kFileSystemTypeArcContent:
+ return arc_content_delegate_->GetAsyncFileUtil(type);
default:
NOTREACHED();
}
@@ -301,7 +306,8 @@ storage::FileSystemOperation* FileSystemBackend::CreateFileSystemOperation(
DCHECK(url.type() == storage::kFileSystemTypeNativeLocal ||
url.type() == storage::kFileSystemTypeRestrictedNativeLocal ||
url.type() == storage::kFileSystemTypeDrive ||
- url.type() == storage::kFileSystemTypeProvided);
+ url.type() == storage::kFileSystemTypeProvided ||
+ url.type() == storage::kFileSystemTypeArcContent);
return storage::FileSystemOperation::Create(
url, context,
base::MakeUnique<storage::FileSystemOperationContext>(context));
@@ -311,7 +317,8 @@ bool FileSystemBackend::SupportsStreaming(
const storage::FileSystemURL& url) const {
return url.type() == storage::kFileSystemTypeDrive ||
url.type() == storage::kFileSystemTypeProvided ||
- url.type() == storage::kFileSystemTypeDeviceMediaAsFileStorage;
+ url.type() == storage::kFileSystemTypeDeviceMediaAsFileStorage ||
+ url.type() == storage::kFileSystemTypeArcContent;
}
bool FileSystemBackend::HasInplaceCopyImplementation(
@@ -323,6 +330,7 @@ bool FileSystemBackend::HasInplaceCopyImplementation(
return true;
case storage::kFileSystemTypeNativeLocal:
case storage::kFileSystemTypeRestrictedNativeLocal:
+ case storage::kFileSystemTypeArcContent:
return false;
default:
NOTREACHED();
@@ -357,6 +365,9 @@ FileSystemBackend::CreateFileStreamReader(
case storage::kFileSystemTypeDeviceMediaAsFileStorage:
return mtp_delegate_->CreateFileStreamReader(
url, offset, max_bytes_to_read, expected_modification_time, context);
+ case storage::kFileSystemTypeArcContent:
+ return arc_content_delegate_->CreateFileStreamReader(
+ url, offset, max_bytes_to_read, expected_modification_time, context);
default:
NOTREACHED();
}
@@ -389,6 +400,8 @@ FileSystemBackend::CreateFileStreamWriter(
return std::unique_ptr<storage::FileStreamWriter>();
case storage::kFileSystemTypeDeviceMediaAsFileStorage:
return mtp_delegate_->CreateFileStreamWriter(url, offset, context);
+ case storage::kFileSystemTypeArcContent: // Read only.
+ return std::unique_ptr<storage::FileStreamWriter>();
hidehiko 2016/10/25 16:55:44 (optional) Can this be shared with RestrictedNativ
hashimoto 2016/10/26 05:23:12 Done.
default:
NOTREACHED();
}
@@ -422,6 +435,7 @@ void FileSystemBackend::GetRedirectURLForContents(
return;
case storage::kFileSystemTypeNativeLocal:
case storage::kFileSystemTypeRestrictedNativeLocal:
+ case storage::kFileSystemTypeArcContent:
callback.Run(GURL());
return;
default:

Powered by Google App Engine
This is Rietveld 408576698