| 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,134 @@
|
| 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();
|
| + }
|
| +
|
| + 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::MountPathOptions::value_type((*it).c_str(),
|
| + value.c_str()));
|
| + }
|
| + }
|
| +
|
| + mount_lib->MountPath(source.c_str(), mount_type, options);
|
| +#endif
|
| +
|
| + SendResponse(true);
|
| + 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();
|
| }
|
|
|
| #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;
|
| + 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);
|
| +
|
| + mounts->Set(mount_point_info.mount_path, mount_info);
|
| + }
|
| +
|
| + result_.reset(mounts);
|
| +#endif
|
| +
|
| + SendResponse(true);
|
| + return true;
|
| +}
|
| +
|
| GetVolumeMetadataFunction::GetVolumeMetadataFunction() {
|
| }
|
|
|
| @@ -1165,7 +1268,38 @@
|
| return kVolumeTypeUnknown;
|
| }
|
| #endif
|
| +/*
|
| +MountVolumeFunction::MountVolumeFunction() {
|
| +}
|
|
|
| +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());
|
|
|