summaryrefslogtreecommitdiffstats
path: root/chrome/browser/ui/views/toolbar_view.cc
diff options
context:
space:
mode:
authorfinnur@chromium.org <finnur@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-06 15:28:33 +0000
committerfinnur@chromium.org <finnur@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-06-06 15:28:33 +0000
commitd04126a3612e00bb1f6b88c4bc58d1c16eeaaa67 (patch)
treee2fc74c82e6f7fe86337730ad78ed4c3a99fde3f /chrome/browser/ui/views/toolbar_view.cc
parent146c1a865f9782e2d21a70cf07748b2685e0267f (diff)
downloadchromium_src-d04126a3612e00bb1f6b88c4bc58d1c16eeaaa67.zip
chromium_src-d04126a3612e00bb1f6b88c4bc58d1c16eeaaa67.tar.gz
chromium_src-d04126a3612e00bb1f6b88c4bc58d1c16eeaaa67.tar.bz2
Warn by default when certain DLL conflicts exist on XP.
BUG=238378 R=cpu@chromium.org, jhawkins@chromium.org, sky@chromium.org Review URL: https://codereview.chromium.org/15969017 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@204505 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/ui/views/toolbar_view.cc')
-rw-r--r--chrome/browser/ui/views/toolbar_view.cc14
1 files changed, 13 insertions, 1 deletions
diff --git a/chrome/browser/ui/views/toolbar_view.cc b/chrome/browser/ui/views/toolbar_view.cc
index af414bd..8a32d97 100644
--- a/chrome/browser/ui/views/toolbar_view.cc
+++ b/chrome/browser/ui/views/toolbar_view.cc
@@ -60,7 +60,9 @@
#include "ui/views/window/non_client_view.h"
#if defined(OS_WIN)
+#include "base/win/windows_version.h"
#include "chrome/browser/enumerate_modules_model_win.h"
+#include "chrome/browser/ui/views/conflicting_module_view_win.h"
#include "chrome/browser/ui/views/critical_notification_bubble_view.h"
#if !defined(USE_AURA)
#include "chrome/browser/ui/views/app_menu_button_win.h"
@@ -175,6 +177,10 @@ ToolbarView::ToolbarView(Browser* browser)
#if defined(OS_WIN)
registrar_.Add(this, chrome::NOTIFICATION_CRITICAL_UPGRADE_INSTALLED,
content::NotificationService::AllSources());
+ if (base::win::GetVersion() == base::win::VERSION_XP) {
+ registrar_.Add(this, chrome::NOTIFICATION_MODULE_LIST_ENUMERATED,
+ content::NotificationService::AllSources());
+ }
#endif
registrar_.Add(this,
chrome::NOTIFICATION_MODULE_INCOMPATIBILITY_BADGE_CHANGE,
@@ -461,6 +467,7 @@ void ToolbarView::Observe(int type,
case chrome::NOTIFICATION_UPGRADE_RECOMMENDED:
case chrome::NOTIFICATION_MODULE_INCOMPATIBILITY_BADGE_CHANGE:
case chrome::NOTIFICATION_GLOBAL_ERRORS_CHANGED:
+ case chrome::NOTIFICATION_MODULE_LIST_ENUMERATED:
UpdateAppMenuState();
break;
case chrome::NOTIFICATION_OUTDATED_INSTALL:
@@ -703,6 +710,7 @@ bool ToolbarView::ShouldShowUpgradeRecommended() {
bool ToolbarView::ShouldShowIncompatibilityWarning() {
#if defined(OS_WIN)
EnumerateModulesModel* loaded_modules = EnumerateModulesModel::GetInstance();
+ loaded_modules->MaybePostScanningTask();
return loaded_modules->ShouldShowConflictWarning();
#else
return false;
@@ -788,8 +796,12 @@ void ToolbarView::UpdateWrenchButtonSeverity() {
}
if (ShouldShowIncompatibilityWarning()) {
- if (!was_showing)
+ if (!was_showing) {
content::RecordAction(UserMetricsAction("ConflictBadge"));
+#if defined(OS_WIN)
+ ConflictingModuleView::MaybeShow(browser_, app_menu_);
+#endif
+ }
app_menu_->SetSeverity(WrenchIconPainter::SEVERITY_MEDIUM, true);
incompatibility_badge_showing = true;
return;