diff options
author | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-09 12:52:34 +0000 |
---|---|---|
committer | bauerb@chromium.org <bauerb@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2011-03-09 12:52:34 +0000 |
commit | 8c6c8c29bafa7f4308dfeff2a55bb64970a4a257 (patch) | |
tree | bbb9e4670b07165037c4a572bf5a1afd967feb59 /chrome/browser | |
parent | 932b7a1c10095c90986bf5bc2e78ebc18d415c26 (diff) | |
download | chromium_src-8c6c8c29bafa7f4308dfeff2a55bb64970a4a257.zip chromium_src-8c6c8c29bafa7f4308dfeff2a55bb64970a4a257.tar.gz chromium_src-8c6c8c29bafa7f4308dfeff2a55bb64970a4a257.tar.bz2 |
Only send extension unloaded/loaded notifications when changing the incognito enabled flag.
BUG=75267
TEST=ExtensionToolbarModelTest.*
Review URL: http://codereview.chromium.org/6627078
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@77457 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/extensions/extension_service.cc | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc index 159785b..702fc86 100644 --- a/chrome/browser/extensions/extension_service.cc +++ b/chrome/browser/extensions/extension_service.cc @@ -1132,13 +1132,18 @@ bool ExtensionService::IsIncognitoEnabled(const Extension* extension) { void ExtensionService::SetIsIncognitoEnabled(const Extension* extension, bool enabled) { + // Broadcast unloaded and loaded events to update browser state. Only bother + // if the value changed and the extension is actually enabled, since there is + // no UI otherwise. + bool old_enabled = extension_prefs_->IsIncognitoEnabled(extension->id()); + if (enabled == old_enabled) + return; + extension_prefs_->SetIsIncognitoEnabled(extension->id(), enabled); - // Broadcast unloaded and loaded events to update browser state. Only bother - // if the extension is actually enabled, since there is no UI otherwise. - bool is_enabled = std::find(extensions_.begin(), extensions_.end(), - extension) != extensions_.end(); - if (is_enabled) { + bool extension_is_enabled = std::find(extensions_.begin(), extensions_.end(), + extension) != extensions_.end(); + if (extension_is_enabled) { NotifyExtensionUnloaded(extension, UnloadedExtensionInfo::DISABLE); NotifyExtensionLoaded(extension); } |