Index: chrome/browser/ui/ash/system_tray_client.cc |
diff --git a/chrome/browser/ui/ash/system_tray_client.cc b/chrome/browser/ui/ash/system_tray_client.cc |
index be329e66571038c8989acefceb70d21492aa2b3c..98c8aebb7ed77181f56ba6f3dcdfed1c4e8f72b3 100644 |
--- a/chrome/browser/ui/ash/system_tray_client.cc |
+++ b/chrome/browser/ui/ash/system_tray_client.cc |
@@ -10,6 +10,7 @@ |
#include "ash/shell.h" |
#include "base/feature_list.h" |
#include "base/logging.h" |
+#include "base/memory/weak_ptr.h" |
#include "base/metrics/user_metrics.h" |
#include "chrome/browser/browser_process.h" |
#include "chrome/browser/browser_process_platform_part.h" |
@@ -61,6 +62,7 @@ |
using chromeos::BluetoothPairingDialog; |
using chromeos::DBusThreadManager; |
using chromeos::LoginState; |
+using chromeos::UpdateEngineClient; |
using device::BluetoothDevice; |
using views::Widget; |
@@ -108,6 +110,8 @@ SystemTrayClient::SystemTrayClient() : binding_(this) { |
registrar_.Add(this, chrome::NOTIFICATION_UPGRADE_RECOMMENDED, |
content::NotificationService::AllSources()); |
+ registrar_.Add(this, chrome::NOTIFICATION_UPDATE_OVER_CELLULAR_AVAILABLE, |
+ content::NotificationService::AllSources()); |
// If an upgrade is available at startup then tell ash about it. |
if (UpgradeDetector::GetInstance()->notify_upgrade()) |
@@ -178,6 +182,16 @@ ash::LoginStatus SystemTrayClient::GetUserLoginStatus() { |
return ash::LoginStatus::NOT_LOGGED_IN; |
} |
+void SystemTrayClient::RequestUpdateCheck() { |
+ base::WeakPtrFactory<SystemTrayClient> weak_ptr_factory_(this); |
+ DBusThreadManager::Get()->GetUpdateEngineClient()->RequestUpdateCheck( |
+ base::Bind(&SystemTrayClient::OnRequestUpdateCheck, |
+ weak_ptr_factory_.GetWeakPtr())); |
+} |
+ |
+void SystemTrayClient::OnRequestUpdateCheck( |
+ UpdateEngineClient::UpdateCheckResult /* result */) {} |
+ |
// static |
int SystemTrayClient::GetDialogParentContainerId() { |
const ash::LoginStatus login_status = GetUserLoginStatus(); |
@@ -269,6 +283,10 @@ void SystemTrayClient::ShowDateSettings() { |
chrome::kDateTimeSubPage); |
} |
+void SystemTrayClient::ShowAboutChromeOS() { |
+ ShowSettingsSubPageForActiveUser(chrome::kHelpSubPage); |
+} |
+ |
void SystemTrayClient::ShowSetTimeDialog() { |
chromeos::SetTimeDialog::ShowDialogInContainer(GetDialogParentContainerId()); |
} |
@@ -460,6 +478,10 @@ void SystemTrayClient::HandleUpdateAvailable() { |
update_type); |
} |
+void SystemTrayClient::HandleUpdateOverCellularAvailable() { |
+ system_tray_->ShowUpdateOverCellularAvailableIcon(); |
+} |
+ |
//////////////////////////////////////////////////////////////////////////////// |
// chromeos::system::SystemClockObserver: |
@@ -471,8 +493,10 @@ void SystemTrayClient::OnSystemClockChanged( |
void SystemTrayClient::Observe(int type, |
const content::NotificationSource& source, |
const content::NotificationDetails& details) { |
- DCHECK_EQ(chrome::NOTIFICATION_UPGRADE_RECOMMENDED, type); |
- HandleUpdateAvailable(); |
+ if (chrome::NOTIFICATION_UPGRADE_RECOMMENDED == type) |
+ HandleUpdateAvailable(); |
+ else if (chrome::NOTIFICATION_UPDATE_OVER_CELLULAR_AVAILABLE == type) |
+ HandleUpdateOverCellularAvailable(); |
} |
//////////////////////////////////////////////////////////////////////////////// |