diff options
author | rdevlin.cronin@chromium.org <rdevlin.cronin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-18 20:55:19 +0000 |
---|---|---|
committer | rdevlin.cronin@chromium.org <rdevlin.cronin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-04-18 20:55:19 +0000 |
commit | e940b784d3b7dfe4079bba3e902b261817ddb559 (patch) | |
tree | 3748a38dce327ab1fb00e267f90a13aadf7b26a3 /chrome/browser/extensions/extension_error_controller.cc | |
parent | a97376ebdf3182f4ccceaa8019deb26829db3688 (diff) | |
download | chromium_src-e940b784d3b7dfe4079bba3e902b261817ddb559.zip chromium_src-e940b784d3b7dfe4079bba3e902b261817ddb559.tar.gz chromium_src-e940b784d3b7dfe4079bba3e902b261817ddb559.tar.bz2 |
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
Diffstat (limited to 'chrome/browser/extensions/extension_error_controller.cc')
-rw-r--r-- | chrome/browser/extensions/extension_error_controller.cc | 9 |
1 files changed, 8 insertions, 1 deletions
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. |