summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormek@chromium.org <mek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-15 18:05:23 +0000
committermek@chromium.org <mek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-08-15 18:05:23 +0000
commit3e02b2963f37a09e15c59a36d9fcf584f9e9bc6c (patch)
tree9f11f2775ac2e3ce43582dfc20f90fe1ae9cd664
parentcf4b57e4e50a16c27aa7114fa432adf1f44ddba3 (diff)
downloadchromium_src-3e02b2963f37a09e15c59a36d9fcf584f9e9bc6c.zip
chromium_src-3e02b2963f37a09e15c59a36d9fcf584f9e9bc6c.tar.gz
chromium_src-3e02b2963f37a09e15c59a36d9fcf584f9e9bc6c.tar.bz2
Merge 217666 "If for some reason an extension is disabled just w..."
> If for some reason an extension is disabled just with DISABLE_RELOAD, attempt to re-enable the extension on chrome startup. > > BUG=272988 > > Review URL: https://chromiumcodereview.appspot.com/22984007 TBR=kerz Review URL: https://codereview.chromium.org/23252003 git-svn-id: svn://svn.chromium.org/chrome/branches/1547/src@217819 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--chrome/browser/extensions/extension_service.cc15
1 files changed, 15 insertions, 0 deletions
diff --git a/chrome/browser/extensions/extension_service.cc b/chrome/browser/extensions/extension_service.cc
index bba7e63..58385e9 100644
--- a/chrome/browser/extensions/extension_service.cc
+++ b/chrome/browser/extensions/extension_service.cc
@@ -541,6 +541,21 @@ void ExtensionService::Init() {
component_loader_->LoadAll();
extensions::InstalledLoader(this).LoadAllExtensions();
+ // Attempt to re-enable extensions whose only disable reason is reloading.
+ std::vector<std::string> extensions_to_enable;
+ for (ExtensionSet::const_iterator iter = disabled_extensions_.begin();
+ iter != disabled_extensions_.end(); ++iter) {
+ const Extension* e = iter->get();
+ if (extension_prefs_->GetDisableReasons(e->id()) ==
+ Extension::DISABLE_RELOAD) {
+ extensions_to_enable.push_back(e->id());
+ }
+ }
+ for (std::vector<std::string>::iterator it = extensions_to_enable.begin();
+ it != extensions_to_enable.end(); ++it) {
+ EnableExtension(*it);
+ }
+
// Finish install (if possible) of extensions that were still delayed while
// the browser was shut down.
scoped_ptr<extensions::ExtensionPrefs::ExtensionsInfo> delayed_info(