// Copyright (c) 2011 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. #include "chrome/browser/upgrade_detector.h" #include "chrome/browser/prefs/pref_service.h" #include "chrome/common/pref_names.h" #include "content/common/notification_service.h" #include "content/common/notification_type.h" #include "grit/theme_resources.h" // static void UpgradeDetector::RegisterPrefs(PrefService* prefs) { prefs->RegisterBooleanPref(prefs::kRestartLastSessionOnShutdown, false); } int UpgradeDetector::GetIconResourceID(UpgradeNotificationIconType type) { bool badge = type == UPGRADE_ICON_TYPE_BADGE; switch (upgrade_notification_stage_) { case UPGRADE_ANNOYANCE_SEVERE: return badge ? IDR_UPDATE_BADGE4 : IDR_UPDATE_MENU4; case UPGRADE_ANNOYANCE_HIGH: return badge ? IDR_UPDATE_BADGE3 : IDR_UPDATE_MENU3; case UPGRADE_ANNOYANCE_ELEVATED: return badge ? IDR_UPDATE_BADGE2 : IDR_UPDATE_MENU2; case UPGRADE_ANNOYANCE_LOW: return badge ? IDR_UPDATE_BADGE : IDR_UPDATE_MENU; default: return 0; } } UpgradeDetector::UpgradeDetector() : upgrade_notification_stage_(UPGRADE_ANNOYANCE_NONE), notify_upgrade_(false) { } UpgradeDetector::~UpgradeDetector() { } void UpgradeDetector::NotifyUpgradeDetected() { upgrade_detected_time_ = base::Time::Now(); NotificationService::current()->Notify( NotificationType::UPGRADE_DETECTED, Source(this), NotificationService::NoDetails()); } void UpgradeDetector::NotifyUpgradeRecommended() { notify_upgrade_ = true; NotificationService::current()->Notify( NotificationType::UPGRADE_RECOMMENDED, Source(this), NotificationService::NoDetails()); }