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

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

Issue 8386031: Move chromeos_mount.cc from libcros to Chrome tree (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Cleaned up format Created 9 years, 1 month 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "chrome/browser/ui/webui/chromeos/imageburner/imageburner_ui.h" 5 #include "chrome/browser/ui/webui/chromeos/imageburner/imageburner_ui.h"
6 #include "chrome/browser/ui/webui/chromeos/imageburner/webui_handler.h" 6 #include "chrome/browser/ui/webui/chromeos/imageburner/webui_handler.h"
7 7
8 #include "base/bind.h" 8 #include "base/bind.h"
9 #include "base/bind_helpers.h" 9 #include "base/bind_helpers.h"
10 #include "base/i18n/rtl.h" 10 #include "base/i18n/rtl.h"
11 #include "base/message_loop.h" 11 #include "base/message_loop.h"
12 #include "base/task.h" 12 #include "base/task.h"
13 #include "base/utf_string_conversions.h" 13 #include "base/utf_string_conversions.h"
14 #include "base/values.h" 14 #include "base/values.h"
15 #include "chrome/browser/chromeos/dbus/dbus_thread_manager.h"
15 #include "chrome/browser/chromeos/system/statistics_provider.h" 16 #include "chrome/browser/chromeos/system/statistics_provider.h"
16 #include "chrome/browser/profiles/profile.h" 17 #include "chrome/browser/profiles/profile.h"
17 #include "chrome/browser/ui/webui/chrome_web_ui_data_source.h" 18 #include "chrome/browser/ui/webui/chrome_web_ui_data_source.h"
18 #include "chrome/common/jstemplate_builder.h" 19 #include "chrome/common/jstemplate_builder.h"
19 #include "chrome/common/time_format.h" 20 #include "chrome/common/time_format.h"
20 #include "chrome/common/url_constants.h" 21 #include "chrome/common/url_constants.h"
21 #include "content/public/browser/browser_thread.h" 22 #include "content/public/browser/browser_thread.h"
22 #include "grit/browser_resources.h" 23 #include "grit/browser_resources.h"
23 #include "grit/generated_resources.h" 24 #include "grit/generated_resources.h"
24 #include "grit/locale_settings.h" 25 #include "grit/locale_settings.h"
(...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after
119 //////////////////////////////////////////////////////////////////////////////// 120 ////////////////////////////////////////////////////////////////////////////////
120 121
121 WebUIHandler::WebUIHandler(TabContents* contents) 122 WebUIHandler::WebUIHandler(TabContents* contents)
122 : tab_contents_(contents), 123 : tab_contents_(contents),
123 download_manager_(NULL), 124 download_manager_(NULL),
124 active_download_item_(NULL), 125 active_download_item_(NULL),
125 burn_manager_(NULL), 126 burn_manager_(NULL),
126 state_machine_(NULL), 127 state_machine_(NULL),
127 observing_burn_lib_(false), 128 observing_burn_lib_(false),
128 working_(false) { 129 working_(false) {
129 chromeos::CrosLibrary::Get()->GetMountLibrary()->AddObserver(this); 130 chromeos::DBusThreadManager::Get()->GetCrosDisksClient()->AddObserver(this);
130 chromeos::CrosLibrary::Get()->GetNetworkLibrary()-> 131 chromeos::CrosLibrary::Get()->GetNetworkLibrary()->
131 AddNetworkManagerObserver(this); 132 AddNetworkManagerObserver(this);
132 burn_manager_ = BurnManager::GetInstance(); 133 burn_manager_ = BurnManager::GetInstance();
133 state_machine_ = burn_manager_->state_machine(); 134 state_machine_ = burn_manager_->state_machine();
134 state_machine_->AddObserver(this); 135 state_machine_->AddObserver(this);
135 } 136 }
136 137
137 WebUIHandler::~WebUIHandler() { 138 WebUIHandler::~WebUIHandler() {
138 chromeos::CrosLibrary::Get()->GetMountLibrary()->RemoveObserver(this); 139 chromeos::DBusThreadManager::Get()->GetCrosDisksClient()->
140 RemoveObserver(this);
139 chromeos::CrosLibrary::Get()->GetBurnLibrary()->RemoveObserver(this); 141 chromeos::CrosLibrary::Get()->GetBurnLibrary()->RemoveObserver(this);
140 chromeos::CrosLibrary::Get()->GetNetworkLibrary()-> 142 chromeos::CrosLibrary::Get()->GetNetworkLibrary()->
141 RemoveNetworkManagerObserver(this); 143 RemoveNetworkManagerObserver(this);
142 CleanupDownloadObjects(); 144 CleanupDownloadObjects();
143 if (state_machine_) 145 if (state_machine_)
144 state_machine_->RemoveObserver(this); 146 state_machine_->RemoveObserver(this);
145 } 147 }
146 148
147 WebUIMessageHandler* WebUIHandler::Attach(WebUI* web_ui) { 149 WebUIMessageHandler* WebUIHandler::Attach(WebUI* web_ui) {
148 return WebUIMessageHandler::Attach(web_ui); 150 return WebUIMessageHandler::Attach(web_ui);
149 } 151 }
150 152
151 void WebUIHandler::RegisterMessages() { 153 void WebUIHandler::RegisterMessages() {
152 web_ui_->RegisterMessageCallback("getDevices", 154 web_ui_->RegisterMessageCallback("getDevices",
153 base::Bind(&WebUIHandler::HandleGetDevices, base::Unretained(this))); 155 base::Bind(&WebUIHandler::HandleGetDevices, base::Unretained(this)));
154 web_ui_->RegisterMessageCallback("burnImage", 156 web_ui_->RegisterMessageCallback("burnImage",
155 base::Bind(&WebUIHandler::HandleBurnImage, base::Unretained(this))); 157 base::Bind(&WebUIHandler::HandleBurnImage, base::Unretained(this)));
156 web_ui_->RegisterMessageCallback("cancelBurnImage", 158 web_ui_->RegisterMessageCallback("cancelBurnImage",
157 base::Bind(&WebUIHandler::HandleCancelBurnImage, base::Unretained(this))); 159 base::Bind(&WebUIHandler::HandleCancelBurnImage, base::Unretained(this)));
158 web_ui_->RegisterMessageCallback("webuiInitialized", 160 web_ui_->RegisterMessageCallback("webuiInitialized",
159 base::Bind(&WebUIHandler::HandleWebUIInitialized, 161 base::Bind(&WebUIHandler::HandleWebUIInitialized,
160 base::Unretained(this))); 162 base::Unretained(this)));
161 } 163 }
162 164
163 void WebUIHandler::DiskChanged(chromeos::MountLibraryEventType event, 165 void WebUIHandler::DiskChanged(chromeos::CrosDisksClientEventType event,
164 const chromeos::MountLibrary::Disk* disk) { 166 const chromeos::CrosDisksClient::Disk* disk) {
165 if (!disk->is_parent() || disk->on_boot_device()) 167 if (!disk->is_parent() || disk->on_boot_device())
166 return; 168 return;
167 if (event == chromeos::MOUNT_DISK_ADDED) { 169 if (event == chromeos::MOUNT_DISK_ADDED) {
168 DictionaryValue disk_value; 170 DictionaryValue disk_value;
169 CreateDiskValue(*disk, &disk_value); 171 CreateDiskValue(*disk, &disk_value);
170 web_ui_->CallJavascriptFunction("browserBridge.deviceAdded", disk_value); 172 web_ui_->CallJavascriptFunction("browserBridge.deviceAdded", disk_value);
171 } else if (event == chromeos::MOUNT_DISK_REMOVED) { 173 } else if (event == chromeos::MOUNT_DISK_REMOVED) {
172 StringValue device_path_value(disk->device_path()); 174 StringValue device_path_value(disk->device_path());
173 web_ui_->CallJavascriptFunction("browserBridge.deviceRemoved", 175 web_ui_->CallJavascriptFunction("browserBridge.deviceRemoved",
174 device_path_value); 176 device_path_value);
175 if (burn_manager_->target_device_path().value() == 177 if (burn_manager_->target_device_path().value() ==
176 disk->device_path()) { 178 disk->device_path()) {
177 ProcessError(IDS_IMAGEBURN_DEVICE_NOT_FOUND_ERROR); 179 ProcessError(IDS_IMAGEBURN_DEVICE_NOT_FOUND_ERROR);
178 } 180 }
179 } 181 }
180 } 182 }
181 183
182 void WebUIHandler::BurnProgressUpdated(chromeos::BurnLibrary* object, 184 void WebUIHandler::BurnProgressUpdated(chromeos::BurnLibrary* object,
183 chromeos::BurnEvent evt, 185 chromeos::BurnEvent evt,
184 const ImageBurnStatus& status) { 186 const ImageBurnStatus& status) {
185 switch (evt) { 187 switch (evt) {
186 case(chromeos::BURN_SUCCESS): 188 case(chromeos::BURN_SUCCESS):
187 FinalizeBurn(); 189 FinalizeBurn();
188 break; 190 break;
189 case(chromeos::BURN_FAIL): 191 case(chromeos::BURN_FAIL):
190 ProcessError(IDS_IMAGEBURN_BURN_ERROR); 192 ProcessError(IDS_IMAGEBURN_BURN_ERROR);
191 break; 193 break;
192 case(chromeos::BURN_UPDATE): 194 case(chromeos::BURN_UPDATE):
193 SendProgressSignal(BURN, status.amount_burnt, status.total_size, NULL); 195 SendProgressSignal(BURN, status.amount_burnt, status.total_size, NULL);
194 break; 196 break;
(...skipping 76 matching lines...) Expand 10 before | Expand all | Expand 10 after
271 HandleBurnImage(NULL); 273 HandleBurnImage(NULL);
272 } 274 }
273 } 275 }
274 276
275 void WebUIHandler::OnError(int error_message_id) { 277 void WebUIHandler::OnError(int error_message_id) {
276 StringValue error_message(l10n_util::GetStringUTF16(error_message_id)); 278 StringValue error_message(l10n_util::GetStringUTF16(error_message_id));
277 web_ui_->CallJavascriptFunction("browserBridge.reportFail", error_message); 279 web_ui_->CallJavascriptFunction("browserBridge.reportFail", error_message);
278 working_ = false; 280 working_ = false;
279 } 281 }
280 282
281 void WebUIHandler::CreateDiskValue(const chromeos::MountLibrary::Disk& disk, 283 void WebUIHandler::CreateDiskValue(const chromeos::CrosDisksClient::Disk& disk,
282 DictionaryValue* disk_value) { 284 DictionaryValue* disk_value) {
283 string16 label = ASCIIToUTF16(disk.drive_label()); 285 string16 label = ASCIIToUTF16(disk.drive_label());
284 base::i18n::AdjustStringForLocaleDirection(&label); 286 base::i18n::AdjustStringForLocaleDirection(&label);
285 disk_value->SetString(std::string(kPropertyLabel), label); 287 disk_value->SetString(std::string(kPropertyLabel), label);
286 disk_value->SetString(std::string(kPropertyFilePath), disk.file_path()); 288 disk_value->SetString(std::string(kPropertyFilePath), disk.file_path());
287 disk_value->SetString(std::string(kPropertyDevicePath), disk.device_path()); 289 disk_value->SetString(std::string(kPropertyDevicePath), disk.device_path());
288 } 290 }
289 291
290 void WebUIHandler::HandleGetDevices(const ListValue* args) { 292 void WebUIHandler::HandleGetDevices(const ListValue* args) {
291 chromeos::MountLibrary* mount_lib = 293 chromeos::CrosDisksClient* mount_lib =
292 chromeos::CrosLibrary::Get()->GetMountLibrary(); 294 chromeos::DBusThreadManager::Get()->GetCrosDisksClient();
293 const chromeos::MountLibrary::DiskMap& disks = mount_lib->disks(); 295 const chromeos::CrosDisksClient::DiskMap& disks = mount_lib->disks();
294 ListValue results_value; 296 ListValue results_value;
295 for (chromeos::MountLibrary::DiskMap::const_iterator iter = disks.begin(); 297 for (chromeos::CrosDisksClient::DiskMap::const_iterator iter = disks.begin();
296 iter != disks.end(); 298 iter != disks.end();
297 ++iter) { 299 ++iter) {
298 chromeos::MountLibrary::Disk* disk = iter->second; 300 chromeos::CrosDisksClient::Disk* disk = iter->second;
299 if (disk->is_parent() && !disk->on_boot_device()) { 301 if (disk->is_parent() && !disk->on_boot_device()) {
300 DictionaryValue* disk_value = new DictionaryValue(); 302 DictionaryValue* disk_value = new DictionaryValue();
301 CreateDiskValue(*disk, disk_value); 303 CreateDiskValue(*disk, disk_value);
302 results_value.Append(disk_value); 304 results_value.Append(disk_value);
303 } 305 }
304 } 306 }
305 web_ui_->CallJavascriptFunction("browserBridge.getDevicesCallback", 307 web_ui_->CallJavascriptFunction("browserBridge.getDevicesCallback",
306 results_value); 308 results_value);
307 } 309 }
308 310
(...skipping 297 matching lines...) Expand 10 before | Expand all | Expand 10 after
606 std::string image_dest; 608 std::string image_dest;
607 string_value->GetAsString(&image_dest); 609 string_value->GetAsString(&image_dest);
608 *device_path = FilePath(image_dest); 610 *device_path = FilePath(image_dest);
609 } else { 611 } else {
610 LOG(ERROR) << "Unable to get path string"; 612 LOG(ERROR) << "Unable to get path string";
611 device_path->clear(); 613 device_path->clear();
612 } 614 }
613 } 615 }
614 616
615 int64 WebUIHandler::GetDeviceSize(const std::string& device_path) { 617 int64 WebUIHandler::GetDeviceSize(const std::string& device_path) {
616 chromeos::MountLibrary* mount_lib = 618 chromeos::CrosDisksClient* mount_lib =
617 chromeos::CrosLibrary::Get()->GetMountLibrary(); 619 chromeos::DBusThreadManager::Get()->GetCrosDisksClient();
618 const chromeos::MountLibrary::DiskMap& disks = mount_lib->disks(); 620 const chromeos::CrosDisksClient::DiskMap& disks = mount_lib->disks();
619 return disks.find(device_path)->second->total_size(); 621 return disks.find(device_path)->second->total_size();
620 } 622 }
621 623
622 bool WebUIHandler::CheckNetwork() { 624 bool WebUIHandler::CheckNetwork() {
623 return chromeos::CrosLibrary::Get()->GetNetworkLibrary()->Connected(); 625 return chromeos::CrosLibrary::Get()->GetNetworkLibrary()->Connected();
624 } 626 }
625 627
626 } // namespace imageburner. 628 } // namespace imageburner.
627 629
628 //////////////////////////////////////////////////////////////////////////////// 630 ////////////////////////////////////////////////////////////////////////////////
629 // 631 //
630 // ImageBurnUI 632 // ImageBurnUI
631 // 633 //
632 //////////////////////////////////////////////////////////////////////////////// 634 ////////////////////////////////////////////////////////////////////////////////
633 635
634 ImageBurnUI::ImageBurnUI(TabContents* contents) : ChromeWebUI(contents) { 636 ImageBurnUI::ImageBurnUI(TabContents* contents) : ChromeWebUI(contents) {
635 imageburner::WebUIHandler* handler = new imageburner::WebUIHandler(contents); 637 imageburner::WebUIHandler* handler = new imageburner::WebUIHandler(contents);
636 AddMessageHandler((handler)->Attach(this)); 638 AddMessageHandler((handler)->Attach(this));
637 639
638 Profile* profile = Profile::FromBrowserContext(contents->browser_context()); 640 Profile* profile = Profile::FromBrowserContext(contents->browser_context());
639 profile->GetChromeURLDataManager()->AddDataSource( 641 profile->GetChromeURLDataManager()->AddDataSource(
640 CreateImageburnerUIHTMLSource()); 642 CreateImageburnerUIHTMLSource());
641 } 643 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698