| 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..d45ee1f783b420cab1db4d20c94e3d3626578caa 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->is_factory_reset_required = detector->is_factory_reset_required();
|
| +}
|
| +
|
| class SystemTrayDelegateLinux : public ash::SystemTrayDelegate,
|
| public content::NotificationObserver {
|
| public:
|
| @@ -87,8 +112,10 @@ class SystemTrayDelegateLinux : public ash::SystemTrayDelegate,
|
| return false;
|
| }
|
|
|
| - virtual bool SystemShouldUpgrade() const OVERRIDE {
|
| - return UpgradeDetector::GetInstance()->notify_upgrade();
|
| + virtual bool SystemShouldUpgrade(ash::UpdateInfo* info) const OVERRIDE {
|
| + UpgradeDetector* detector = UpgradeDetector::GetInstance();
|
| + GetUpdateInfo(detector, info);
|
| + return detector->notify_upgrade();
|
| }
|
|
|
| virtual base::HourClockType GetHourClockType() const OVERRIDE {
|
| @@ -302,27 +329,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();
|
| }
|
|
|