diff options
author | mek@chromium.org <mek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-15 18:05:23 +0000 |
---|---|---|
committer | mek@chromium.org <mek@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-08-15 18:05:23 +0000 |
commit | 3e02b2963f37a09e15c59a36d9fcf584f9e9bc6c (patch) | |
tree | 9f11f2775ac2e3ce43582dfc20f90fe1ae9cd664 | |
parent | cf4b57e4e50a16c27aa7114fa432adf1f44ddba3 (diff) | |
download | chromium_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.cc | 15 |
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( |