| 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,141 @@
|
| 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)) {
|
| + return false;
|
| + }
|
| +
|
| + std::string mount_type_str;
|
| + if (!args_->GetString(1, &mount_type_str)) {
|
| + return false;
|
| + }
|
| +
|
| +#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::MountPathOptions::value_type((*it).c_str(),
|
| + value.c_str()));
|
| + }
|
| + }
|
| +
|
| + mount_lib->MountPath(source.c_str(), mount_type, options);
|
| +#endif
|
| +
|
| + 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)) {
|
| - NOTREACHED();
|
| + std::string mount_path;
|
| + if (!args_->GetString(0, &mount_path)) {
|
| + return false;
|
| }
|
|
|
| #ifdef OS_CHROMEOS
|
| chromeos::CrosLibrary::Get()->GetMountLibrary()->UnmountPath(
|
| - volume_device_path.c_str());
|
| + mount_path.c_str());
|
| #endif
|
|
|
| SendResponse(true);
|
| return true;
|
| }
|
|
|
| +GetMountPointsFunction::GetMountPointsFunction() {
|
| +}
|
| +
|
| +GetMountPointsFunction::~GetMountPointsFunction() {
|
| +}
|
| +
|
| +bool GetMountPointsFunction::RunImpl() {
|
| + if (args_->GetSize() != 0)
|
| + 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;
|
| +
|
| + mounts->Set(mount_point_info.mount_path,
|
| + MountPointToValue(mount_point_info, mount_lib));
|
| + }
|
| +
|
| + result_.reset(mounts);
|
| +#endif
|
| +
|
| + return true;
|
| +}
|
| +
|
| +#ifdef OS_CHROMEOS
|
| +base::DictionaryValue* GetMountPointsFunction::MountPointToValue(
|
| + const chromeos::MountLibrary::MountPointInfo& mount_point_info,
|
| + chromeos::MountLibrary* mount_lib) {
|
| +
|
| + base::DictionaryValue *mount_info = new base::DictionaryValue();
|
| +
|
| + 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);
|
| + return mount_info;
|
| +}
|
| +#endif
|
| +
|
| GetVolumeMetadataFunction::GetVolumeMetadataFunction() {
|
| }
|
|
|
|
|