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

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

Issue 8667001: Fix Bind usage in imageburner. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' 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
« no previous file with comments | « no previous file | chrome/browser/ui/webui/chromeos/imageburner/webui_handler.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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
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
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
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
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
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 }
OLDNEW
« no previous file with comments | « no previous file | chrome/browser/ui/webui/chromeos/imageburner/webui_handler.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698