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

Unified Diff: chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc

Issue 1142593002: Generalize volume configuration over all volumes. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Fixed the configure test. Created 5 years, 7 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/extensions/file_manager/private_api_misc.cc
diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
index 06e9cfa58fd318e72211438ed7291bf04388450b..6cbc10bbf30ddd12a403e6c3fa9454ddae0d2193 100644
--- a/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
+++ b/chrome/browser/chromeos/extensions/file_manager/private_api_misc.cc
@@ -492,15 +492,14 @@ FileManagerPrivateAddProvidedFileSystemFunction::Run() {
return RespondNow(NoArguments());
}
-FileManagerPrivateConfigureProvidedFileSystemFunction::
- FileManagerPrivateConfigureProvidedFileSystemFunction()
+FileManagerPrivateConfigureVolumeFunction::
+ FileManagerPrivateConfigureVolumeFunction()
: chrome_details_(this) {
}
ExtensionFunction::ResponseAction
-FileManagerPrivateConfigureProvidedFileSystemFunction::Run() {
- using extensions::api::file_manager_private::ConfigureProvidedFileSystem::
- Params;
+FileManagerPrivateConfigureVolumeFunction::Run() {
+ using extensions::api::file_manager_private::ConfigureVolume::Params;
const scoped_ptr<Params> params(Params::Create(*args_));
EXTENSION_FUNCTION_VALIDATE(params);
@@ -512,24 +511,32 @@ FileManagerPrivateConfigureProvidedFileSystemFunction::Run() {
volume_manager->FindVolumeById(params->volume_id);
if (!volume.get())
return RespondNow(Error("Volume not found."));
+ if (!volume->configurable())
+ return RespondNow(Error("Volume not configurable."));
+
+ switch (volume->type()) {
+ case file_manager::VOLUME_TYPE_PROVIDED: {
+ using chromeos::file_system_provider::Service;
+ Service* const service = Service::Get(chrome_details_.GetProfile());
+ DCHECK(service);
+
+ using chromeos::file_system_provider::ProvidedFileSystemInterface;
+ ProvidedFileSystemInterface* const file_system =
+ service->GetProvidedFileSystem(volume->extension_id(),
+ volume->file_system_id());
+ if (file_system)
+ file_system->Configure(base::Bind(
+ &FileManagerPrivateConfigureVolumeFunction::OnCompleted, this));
+ break;
+ }
+ default:
+ NOTIMPLEMENTED();
+ }
- using chromeos::file_system_provider::Service;
- Service* const service = Service::Get(chrome_details_.GetProfile());
- DCHECK(service);
-
- using chromeos::file_system_provider::ProvidedFileSystemInterface;
- ProvidedFileSystemInterface* const file_system =
- service->GetProvidedFileSystem(volume->extension_id(),
- volume->file_system_id());
- DCHECK(file_system);
-
- file_system->Configure(base::Bind(
- &FileManagerPrivateConfigureProvidedFileSystemFunction::OnCompleted,
- this));
return RespondLater();
}
-void FileManagerPrivateConfigureProvidedFileSystemFunction::OnCompleted(
+void FileManagerPrivateConfigureVolumeFunction::OnCompleted(
base::File::Error result) {
if (result != base::File::FILE_OK) {
Respond(Error("Failed to complete configuration."));

Powered by Google App Engine
This is Rietveld 408576698