Index: chrome/browser/ui/ash/system_tray_delegate_linux.cc |
diff --git a/chrome/browser/ui/ash/system_tray_delegate_linux.cc b/chrome/browser/ui/ash/system_tray_delegate_linux.cc |
index 8c3ee83462e3772af45b6b25bf88841d331a222e..5bfc27da50178ceaa7cea592e5f54ee1e007d65f 100644 |
--- a/chrome/browser/ui/ash/system_tray_delegate_linux.cc |
+++ b/chrome/browser/ui/ash/system_tray_delegate_linux.cc |
@@ -27,6 +27,31 @@ |
namespace { |
+void GetUpdateInfo(const UpgradeDetector* detector, ash::UpdateInfo* info) { |
+ if (!detector || !info) |
+ return; |
+ ash::UpdateInfo::UpdateSeverity severity = ash::UpdateInfo::UPDATE_NORMAL; |
+ switch (detector->upgrade_notification_stage()) { |
+ case UpgradeDetector::UPGRADE_ANNOYANCE_CRITICAL: |
+ case UpgradeDetector::UPGRADE_ANNOYANCE_SEVERE: |
+ severity = ash::UpdateInfo::UPDATE_SEVERE_RED; |
+ break; |
+ case UpgradeDetector::UPGRADE_ANNOYANCE_HIGH: |
+ severity = ash::UpdateInfo::UPDATE_HIGH_ORANGE; |
+ break; |
+ case UpgradeDetector::UPGRADE_ANNOYANCE_ELEVATED: |
+ severity = ash::UpdateInfo::UPDATE_LOW_GREEN; |
+ break; |
+ case UpgradeDetector::UPGRADE_ANNOYANCE_LOW: |
+ case UpgradeDetector::UPGRADE_ANNOYANCE_NONE: |
+ severity = ash::UpdateInfo::UPDATE_NORMAL; |
+ break; |
+ } |
+ info->severity = severity; |
+ info->update_required = detector->notify_upgrade(); |
+ info->factory_reset_required = detector->is_factory_reset_required(); |
+} |
+ |
class SystemTrayDelegateLinux : public ash::SystemTrayDelegate, |
public content::NotificationObserver { |
public: |
@@ -87,8 +112,8 @@ class SystemTrayDelegateLinux : public ash::SystemTrayDelegate, |
return false; |
} |
- virtual bool SystemShouldUpgrade() const OVERRIDE { |
- return UpgradeDetector::GetInstance()->notify_upgrade(); |
+ virtual void GetSystemUpdateInfo(ash::UpdateInfo* info) const OVERRIDE { |
+ GetUpdateInfo(UpgradeDetector::GetInstance(), info); |
} |
virtual base::HourClockType GetHourClockType() const OVERRIDE { |
@@ -302,27 +327,9 @@ class SystemTrayDelegateLinux : public ash::SystemTrayDelegate, |
const content::NotificationSource& source, |
const content::NotificationDetails& details) OVERRIDE { |
if (type == chrome::NOTIFICATION_UPGRADE_RECOMMENDED) { |
- UpgradeDetector* detector = |
- content::Source<UpgradeDetector>(source).ptr(); |
- ash::UpdateObserver::UpdateSeverity severity = |
- ash::UpdateObserver::UPDATE_NORMAL; |
- switch (detector->upgrade_notification_stage()) { |
- case UpgradeDetector::UPGRADE_ANNOYANCE_CRITICAL: |
- case UpgradeDetector::UPGRADE_ANNOYANCE_SEVERE: |
- severity = ash::UpdateObserver::UPDATE_SEVERE_RED; |
- break; |
- case UpgradeDetector::UPGRADE_ANNOYANCE_HIGH: |
- severity = ash::UpdateObserver::UPDATE_HIGH_ORANGE; |
- break; |
- case UpgradeDetector::UPGRADE_ANNOYANCE_ELEVATED: |
- severity = ash::UpdateObserver::UPDATE_LOW_GREEN; |
- break; |
- case UpgradeDetector::UPGRADE_ANNOYANCE_LOW: |
- case UpgradeDetector::UPGRADE_ANNOYANCE_NONE: |
- severity = ash::UpdateObserver::UPDATE_NORMAL; |
- break; |
- } |
- GetSystemTrayNotifier()->NotifyUpdateRecommended(severity); |
+ ash::UpdateInfo info; |
+ GetUpdateInfo(content::Source<UpgradeDetector>(source).ptr(), &info); |
+ GetSystemTrayNotifier()->NotifyUpdateRecommended(info); |
} else { |
NOTREACHED(); |
} |