| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 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/help/help_handler.h" | 5 #include "chrome/browser/ui/webui/help/help_handler.h" |
| 6 | 6 |
| 7 #include <string> | 7 #include <string> |
| 8 | 8 |
| 9 #include "base/basictypes.h" | 9 #include "base/basictypes.h" |
| 10 #include "base/bind.h" | 10 #include "base/bind.h" |
| (...skipping 30 matching lines...) Expand all Loading... |
| 41 | 41 |
| 42 #if defined(OS_CHROMEOS) | 42 #if defined(OS_CHROMEOS) |
| 43 #include "base/files/file_util_proxy.h" | 43 #include "base/files/file_util_proxy.h" |
| 44 #include "base/i18n/time_formatting.h" | 44 #include "base/i18n/time_formatting.h" |
| 45 #include "base/prefs/pref_service.h" | 45 #include "base/prefs/pref_service.h" |
| 46 #include "base/sys_info.h" | 46 #include "base/sys_info.h" |
| 47 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" | 47 #include "chrome/browser/chromeos/policy/browser_policy_connector_chromeos.h" |
| 48 #include "chrome/browser/chromeos/settings/cros_settings.h" | 48 #include "chrome/browser/chromeos/settings/cros_settings.h" |
| 49 #include "chrome/browser/profiles/profile.h" | 49 #include "chrome/browser/profiles/profile.h" |
| 50 #include "chrome/browser/ui/webui/help/help_utils_chromeos.h" | 50 #include "chrome/browser/ui/webui/help/help_utils_chromeos.h" |
| 51 #include "chrome/browser/ui/webui/help/version_updater_chromeos.h" |
| 51 #include "chromeos/chromeos_switches.h" | 52 #include "chromeos/chromeos_switches.h" |
| 52 #include "chromeos/dbus/dbus_thread_manager.h" | 53 #include "chromeos/dbus/dbus_thread_manager.h" |
| 53 #include "chromeos/dbus/power_manager_client.h" | 54 #include "chromeos/dbus/power_manager_client.h" |
| 54 #include "components/user_manager/user_manager.h" | 55 #include "components/user_manager/user_manager.h" |
| 55 #endif | 56 #endif |
| 56 | 57 |
| 57 using base::ListValue; | 58 using base::ListValue; |
| 58 using content::BrowserThread; | 59 using content::BrowserThread; |
| 59 | 60 |
| 60 namespace { | 61 namespace { |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 136 { "aboutProductDescription", IDS_ABOUT_PRODUCT_DESCRIPTION }, | 137 { "aboutProductDescription", IDS_ABOUT_PRODUCT_DESCRIPTION }, |
| 137 { "relaunch", IDS_RELAUNCH_BUTTON }, | 138 { "relaunch", IDS_RELAUNCH_BUTTON }, |
| 138 #if defined(OS_CHROMEOS) | 139 #if defined(OS_CHROMEOS) |
| 139 { "relaunchAndPowerwash", IDS_RELAUNCH_AND_POWERWASH_BUTTON }, | 140 { "relaunchAndPowerwash", IDS_RELAUNCH_AND_POWERWASH_BUTTON }, |
| 140 #endif | 141 #endif |
| 141 { "productName", IDS_PRODUCT_NAME }, | 142 { "productName", IDS_PRODUCT_NAME }, |
| 142 { "updateCheckStarted", IDS_UPGRADE_CHECK_STARTED }, | 143 { "updateCheckStarted", IDS_UPGRADE_CHECK_STARTED }, |
| 143 { "upToDate", IDS_UPGRADE_UP_TO_DATE }, | 144 { "upToDate", IDS_UPGRADE_UP_TO_DATE }, |
| 144 { "updating", IDS_UPGRADE_UPDATING }, | 145 { "updating", IDS_UPGRADE_UPDATING }, |
| 145 #if defined(OS_CHROMEOS) | 146 #if defined(OS_CHROMEOS) |
| 147 { "updateButton", IDS_UPGRADE_BUTTON }, |
| 146 { "updatingChannelSwitch", IDS_UPGRADE_UPDATING_CHANNEL_SWITCH }, | 148 { "updatingChannelSwitch", IDS_UPGRADE_UPDATING_CHANNEL_SWITCH }, |
| 147 #endif | 149 #endif |
| 148 { "updateAlmostDone", IDS_UPGRADE_SUCCESSFUL_RELAUNCH }, | 150 { "updateAlmostDone", IDS_UPGRADE_SUCCESSFUL_RELAUNCH }, |
| 149 #if defined(OS_CHROMEOS) | 151 #if defined(OS_CHROMEOS) |
| 150 { "successfulChannelSwitch", IDS_UPGRADE_SUCCESSFUL_CHANNEL_SWITCH }, | 152 { "successfulChannelSwitch", IDS_UPGRADE_SUCCESSFUL_CHANNEL_SWITCH }, |
| 151 #endif | 153 #endif |
| 152 { "getHelpWithChrome", IDS_GET_HELP_USING_CHROME }, | 154 { "getHelpWithChrome", IDS_GET_HELP_USING_CHROME }, |
| 153 { "reportAnIssue", IDS_REPORT_AN_ISSUE }, | 155 { "reportAnIssue", IDS_REPORT_AN_ISSUE }, |
| 154 #if defined(OS_CHROMEOS) | 156 #if defined(OS_CHROMEOS) |
| 155 { "platform", IDS_PLATFORM_LABEL }, | 157 { "platform", IDS_PLATFORM_LABEL }, |
| (...skipping 120 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 276 base::Bind(&HelpHandler::RelaunchNow, base::Unretained(this))); | 278 base::Bind(&HelpHandler::RelaunchNow, base::Unretained(this))); |
| 277 web_ui()->RegisterMessageCallback("openFeedbackDialog", | 279 web_ui()->RegisterMessageCallback("openFeedbackDialog", |
| 278 base::Bind(&HelpHandler::OpenFeedbackDialog, base::Unretained(this))); | 280 base::Bind(&HelpHandler::OpenFeedbackDialog, base::Unretained(this))); |
| 279 web_ui()->RegisterMessageCallback("openHelpPage", | 281 web_ui()->RegisterMessageCallback("openHelpPage", |
| 280 base::Bind(&HelpHandler::OpenHelpPage, base::Unretained(this))); | 282 base::Bind(&HelpHandler::OpenHelpPage, base::Unretained(this))); |
| 281 #if defined(OS_CHROMEOS) | 283 #if defined(OS_CHROMEOS) |
| 282 web_ui()->RegisterMessageCallback("setChannel", | 284 web_ui()->RegisterMessageCallback("setChannel", |
| 283 base::Bind(&HelpHandler::SetChannel, base::Unretained(this))); | 285 base::Bind(&HelpHandler::SetChannel, base::Unretained(this))); |
| 284 web_ui()->RegisterMessageCallback("relaunchAndPowerwash", | 286 web_ui()->RegisterMessageCallback("relaunchAndPowerwash", |
| 285 base::Bind(&HelpHandler::RelaunchAndPowerwash, base::Unretained(this))); | 287 base::Bind(&HelpHandler::RelaunchAndPowerwash, base::Unretained(this))); |
| 288 web_ui()->RegisterMessageCallback("requestUpdate", |
| 289 base::Bind(&HelpHandler::RequestUpdate, base::Unretained(this))); |
| 286 #endif | 290 #endif |
| 287 #if defined(OS_MACOSX) | 291 #if defined(OS_MACOSX) |
| 288 web_ui()->RegisterMessageCallback("promoteUpdater", | 292 web_ui()->RegisterMessageCallback("promoteUpdater", |
| 289 base::Bind(&HelpHandler::PromoteUpdater, base::Unretained(this))); | 293 base::Bind(&HelpHandler::PromoteUpdater, base::Unretained(this))); |
| 290 #endif | 294 #endif |
| 291 } | 295 } |
| 292 | 296 |
| 293 void HelpHandler::Observe(int type, const content::NotificationSource& source, | 297 void HelpHandler::Observe(int type, const content::NotificationSource& source, |
| 294 const content::NotificationDetails& details) { | 298 const content::NotificationDetails& details) { |
| 295 switch (type) { | 299 switch (type) { |
| 296 case chrome::NOTIFICATION_UPGRADE_RECOMMENDED: { | 300 case chrome::NOTIFICATION_UPGRADE_RECOMMENDED: { |
| 297 // A version update is installed and ready to go. Refresh the UI so the | 301 // A version update is installed and ready to go. Refresh the UI so the |
| 298 // correct state will be shown. | 302 // correct state will be shown. |
| 299 version_updater_->CheckForUpdate( | 303 RequestUpdate(NULL); |
| 300 base::Bind(&HelpHandler::SetUpdateStatus, base::Unretained(this)) | |
| 301 #if defined(OS_MACOSX) | |
| 302 , base::Bind(&HelpHandler::SetPromotionState, base::Unretained(this)) | |
| 303 #endif | |
| 304 ); | |
| 305 break; | 304 break; |
| 306 } | 305 } |
| 307 default: | 306 default: |
| 308 NOTREACHED(); | 307 NOTREACHED(); |
| 309 } | 308 } |
| 310 } | 309 } |
| 311 | 310 |
| 312 // static | 311 // static |
| 313 base::string16 HelpHandler::BuildBrowserVersionString() { | 312 base::string16 HelpHandler::BuildBrowserVersionString() { |
| 314 chrome::VersionInfo version_info; | 313 chrome::VersionInfo version_info; |
| (...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 347 web_ui()->CallJavascriptFunction( | 346 web_ui()->CallJavascriptFunction( |
| 348 "help.HelpPage.updateEnableReleaseChannel", | 347 "help.HelpPage.updateEnableReleaseChannel", |
| 349 base::FundamentalValue(CanChangeChannel())); | 348 base::FundamentalValue(CanChangeChannel())); |
| 350 | 349 |
| 351 base::Time build_time = base::SysInfo::GetLsbReleaseTime(); | 350 base::Time build_time = base::SysInfo::GetLsbReleaseTime(); |
| 352 base::string16 build_date = base::TimeFormatFriendlyDate(build_time); | 351 base::string16 build_date = base::TimeFormatFriendlyDate(build_time); |
| 353 web_ui()->CallJavascriptFunction("help.HelpPage.setBuildDate", | 352 web_ui()->CallJavascriptFunction("help.HelpPage.setBuildDate", |
| 354 base::StringValue(build_date)); | 353 base::StringValue(build_date)); |
| 355 #endif // defined(OS_CHROMEOS) | 354 #endif // defined(OS_CHROMEOS) |
| 356 | 355 |
| 357 version_updater_->CheckForUpdate( | 356 // On Chrome OS, do not check for an update automatically. |
| 358 base::Bind(&HelpHandler::SetUpdateStatus, base::Unretained(this)) | 357 #if defined(OS_CHROMEOS) |
| 359 #if defined(OS_MACOSX) | 358 static_cast<VersionUpdaterCros*>(version_updater_.get())->GetUpdateStatus( |
| 360 , base::Bind(&HelpHandler::SetPromotionState, base::Unretained(this)) | 359 base::Bind(&HelpHandler::SetUpdateStatus, base::Unretained(this))); |
| 360 #else |
| 361 RequestUpdate(NULL); |
| 361 #endif | 362 #endif |
| 362 ); | |
| 363 | 363 |
| 364 #if defined(OS_MACOSX) | 364 #if defined(OS_MACOSX) |
| 365 web_ui()->CallJavascriptFunction( | 365 web_ui()->CallJavascriptFunction( |
| 366 "help.HelpPage.setObsoleteSystem", | 366 "help.HelpPage.setObsoleteSystem", |
| 367 base::FundamentalValue(ObsoleteSystemMac::Is32BitObsoleteNowOrSoon() && | 367 base::FundamentalValue(ObsoleteSystemMac::Is32BitObsoleteNowOrSoon() && |
| 368 ObsoleteSystemMac::Has32BitOnlyCPU())); | 368 ObsoleteSystemMac::Has32BitOnlyCPU())); |
| 369 web_ui()->CallJavascriptFunction( | 369 web_ui()->CallJavascriptFunction( |
| 370 "help.HelpPage.setObsoleteSystemEndOfTheLine", | 370 "help.HelpPage.setObsoleteSystemEndOfTheLine", |
| 371 base::FundamentalValue(ObsoleteSystemMac::Is32BitObsoleteNowOrSoon() && | 371 base::FundamentalValue(ObsoleteSystemMac::Is32BitObsoleteNowOrSoon() && |
| 372 ObsoleteSystemMac::Is32BitEndOfTheLine())); | 372 ObsoleteSystemMac::Is32BitEndOfTheLine())); |
| (...skipping 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 448 prefs->SetBoolean(prefs::kFactoryResetRequested, true); | 448 prefs->SetBoolean(prefs::kFactoryResetRequested, true); |
| 449 prefs->CommitPendingWrite(); | 449 prefs->CommitPendingWrite(); |
| 450 | 450 |
| 451 // Perform sign out. Current chrome process will then terminate, new one will | 451 // Perform sign out. Current chrome process will then terminate, new one will |
| 452 // be launched (as if it was a restart). | 452 // be launched (as if it was a restart). |
| 453 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); | 453 chromeos::DBusThreadManager::Get()->GetPowerManagerClient()->RequestRestart(); |
| 454 } | 454 } |
| 455 | 455 |
| 456 #endif // defined(OS_CHROMEOS) | 456 #endif // defined(OS_CHROMEOS) |
| 457 | 457 |
| 458 void HelpHandler::RequestUpdate(const base::ListValue* args) { |
| 459 version_updater_->CheckForUpdate( |
| 460 base::Bind(&HelpHandler::SetUpdateStatus, base::Unretained(this)) |
| 461 #if defined(OS_MACOSX) |
| 462 , base::Bind(&HelpHandler::SetPromotionState, base::Unretained(this)) |
| 463 #endif |
| 464 ); |
| 465 } |
| 466 |
| 458 void HelpHandler::SetUpdateStatus(VersionUpdater::Status status, | 467 void HelpHandler::SetUpdateStatus(VersionUpdater::Status status, |
| 459 int progress, const base::string16& message) { | 468 int progress, const base::string16& message) { |
| 460 // Only UPDATING state should have progress set. | 469 // Only UPDATING state should have progress set. |
| 461 DCHECK(status == VersionUpdater::UPDATING || progress == 0); | 470 DCHECK(status == VersionUpdater::UPDATING || progress == 0); |
| 462 | 471 |
| 463 std::string status_str; | 472 std::string status_str; |
| 464 switch (status) { | 473 switch (status) { |
| 465 case VersionUpdater::CHECKING: | 474 case VersionUpdater::CHECKING: |
| 466 status_str = "checking"; | 475 status_str = "checking"; |
| 467 break; | 476 break; |
| (...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 549 web_ui()->CallJavascriptFunction( | 558 web_ui()->CallJavascriptFunction( |
| 550 "help.HelpPage.updateCurrentChannel", base::StringValue(channel)); | 559 "help.HelpPage.updateCurrentChannel", base::StringValue(channel)); |
| 551 } | 560 } |
| 552 | 561 |
| 553 void HelpHandler::OnTargetChannel(const std::string& channel) { | 562 void HelpHandler::OnTargetChannel(const std::string& channel) { |
| 554 web_ui()->CallJavascriptFunction( | 563 web_ui()->CallJavascriptFunction( |
| 555 "help.HelpPage.updateTargetChannel", base::StringValue(channel)); | 564 "help.HelpPage.updateTargetChannel", base::StringValue(channel)); |
| 556 } | 565 } |
| 557 | 566 |
| 558 #endif // defined(OS_CHROMEOS) | 567 #endif // defined(OS_CHROMEOS) |
| OLD | NEW |