Chromium Code Reviews| 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 |
| 7 #include <string> | |
| 8 #include <vector> | |
| 7 | 9 |
| 8 #include "base/bind.h" | 10 #include "base/bind.h" |
| 9 #include "base/bind_helpers.h" | 11 #include "base/bind_helpers.h" |
| 10 #include "base/i18n/rtl.h" | 12 #include "base/i18n/rtl.h" |
| 11 #include "base/message_loop.h" | 13 #include "base/message_loop.h" |
| 12 #include "base/task.h" | |
| 13 #include "base/utf_string_conversions.h" | 14 #include "base/utf_string_conversions.h" |
| 14 #include "base/values.h" | 15 #include "base/values.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" |
| 18 #include "chrome/browser/ui/webui/chromeos/imageburner/webui_handler.h" | |
| 17 #include "chrome/browser/ui/webui/chrome_web_ui_data_source.h" | 19 #include "chrome/browser/ui/webui/chrome_web_ui_data_source.h" |
| 18 #include "chrome/common/jstemplate_builder.h" | 20 #include "chrome/common/jstemplate_builder.h" |
| 19 #include "chrome/common/time_format.h" | 21 #include "chrome/common/time_format.h" |
| 20 #include "chrome/common/url_constants.h" | 22 #include "chrome/common/url_constants.h" |
| 21 #include "content/public/browser/browser_thread.h" | 23 #include "content/public/browser/browser_thread.h" |
| 22 #include "grit/browser_resources.h" | 24 #include "grit/browser_resources.h" |
| 23 #include "grit/generated_resources.h" | 25 #include "grit/generated_resources.h" |
| 24 #include "grit/locale_settings.h" | 26 #include "grit/locale_settings.h" |
| 25 #include "ui/base/l10n/l10n_util.h" | 27 #include "ui/base/l10n/l10n_util.h" |
| 26 #include "ui/base/resource/resource_bundle.h" | 28 #include "ui/base/resource/resource_bundle.h" |
| (...skipping 13 matching lines...) Expand all Loading... | |
| 40 | 42 |
| 41 // 3.9GB. It is less than 4GB because true device size ussually varies a little. | 43 // 3.9GB. It is less than 4GB because true device size ussually varies a little. |
| 42 const uint64 kMinDeviceSize = static_cast<uint64>(3.9) * 1000 * 1000 * 1000; | 44 const uint64 kMinDeviceSize = static_cast<uint64>(3.9) * 1000 * 1000 * 1000; |
| 43 | 45 |
| 44 // Link displayed on imageburner ui. | 46 // Link displayed on imageburner ui. |
| 45 const char kMoreInfoLink[] = | 47 const char kMoreInfoLink[] = |
| 46 "http://www.chromium.org/chromium-os/chromiumos-design-docs/recovery-mode"; | 48 "http://www.chromium.org/chromium-os/chromiumos-design-docs/recovery-mode"; |
| 47 | 49 |
| 48 namespace { | 50 namespace { |
| 49 | 51 |
| 50 ChromeWebUIDataSource *CreateImageburnerUIHTMLSource() { | 52 ChromeWebUIDataSource* CreateImageburnerUIHTMLSource() { |
| 51 ChromeWebUIDataSource *source = | 53 ChromeWebUIDataSource* source = |
| 52 new ChromeWebUIDataSource(chrome::kChromeUIImageBurnerHost); | 54 new ChromeWebUIDataSource(chrome::kChromeUIImageBurnerHost); |
| 53 | 55 |
| 54 source->AddLocalizedString("headerTitle", IDS_IMAGEBURN_HEADER_TITLE); | 56 source->AddLocalizedString("headerTitle", IDS_IMAGEBURN_HEADER_TITLE); |
| 55 source->AddLocalizedString("headerDescription", | 57 source->AddLocalizedString("headerDescription", |
| 56 IDS_IMAGEBURN_HEADER_DESCRIPTION); | 58 IDS_IMAGEBURN_HEADER_DESCRIPTION); |
| 57 source->AddLocalizedString("headerLink", IDS_IMAGEBURN_HEADER_LINK); | 59 source->AddLocalizedString("headerLink", IDS_IMAGEBURN_HEADER_LINK); |
| 58 source->AddLocalizedString("statusDevicesNone", | 60 source->AddLocalizedString("statusDevicesNone", |
| 59 IDS_IMAGEBURN_NO_DEVICES_STATUS); | 61 IDS_IMAGEBURN_NO_DEVICES_STATUS); |
| 60 source->AddLocalizedString("warningDevicesNone", | 62 source->AddLocalizedString("warningDevicesNone", |
| 61 IDS_IMAGEBURN_NO_DEVICES_WARNING); | 63 IDS_IMAGEBURN_NO_DEVICES_WARNING); |
| (...skipping 82 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 144 if (state_machine_) | 146 if (state_machine_) |
| 145 state_machine_->RemoveObserver(this); | 147 state_machine_->RemoveObserver(this); |
| 146 } | 148 } |
| 147 | 149 |
| 148 WebUIMessageHandler* WebUIHandler::Attach(WebUI* web_ui) { | 150 WebUIMessageHandler* WebUIHandler::Attach(WebUI* web_ui) { |
| 149 return WebUIMessageHandler::Attach(web_ui); | 151 return WebUIMessageHandler::Attach(web_ui); |
| 150 } | 152 } |
| 151 | 153 |
| 152 void WebUIHandler::RegisterMessages() { | 154 void WebUIHandler::RegisterMessages() { |
| 153 web_ui_->RegisterMessageCallback("getDevices", | 155 web_ui_->RegisterMessageCallback("getDevices", |
| 154 base::Bind(&WebUIHandler::HandleGetDevices, base::Unretained(this))); | 156 base::Bind(&WebUIHandler::HandleGetDevices, |
| 157 base::SupportsWeakPtr<WebUIHandler>::AsWeakPtr())); | |
| 155 web_ui_->RegisterMessageCallback("burnImage", | 158 web_ui_->RegisterMessageCallback("burnImage", |
| 156 base::Bind(&WebUIHandler::HandleBurnImage, base::Unretained(this))); | 159 base::Bind(&WebUIHandler::HandleBurnImage, |
| 160 base::SupportsWeakPtr<WebUIHandler>::AsWeakPtr())); | |
| 157 web_ui_->RegisterMessageCallback("cancelBurnImage", | 161 web_ui_->RegisterMessageCallback("cancelBurnImage", |
| 158 base::Bind(&WebUIHandler::HandleCancelBurnImage, base::Unretained(this))); | 162 base::Bind(&WebUIHandler::HandleCancelBurnImage, |
| 163 base::SupportsWeakPtr<WebUIHandler>::AsWeakPtr())); | |
| 159 web_ui_->RegisterMessageCallback("webuiInitialized", | 164 web_ui_->RegisterMessageCallback("webuiInitialized", |
| 160 base::Bind(&WebUIHandler::HandleWebUIInitialized, | 165 base::Bind(&WebUIHandler::HandleWebUIInitialized, |
| 161 base::Unretained(this))); | 166 base::SupportsWeakPtr<WebUIHandler>::AsWeakPtr())); |
| 162 } | 167 } |
|
csilv
2011/11/23 01:39:02
As discussed in http://codereview.chromium.org/811
achuithb
2011/11/23 19:43:29
Done.
| |
| 163 | 168 |
| 164 void WebUIHandler::DiskChanged( | 169 void WebUIHandler::DiskChanged( |
| 165 chromeos::disks::DiskMountManagerEventType event, | 170 chromeos::disks::DiskMountManagerEventType event, |
| 166 const chromeos::disks::DiskMountManager::Disk* disk) { | 171 const chromeos::disks::DiskMountManager::Disk* disk) { |
| 167 if (!disk->is_parent() || disk->on_boot_device()) | 172 if (!disk->is_parent() || disk->on_boot_device()) |
| 168 return; | 173 return; |
| 169 if (event == chromeos::disks::MOUNT_DISK_ADDED) { | 174 if (event == chromeos::disks::MOUNT_DISK_ADDED) { |
| 170 DictionaryValue disk_value; | 175 DictionaryValue disk_value; |
| 171 CreateDiskValue(*disk, &disk_value); | 176 CreateDiskValue(*disk, &disk_value); |
| 172 web_ui_->CallJavascriptFunction("browserBridge.deviceAdded", disk_value); | 177 web_ui_->CallJavascriptFunction("browserBridge.deviceAdded", disk_value); |
| (...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 352 return; | 357 return; |
| 353 working_ = true; | 358 working_ = true; |
| 354 // Send progress signal now so ui doesn't hang in intial state until we get | 359 // Send progress signal now so ui doesn't hang in intial state until we get |
| 355 // config file | 360 // config file |
| 356 SendProgressSignal(DOWNLOAD, 0, 0, NULL); | 361 SendProgressSignal(DOWNLOAD, 0, 0, NULL); |
| 357 if (burn_manager_->GetImageDir().empty()) { | 362 if (burn_manager_->GetImageDir().empty()) { |
| 358 // Create image dir on File thread. | 363 // Create image dir on File thread. |
| 359 scoped_refptr<WebUIHandlerTaskProxy> task = new WebUIHandlerTaskProxy(this); | 364 scoped_refptr<WebUIHandlerTaskProxy> task = new WebUIHandlerTaskProxy(this); |
| 360 BrowserThread::PostTask( | 365 BrowserThread::PostTask( |
| 361 BrowserThread::FILE, FROM_HERE, | 366 BrowserThread::FILE, FROM_HERE, |
| 362 NewRunnableMethod(task.get(), &WebUIHandlerTaskProxy::CreateImageDir)); | 367 base::Bind(&WebUIHandlerTaskProxy::CreateImageDir, task)); |
|
csilv
2011/11/23 01:39:02
You'll still want to use task.get() here.
achuithb
2011/11/23 19:43:29
Done.
| |
| 363 } else { | 368 } else { |
| 364 ImageDirCreatedOnUIThread(true); | 369 ImageDirCreatedOnUIThread(true); |
| 365 } | 370 } |
| 366 } | 371 } |
| 367 | 372 |
| 368 void WebUIHandler::CreateImageDirOnFileThread() { | 373 void WebUIHandler::CreateImageDirOnFileThread() { |
| 369 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 374 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
| 370 burn_manager_->CreateImageDir(this); | 375 burn_manager_->CreateImageDir(this); |
| 371 } | 376 } |
| 372 | 377 |
| 373 void WebUIHandler::OnImageDirCreated(bool success) { | 378 void WebUIHandler::OnImageDirCreated(bool success) { |
| 374 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); | 379 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::FILE)); |
| 375 // Transfer to UI thread. | 380 // Transfer to UI thread. |
| 376 scoped_refptr<WebUIHandlerTaskProxy> task = new WebUIHandlerTaskProxy(this); | 381 scoped_refptr<WebUIHandlerTaskProxy> task = new WebUIHandlerTaskProxy(this); |
| 377 BrowserThread::PostTask( | 382 BrowserThread::PostTask( |
| 378 BrowserThread::UI, FROM_HERE, | 383 BrowserThread::UI, FROM_HERE, |
| 379 NewRunnableMethod(task.get(), &WebUIHandlerTaskProxy::OnImageDirCreated, | 384 base::Bind(&WebUIHandlerTaskProxy::OnImageDirCreated, task, success)); |
|
csilv
2011/11/23 01:39:02
task.get()
achuithb
2011/11/23 19:43:29
Done.
| |
| 380 success)); | |
| 381 } | 385 } |
| 382 | 386 |
| 383 void WebUIHandler::ImageDirCreatedOnUIThread(bool success) { | 387 void WebUIHandler::ImageDirCreatedOnUIThread(bool success) { |
| 384 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); | 388 DCHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); |
| 385 if (success) { | 389 if (success) { |
| 386 zip_image_file_path_ = | 390 zip_image_file_path_ = |
| 387 burn_manager_->GetImageDir().Append(kImageZipFileName); | 391 burn_manager_->GetImageDir().Append(kImageZipFileName); |
| 388 burn_manager_->FetchConfigFile(tab_contents_, this); | 392 burn_manager_->FetchConfigFile(tab_contents_, this); |
| 389 } else { | 393 } else { |
| 390 DownloadCompleted(success); | 394 DownloadCompleted(success); |
| (...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 638 //////////////////////////////////////////////////////////////////////////////// | 642 //////////////////////////////////////////////////////////////////////////////// |
| 639 | 643 |
| 640 ImageBurnUI::ImageBurnUI(TabContents* contents) : ChromeWebUI(contents) { | 644 ImageBurnUI::ImageBurnUI(TabContents* contents) : ChromeWebUI(contents) { |
| 641 imageburner::WebUIHandler* handler = new imageburner::WebUIHandler(contents); | 645 imageburner::WebUIHandler* handler = new imageburner::WebUIHandler(contents); |
| 642 AddMessageHandler((handler)->Attach(this)); | 646 AddMessageHandler((handler)->Attach(this)); |
| 643 | 647 |
| 644 Profile* profile = Profile::FromBrowserContext(contents->browser_context()); | 648 Profile* profile = Profile::FromBrowserContext(contents->browser_context()); |
| 645 profile->GetChromeURLDataManager()->AddDataSource( | 649 profile->GetChromeURLDataManager()->AddDataSource( |
| 646 CreateImageburnerUIHTMLSource()); | 650 CreateImageburnerUIHTMLSource()); |
| 647 } | 651 } |
| OLD | NEW |