OLD | NEW |
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 Loading... |
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 Loading... |
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 Loading... |
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 } |
OLD | NEW |