Index: chrome/browser/extensions/extension_file_browser_private_api.cc |
=================================================================== |
--- chrome/browser/extensions/extension_file_browser_private_api.cc (revision 93731) |
+++ chrome/browser/extensions/extension_file_browser_private_api.cc (working copy) |
@@ -1075,31 +1075,133 @@ |
return true; |
} |
-UnmountVolumeFunction::UnmountVolumeFunction() { |
+AddMountFunction::AddMountFunction() { |
} |
-UnmountVolumeFunction::~UnmountVolumeFunction() { |
+AddMountFunction::~AddMountFunction() { |
} |
-bool UnmountVolumeFunction::RunImpl() { |
+bool AddMountFunction::RunImpl() { |
+ if (args_->GetSize() != 2 && args_->GetSize() != 3) { |
+ error_ = "Invalid argument count"; |
+ return false; |
+ } |
+ |
+ std::string source; |
+ if (!args_->GetString(0, &source)) { |
+ NOTREACHED(); |
zel
2011/07/22 23:50:42
change NOTREACHED() in this function to this inste
|
+ } |
+ |
+ std::string mount_type_str; |
+ if (!args_->GetString(1, &mount_type_str)) { |
+ NOTREACHED(); |
+ } |
+ |
+#ifdef OS_CHROMEOS |
+ chromeos::MountLibrary *mount_lib = |
+ chromeos::CrosLibrary::Get()->GetMountLibrary(); |
+ |
+ chromeos::MountType mount_type = |
+ mount_lib->MountTypeFromString(mount_type_str); |
+ if (mount_type == chromeos::MOUNT_TYPE_INVALID) { |
+ error_ = "Invalid mount type"; |
+ return false; |
+ } |
+ |
+ chromeos::MountPathOptions options; |
+ |
+ if (args_->GetSize() == 3) { |
+ DictionaryValue *dict; |
+ if (!args_->GetDictionary(2, &dict)) { |
+ NOTREACHED(); |
+ } |
+ |
+ for (base::DictionaryValue::key_iterator it = dict->begin_keys(); |
+ it != dict->end_keys(); |
+ ++it) { |
+ std::string value; |
+ if (!dict->GetString(*it, &value)) { |
+ NOTREACHED(); |
+ } |
+ |
+ options.push_back(chromeos::MountPointOptions::value_type(*it, value)); |
+ } |
+ } |
+ |
+ mount_lib->Mount(source.c_str(), mount_type, options); |
+#endif |
+ |
+ SendResponse(true); |
zel
2011/07/22 23:50:42
If this class derives from SyncExtensionFunction c
|
+ return true; |
+} |
+ |
+RemoveMountFunction::RemoveMountFunction() { |
+} |
+ |
+RemoveMountFunction::~RemoveMountFunction() { |
+} |
+ |
+bool RemoveMountFunction::RunImpl() { |
if (args_->GetSize() != 1) { |
return false; |
} |
- std::string volume_device_path; |
- if (!args_->GetString(0, &volume_device_path)) { |
+ std::string mount_path; |
+ if (!args_->GetString(0, &mount_path)) { |
NOTREACHED(); |
zel
2011/07/22 23:50:42
replace NOTREACHED(); with
return false;
|
} |
#ifdef OS_CHROMEOS |
- chromeos::CrosLibrary::Get()->GetMountLibrary()->UnmountPath( |
- volume_device_path.c_str()); |
+ chromeos::CrosLibrary::Get()->GetMountLibrary()->RemoveMount( |
+ mount_path.c_str()); |
#endif |
SendResponse(true); |
return true; |
} |
+GetMountPointsFunction::GetMountPointsFunction() { |
+} |
+ |
+GetMountPointsFunction::~GetMountPointsFunction() { |
+} |
+ |
+bool GetMountPointsFunction::RunImpl() { |
+ if (args_->GetSize() != 0) { |
zel
2011/07/22 23:50:42
nit: {}
|
+ return false; |
+ } |
+ |
+#ifdef OS_CHROMEOS |
+ chromeos::MountLibrary *mount_lib = |
+ chromeos::CrosLibrary::Get()->GetMountLibrary(); |
+ chromeos::MountLibrary::MountPointMap mount_points = |
+ mount_lib->mount_points(); |
+ |
+ base::DictionaryValue *mounts = new base::DictionaryValue(); |
+ |
+ for (chromeos::MountLibrary::MountPointMap::const_iterator it = |
+ mount_points.begin(); |
+ it != mount_points.end(); |
+ ++it) { |
+ chromeos::MountLibrary::MountPointInfo mount_point_info = it->second; |
+ base::DictionaryValue *mount_info = new base::DictionaryValue(); |
zel
2011/07/22 23:50:42
make a helper function MountPointInfoToValue() for
|
+ |
+ mount_info->SetString("mountPath", mount_point_info.mount_path); |
+ mount_info->SetString( |
+ "mountType", |
+ mount_lib->MountTypeToString(mount_point_info.mount_type)); |
+ mount_info->SetString("sourcePath", mount_point_info.source_path); |
+ |
+ mounts->Set(mount_point_info.mount_path, mount_info); |
+ } |
+ |
+ result_.reset(mounts); |
+#endif |
+ |
+ SendResponse(true); |
+ return true; |
+} |
+ |
GetVolumeMetadataFunction::GetVolumeMetadataFunction() { |
} |
@@ -1165,7 +1267,38 @@ |
return kVolumeTypeUnknown; |
} |
#endif |
+/* |
+MountVolumeFunction::MountVolumeFunction() { |
zel
2011/07/22 23:50:42
remove this one, it's commented out anyway
|
+} |
+MountVolumeFunction::~MountVolumeFunction() { |
+} |
+ |
+void MountCompleted() { |
+ SendResponce(error_code == NO_ERROR); |
+} |
+ |
+bool MountVolumeFunction::RunImpl() { |
+ if (args_->GetSize() != 1) { |
+ return false; |
+ } |
+ |
+ std::string volume_device_path; |
+ if (!args_->GetString(0, &volume_device_path)) { |
+ NOTREACHED(); |
+ } |
+ |
+ bool success = false; |
+#ifdef OS_CHROMEOS |
+// success = chromeos::CrosLibrary::Get()->GetMountLibrary()->MountDevice( |
+ // volume_device_path.c_str(), type, options, this); |
+#endif |
+ |
+ if (success) |
+ SendResponse(success); |
+ return success; |
+} |
+*/ |
bool FileDialogStringsFunction::RunImpl() { |
result_.reset(new DictionaryValue()); |
DictionaryValue* dict = reinterpret_cast<DictionaryValue*>(result_.get()); |