| Index: chrome/browser/ui/toolbar/app_menu_icon_controller.cc
|
| diff --git a/chrome/browser/ui/toolbar/app_menu_icon_controller.cc b/chrome/browser/ui/toolbar/app_menu_icon_controller.cc
|
| index a02056729d5277fa06e43e8689d1d27443371938..6ebcd7f0c9dfd3e1a537095fcd59c201bb2e65a7 100644
|
| --- a/chrome/browser/ui/toolbar/app_menu_icon_controller.cc
|
| +++ b/chrome/browser/ui/toolbar/app_menu_icon_controller.cc
|
| @@ -66,9 +66,7 @@ bool ShouldShowUpgradeRecommended() {
|
| // Returns true if we should show the warning for incompatible software.
|
| bool ShouldShowIncompatibilityWarning() {
|
| #if defined(OS_WIN)
|
| - EnumerateModulesModel* loaded_modules = EnumerateModulesModel::GetInstance();
|
| - loaded_modules->MaybePostScanningTask();
|
| - return loaded_modules->ShouldShowConflictWarning();
|
| + return EnumerateModulesModel::GetInstance()->ShouldShowConflictWarning();
|
| #else
|
| return false;
|
| #endif
|
| @@ -88,12 +86,17 @@ AppMenuIconController::AppMenuIconController(Profile* profile,
|
| content::Source<Profile>(profile_));
|
|
|
| #if defined(OS_WIN)
|
| - registrar_.Add(this, chrome::NOTIFICATION_MODULE_INCOMPATIBILITY_ICON_CHANGE,
|
| - content::NotificationService::AllSources());
|
| + auto* modules = EnumerateModulesModel::GetInstance();
|
| + modules->AddObserver(this);
|
| + modules->MaybePostScanningTask();
|
| #endif
|
| }
|
|
|
| -AppMenuIconController::~AppMenuIconController() {}
|
| +AppMenuIconController::~AppMenuIconController() {
|
| +#if defined(OS_WIN)
|
| + EnumerateModulesModel::GetInstance()->RemoveObserver(this);
|
| +#endif
|
| +}
|
|
|
| void AppMenuIconController::UpdateDelegate() {
|
| if (ShouldShowUpgradeRecommended()) {
|
| @@ -123,6 +126,17 @@ void AppMenuIconController::UpdateDelegate() {
|
| delegate_->UpdateSeverity(IconType::NONE,
|
| AppMenuIconPainter::SEVERITY_NONE, true);
|
| }
|
| +
|
| +#if defined(OS_WIN)
|
| +void AppMenuIconController::OnScanCompleted() {
|
| + UpdateDelegate();
|
| +}
|
| +
|
| +void AppMenuIconController::OnConflictsAcknowledged() {
|
| + UpdateDelegate();
|
| +}
|
| +#endif
|
| +
|
| void AppMenuIconController::Observe(
|
| int type,
|
| const content::NotificationSource& source,
|
|
|