Index: chrome/browser/chromeos/file_system_provider/service.cc |
diff --git a/chrome/browser/chromeos/file_system_provider/service.cc b/chrome/browser/chromeos/file_system_provider/service.cc |
index 25305b1d58a18da1c65cc70fb7b95beff56a6458..f40467d46edd1309eaef72cec0afcbd215be670c 100644 |
--- a/chrome/browser/chromeos/file_system_provider/service.cc |
+++ b/chrome/browser/chromeos/file_system_provider/service.cc |
@@ -101,15 +101,12 @@ void Service::SetFileSystemFactoryForTesting( |
} |
bool Service::MountFileSystem(const std::string& extension_id, |
- const std::string& file_system_id, |
- const std::string& display_name, |
- bool writable, |
- bool supports_notify_tag) { |
+ const MountOptions& options) { |
DCHECK(thread_checker_.CalledOnValidThread()); |
// If already exists a file system provided by the same extension with this |
// id, then abort. |
- if (GetProvidedFileSystem(extension_id, file_system_id)) { |
+ if (GetProvidedFileSystem(extension_id, options.file_system_id)) { |
FOR_EACH_OBSERVER(Observer, |
observers_, |
OnProvidedFileSystemMount(ProvidedFileSystemInfo(), |
@@ -134,7 +131,7 @@ bool Service::MountFileSystem(const std::string& extension_id, |
// The mount point path and name are unique per system, since they are system |
// wide. This is necessary for copying between profiles. |
const base::FilePath& mount_path = |
- util::GetMountPath(profile_, extension_id, file_system_id); |
+ util::GetMountPath(profile_, extension_id, options.file_system_id); |
const std::string mount_point_name = mount_path.BaseName().AsUTF8Unsafe(); |
if (!mount_points->RegisterFileSystem(mount_point_name, |
@@ -157,19 +154,15 @@ bool Service::MountFileSystem(const std::string& extension_id, |
// writable = false |
// supports_notify_tag = false |
// mount_path = /provided/b33f1337-hello_world-5aa5 |
- ProvidedFileSystemInfo file_system_info(extension_id, |
- file_system_id, |
- display_name, |
- writable, |
- supports_notify_tag, |
- mount_path); |
+ ProvidedFileSystemInfo file_system_info(extension_id, options, mount_path); |
ProvidedFileSystemInterface* file_system = |
file_system_factory_.Run(profile_, file_system_info); |
DCHECK(file_system); |
- file_system_map_[FileSystemKey(extension_id, file_system_id)] = file_system; |
+ file_system_map_[FileSystemKey(extension_id, options.file_system_id)] = |
+ file_system; |
mount_point_name_to_key_map_[mount_point_name] = |
- FileSystemKey(extension_id, file_system_id); |
+ FileSystemKey(extension_id, options.file_system_id); |
RememberFileSystem(file_system_info); |
FOR_EACH_OBSERVER( |
@@ -450,11 +443,12 @@ void Service::RestoreFileSystems(const std::string& extension_id) { |
<< "Malformed provided file system information in preferences."; |
continue; |
} |
- const bool result = MountFileSystem(extension_id, |
- file_system_id, |
- display_name, |
- writable, |
- supports_notify_tag); |
+ MountOptions options; |
+ options.file_system_id = file_system_id; |
+ options.display_name = display_name; |
+ options.writable = writable; |
+ options.supports_notify_tag = supports_notify_tag; |
+ const bool result = MountFileSystem(extension_id, options); |
if (!result) { |
LOG(ERROR) << "Failed to restore a provided file system from " |
<< "preferences: " << extension_id << ", " << file_system_id |