Index: chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_api.cc |
diff --git a/chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_api.cc b/chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_api.cc |
index 09a892075b42b6b2db6226c4e2b4be81d3eef198..643bb3db237cfb6bfe0252dd6b384ba5a2d96329 100644 |
--- a/chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_api.cc |
+++ b/chrome/browser/chromeos/extensions/file_system_provider/file_system_provider_api.cc |
@@ -70,6 +70,22 @@ scoped_ptr<ProvidedFileSystemObserver::Changes> ParseChanges( |
return results; |
} |
+// Converts the file system source from the IDL type to a native type. |
+chromeos::file_system_provider::Source ParseSource( |
+ const api::file_system_provider::FileSystemSource& source) { |
+ switch (source) { |
+ case api::file_system_provider::FILE_SYSTEM_SOURCE_FILE: |
+ return chromeos::file_system_provider::SOURCE_FILE; |
+ case api::file_system_provider::FILE_SYSTEM_SOURCE_DEVICE: |
+ return chromeos::file_system_provider::SOURCE_DEVICE; |
+ case api::file_system_provider::FILE_SYSTEM_SOURCE_NETWORK: |
+ return chromeos::file_system_provider::SOURCE_NETWORK; |
+ case api::file_system_provider::FILE_SYSTEM_SOURCE_NONE: |
+ return chromeos::file_system_provider::SOURCE_UNKNOWN; |
+ } |
+ return chromeos::file_system_provider::SOURCE_UNKNOWN; |
+} |
+ |
// Fills the IDL's FileSystemInfo with FSP's ProvidedFileSystemInfo and |
// Watchers. |
void FillFileSystemInfo(const ProvidedFileSystemInfo& file_system_info, |
@@ -83,6 +99,20 @@ void FillFileSystemInfo(const ProvidedFileSystemInfo& file_system_info, |
output->display_name = file_system_info.display_name(); |
output->writable = file_system_info.writable(); |
output->opened_files_limit = file_system_info.opened_files_limit(); |
+ switch (file_system_info.source()) { |
+ case chromeos::file_system_provider::SOURCE_FILE: |
+ output->source = api::file_system_provider::FILE_SYSTEM_SOURCE_FILE; |
+ break; |
+ case chromeos::file_system_provider::SOURCE_DEVICE: |
+ output->source = api::file_system_provider::FILE_SYSTEM_SOURCE_DEVICE; |
+ break; |
+ case chromeos::file_system_provider::SOURCE_NETWORK: |
+ output->source = api::file_system_provider::FILE_SYSTEM_SOURCE_NETWORK; |
+ break; |
+ case chromeos::file_system_provider::SOURCE_UNKNOWN: |
+ output->source = api::file_system_provider::FILE_SYSTEM_SOURCE_NONE; |
+ break; |
+ } |
std::vector<linked_ptr<Watcher>> watcher_items; |
for (const auto& watcher : watchers) { |
@@ -152,6 +182,7 @@ bool FileSystemProviderMountFunction::RunSync() { |
? *params->options.opened_files_limit.get() |
: 0; |
options.supports_notify_tag = params->options.supports_notify_tag; |
+ options.source = ParseSource(params->options.source); |
const base::File::Error result = |
service->MountFileSystem(extension_id(), options); |