| Index: chrome/browser/ui/webui/chromeos/imageburner/imageburner_ui.cc
|
| diff --git a/chrome/browser/ui/webui/chromeos/imageburner/imageburner_ui.cc b/chrome/browser/ui/webui/chromeos/imageburner/imageburner_ui.cc
|
| index 34b2745c76016ffc0fadb85339caa257a0495b4a..300b3cc7b8029db160794094b7ada2ff584a15e2 100644
|
| --- a/chrome/browser/ui/webui/chromeos/imageburner/imageburner_ui.cc
|
| +++ b/chrome/browser/ui/webui/chromeos/imageburner/imageburner_ui.cc
|
| @@ -30,14 +30,19 @@
|
| #include "ui/base/resource/resource_bundle.h"
|
| #include "ui/base/text/bytes_formatting.h"
|
|
|
| +using chromeos::disks::DiskMountManager;
|
| +using chromeos::disks::DiskMountManagerEventType;
|
| using content::BrowserThread;
|
| using content::DownloadItem;
|
| using content::WebContents;
|
|
|
| +namespace {
|
| +
|
| const char kPropertyDevicePath[] = "devicePath";
|
| const char kPropertyFilePath[] = "filePath";
|
| const char kPropertyLabel[] = "label";
|
| const char kPropertyPath[] = "path";
|
| +const char kPropertyDeviceType[] = "type";
|
|
|
| // Name for hwid in machine statistics.
|
| const char kHwidStatistic[] = "hardware_class";
|
| @@ -51,7 +56,11 @@ const uint64 kMinDeviceSize = static_cast<uint64>(3.9) * 1000 * 1000 * 1000;
|
| const char kMoreInfoLink[] =
|
| "http://www.chromium.org/chromium-os/chromiumos-design-docs/recovery-mode";
|
|
|
| -namespace {
|
| +bool AllowBurnToDevice(const DiskMountManager::Disk& disk) {
|
| + return disk.is_parent() && !disk.on_boot_device() &&
|
| + (disk.device_type() == chromeos::DEVICE_TYPE_USB ||
|
| + disk.device_type() == chromeos::DEVICE_TYPE_SD);
|
| +}
|
|
|
| ChromeWebUIDataSource* CreateImageburnerUIHTMLSource() {
|
| ChromeWebUIDataSource* source =
|
| @@ -137,7 +146,7 @@ WebUIHandler::WebUIHandler(WebContents* contents)
|
| state_machine_(NULL),
|
| observing_burn_lib_(false),
|
| working_(false) {
|
| - chromeos::disks::DiskMountManager::GetInstance()->AddObserver(this);
|
| + DiskMountManager::GetInstance()->AddObserver(this);
|
| chromeos::CrosLibrary::Get()->GetNetworkLibrary()->
|
| AddNetworkManagerObserver(this);
|
| burn_manager_ = BurnManager::GetInstance();
|
| @@ -146,8 +155,7 @@ WebUIHandler::WebUIHandler(WebContents* contents)
|
| }
|
|
|
| WebUIHandler::~WebUIHandler() {
|
| - chromeos::disks::DiskMountManager::GetInstance()->
|
| - RemoveObserver(this);
|
| + DiskMountManager::GetInstance()->RemoveObserver(this);
|
| chromeos::CrosLibrary::Get()->GetBurnLibrary()->RemoveObserver(this);
|
| chromeos::CrosLibrary::Get()->GetNetworkLibrary()->
|
| RemoveNetworkManagerObserver(this);
|
| @@ -168,10 +176,9 @@ void WebUIHandler::RegisterMessages() {
|
| base::Unretained(this)));
|
| }
|
|
|
| -void WebUIHandler::DiskChanged(
|
| - chromeos::disks::DiskMountManagerEventType event,
|
| - const chromeos::disks::DiskMountManager::Disk* disk) {
|
| - if (!disk->is_parent() || disk->on_boot_device())
|
| +void WebUIHandler::DiskChanged(DiskMountManagerEventType event,
|
| + const DiskMountManager::Disk* disk) {
|
| + if (!AllowBurnToDevice(*disk))
|
| return;
|
| if (event == chromeos::disks::MOUNT_DISK_ADDED) {
|
| DictionaryValue disk_value;
|
| @@ -287,28 +294,26 @@ void WebUIHandler::OnError(int error_message_id) {
|
| working_ = false;
|
| }
|
|
|
| -void WebUIHandler::CreateDiskValue(
|
| - const chromeos::disks::DiskMountManager::Disk& disk,
|
| - DictionaryValue* disk_value) {
|
| +void WebUIHandler::CreateDiskValue(const DiskMountManager::Disk& disk,
|
| + DictionaryValue* disk_value) {
|
| string16 label = ASCIIToUTF16(disk.drive_label());
|
| base::i18n::AdjustStringForLocaleDirection(&label);
|
| disk_value->SetString(std::string(kPropertyLabel), label);
|
| disk_value->SetString(std::string(kPropertyFilePath), disk.file_path());
|
| disk_value->SetString(std::string(kPropertyDevicePath), disk.device_path());
|
| + disk_value->SetString(std::string(kPropertyDeviceType),
|
| + DiskMountManager::DeviceTypeToString(disk.device_type()));
|
| }
|
|
|
| void WebUIHandler::HandleGetDevices(const ListValue* args) {
|
| - chromeos::disks::DiskMountManager* disk_mount_manager =
|
| - chromeos::disks::DiskMountManager::GetInstance();
|
| - const chromeos::disks::DiskMountManager::DiskMap& disks =
|
| - disk_mount_manager->disks();
|
| + DiskMountManager* disk_mount_manager = DiskMountManager::GetInstance();
|
| + const DiskMountManager::DiskMap& disks = disk_mount_manager->disks();
|
| ListValue results_value;
|
| - for (chromeos::disks::DiskMountManager::DiskMap::const_iterator iter =
|
| - disks.begin();
|
| + for (DiskMountManager::DiskMap::const_iterator iter = disks.begin();
|
| iter != disks.end();
|
| ++iter) {
|
| - chromeos::disks::DiskMountManager::Disk* disk = iter->second;
|
| - if (disk->is_parent() && !disk->on_boot_device()) {
|
| + DiskMountManager::Disk* disk = iter->second;
|
| + if (AllowBurnToDevice(*disk)) {
|
| DictionaryValue* disk_value = new DictionaryValue();
|
| CreateDiskValue(*disk, disk_value);
|
| results_value.Append(disk_value);
|
| @@ -626,10 +631,8 @@ void WebUIHandler::ExtractTargetedDevicePath(
|
| }
|
|
|
| int64 WebUIHandler::GetDeviceSize(const std::string& device_path) {
|
| - chromeos::disks::DiskMountManager* disk_mount_manager =
|
| - chromeos::disks::DiskMountManager::GetInstance();
|
| - const chromeos::disks::DiskMountManager::DiskMap& disks =
|
| - disk_mount_manager->disks();
|
| + DiskMountManager* disk_mount_manager = DiskMountManager::GetInstance();
|
| + const DiskMountManager::DiskMap& disks = disk_mount_manager->disks();
|
| return disks.find(device_path)->second->total_size_in_bytes();
|
| }
|
|
|
|
|