summaryrefslogtreecommitdiffstats
path: root/chrome/browser/extensions/extension_error_controller.cc
diff options
context:
space:
mode:
authorrdevlin.cronin@chromium.org <rdevlin.cronin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-18 20:55:19 +0000
committerrdevlin.cronin@chromium.org <rdevlin.cronin@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-04-18 20:55:19 +0000
commite940b784d3b7dfe4079bba3e902b261817ddb559 (patch)
tree3748a38dce327ab1fb00e267f90a13aadf7b26a3 /chrome/browser/extensions/extension_error_controller.cc
parenta97376ebdf3182f4ccceaa8019deb26829db3688 (diff)
downloadchromium_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.cc9
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.