Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(4492)

Unified Diff: chrome/browser/ui/webui/chromeos/imageburner/imageburner_ui.cc

Issue 9019002: [CrosDisksClient] Determine device type from DeviceMediaType property sent by cros-disks. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: little error in imageburner Created 8 years, 11 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();
}

Powered by Google App Engine
This is Rietveld 408576698