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(); |
} |