From e940b784d3b7dfe4079bba3e902b261817ddb559 Mon Sep 17 00:00:00 2001 From: "rdevlin.cronin@chromium.org" Date: Fri, 18 Apr 2014 20:55:19 +0000 Subject: Clear |blacklisted_extensions_| once they are acknowledged in ErrorController BUG=364726 Review URL: https://codereview.chromium.org/243373002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@264851 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/extensions/extension_error_controller.cc | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'chrome/browser/extensions/extension_error_controller.cc') diff --git a/chrome/browser/extensions/extension_error_controller.cc b/chrome/browser/extensions/extension_error_controller.cc index 4c3d3a2..8ae3154 100644 --- a/chrome/browser/extensions/extension_error_controller.cc +++ b/chrome/browser/extensions/extension_error_controller.cc @@ -31,7 +31,9 @@ ExtensionErrorController::~ExtensionErrorController() {} void ExtensionErrorController::ShowErrorIfNeeded() { IdentifyAlertableExtensions(); - if (!blacklisted_extensions_.is_empty()) { + // Make sure there's something to show, and that there isn't currently a + // bubble displaying. + if (!blacklisted_extensions_.is_empty() && !error_ui_.get()) { if (!is_first_run_) { error_ui_.reset(g_create_ui(this)); if (!error_ui_->ShowErrorInBubbleView()) // Couldn't find a browser. @@ -84,6 +86,7 @@ void ExtensionErrorController::OnAlertClosed() { prefs->AcknowledgeBlacklistedExtension((*iter)->id()); } + blacklisted_extensions_.Clear(); error_ui_.reset(); } @@ -91,6 +94,10 @@ void ExtensionErrorController::IdentifyAlertableExtensions() { ExtensionRegistry* registry = ExtensionRegistry::Get(browser_context_); ExtensionPrefs* prefs = ExtensionPrefs::Get(browser_context_); + // This should be clear, but in case a bubble crashed somewhere along the + // line, let's make sure we start fresh. + blacklisted_extensions_.Clear(); + // Build up the lists of extensions that require acknowledgment. If this is // the first time, grandfather extensions that would have caused // notification. -- cgit v1.1