| 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 |