Chromium Code Reviews| 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 672dfd0cd473fcd73466527ef68deca97eed039d..c9fc71b3ab0030dc22321d67158448e263d8c22b 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) { |
|
achuithb
2012/01/23 22:17:17
might be nicer to use const DiskMountManager::Disk
tbarzic
2012/01/23 22:42:40
Done.
|
| + 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) { |
|
achuithb
2012/01/23 22:17:17
Disk&?
tbarzic
2012/01/23 22:42:40
This is DiskMountManager observer method, so I wou
|
| + 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(); |
| } |