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

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

Issue 246293011: Mount MTP devices in Chrome OS Files.app. (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 62ced143f511537ce8ae8cd9e6951db6e0e62c78..256130a4212941807f1414b4b3ec72886b1f166a 100644
--- a/chrome/browser/chromeos/fileapi/file_system_backend.cc
+++ b/chrome/browser/chromeos/fileapi/file_system_backend.cc
@@ -9,6 +9,7 @@
#include "base/strings/stringprintf.h"
#include "chrome/browser/chromeos/fileapi/file_access_permissions.h"
#include "chrome/browser/chromeos/fileapi/file_system_backend_delegate.h"
+#include "chrome/browser/media_galleries/fileapi/media_file_system_backend.h"
#include "chromeos/dbus/cros_disks_client.h"
#include "webkit/browser/blob/file_stream_reader.h"
#include "webkit/browser/fileapi/async_file_util.h"
@@ -28,10 +29,12 @@ bool FileSystemBackend::CanHandleURL(const fileapi::FileSystemURL& url) {
return url.type() == fileapi::kFileSystemTypeNativeLocal ||
url.type() == fileapi::kFileSystemTypeRestrictedNativeLocal ||
url.type() == fileapi::kFileSystemTypeDrive ||
- url.type() == fileapi::kFileSystemTypeProvided;
+ url.type() == fileapi::kFileSystemTypeProvided ||
+ url.type() == fileapi::kFileSystemTypeDeviceMediaAsFileStorage;
}
FileSystemBackend::FileSystemBackend(
+ const base::FilePath& profile_path,
FileSystemBackendDelegate* drive_delegate,
FileSystemBackendDelegate* file_system_provider_delegate,
scoped_refptr<quota::SpecialStoragePolicy> special_storage_policy,
@@ -40,6 +43,8 @@ FileSystemBackend::FileSystemBackend(
: special_storage_policy_(special_storage_policy),
file_access_permissions_(new FileAccessPermissions()),
local_file_util_(fileapi::AsyncFileUtil::CreateForLocalFileSystem()),
+ device_media_async_file_util_(
+ DeviceMediaAsyncFileUtil::Create(profile_path)),
drive_delegate_(drive_delegate),
file_system_provider_delegate_(file_system_provider_delegate),
mount_points_(mount_points),
@@ -76,6 +81,7 @@ bool FileSystemBackend::CanHandleType(fileapi::FileSystemType type) const {
case fileapi::kFileSystemTypeRestrictedNativeLocal:
case fileapi::kFileSystemTypeNativeLocal:
case fileapi::kFileSystemTypeNativeForPlatformApp:
+ case fileapi::kFileSystemTypeDeviceMediaAsFileStorage:
return true;
default:
return false;
@@ -225,6 +231,8 @@ fileapi::AsyncFileUtil* FileSystemBackend::GetAsyncFileUtil(
case fileapi::kFileSystemTypeNativeLocal:
case fileapi::kFileSystemTypeRestrictedNativeLocal:
return local_file_util_.get();
+ case fileapi::kFileSystemTypeDeviceMediaAsFileStorage:
+ return device_media_async_file_util_.get();
default:
NOTREACHED();
}
@@ -252,10 +260,12 @@ fileapi::FileSystemOperation* FileSystemBackend::CreateFileSystemOperation(
DCHECK(url.type() == fileapi::kFileSystemTypeNativeLocal ||
url.type() == fileapi::kFileSystemTypeRestrictedNativeLocal ||
- url.type() == fileapi::kFileSystemTypeDrive);
+ url.type() == fileapi::kFileSystemTypeDrive ||
+ url.type() == fileapi::kFileSystemTypeDeviceMediaAsFileStorage);
return fileapi::FileSystemOperation::Create(
url, context,
- make_scoped_ptr(new fileapi::FileSystemOperationContext(context)));
+ make_scoped_ptr(new fileapi::FileSystemOperationContext(
+ context, MediaFileSystemBackend::MediaTaskRunner())));
vandebo (ex-Chrome) 2014/04/23 16:24:44 Passing in the media task runner here will do the
kinaba 2014/04/24 01:33:30 Right. I can't remember why I wrote it like the fi
}
bool FileSystemBackend::SupportsStreaming(
@@ -286,6 +296,12 @@ FileSystemBackend::CreateFileStreamReader(
return scoped_ptr<webkit_blob::FileStreamReader>(
webkit_blob::FileStreamReader::CreateForFileSystemFile(
context, url, offset, expected_modification_time));
+ case fileapi::kFileSystemTypeDeviceMediaAsFileStorage:
+ // TODO(kinaba): the stream reader from device media async util limits
vandebo (ex-Chrome) 2014/04/23 16:24:44 I'm not sure what you mean here?
kinaba 2014/04/24 01:33:30 Revised the comment. Does it make sense?
+ // itself only for reading arbitrary file types. Handle non-media files
+ // here as well.
+ return device_media_async_file_util_->GetFileStreamReader(
+ url, offset, expected_modification_time, context);
default:
NOTREACHED();
}
@@ -316,6 +332,9 @@ FileSystemBackend::CreateFileStreamWriter(
case fileapi::kFileSystemTypeRestrictedNativeLocal:
// Restricted native local file system is read only.
return scoped_ptr<fileapi::FileStreamWriter>();
+ case fileapi::kFileSystemTypeDeviceMediaAsFileStorage:
+ // TODO(kinaba): support writing.
+ return scoped_ptr<fileapi::FileStreamWriter>();
default:
NOTREACHED();
}

Powered by Google App Engine
This is Rietveld 408576698