| Index: chrome/browser/extensions/installed_loader.cc
|
| diff --git a/chrome/browser/extensions/installed_loader.cc b/chrome/browser/extensions/installed_loader.cc
|
| index 22d414980c029fc3575e21a43d4610f3959b8e89..5a5ded6c592df3dfa7fc92d546dcce1beeda9fe5 100644
|
| --- a/chrome/browser/extensions/installed_loader.cc
|
| +++ b/chrome/browser/extensions/installed_loader.cc
|
| @@ -88,7 +88,8 @@ InstalledLoader::InstalledLoader(ExtensionService* extension_service)
|
| InstalledLoader::~InstalledLoader() {
|
| }
|
|
|
| -void InstalledLoader::Load(const ExtensionInfo& info, bool write_to_prefs) {
|
| +scoped_refptr<const Extension> InstalledLoader::Load(const ExtensionInfo& info,
|
| + bool write_to_prefs) {
|
| std::string error;
|
| scoped_refptr<const Extension> extension(NULL);
|
| if (info.extension_manifest.get()) {
|
| @@ -128,13 +129,13 @@ void InstalledLoader::Load(const ExtensionInfo& info, bool write_to_prefs) {
|
| if (!extension) {
|
| extension_service_->
|
| ReportExtensionLoadError(info.extension_path, error, false);
|
| - return;
|
| + return scoped_refptr<const Extension>();
|
| }
|
|
|
| if (write_to_prefs)
|
| extension_prefs_->UpdateManifest(extension);
|
|
|
| - extension_service_->AddExtension(extension);
|
| + return extension;
|
| }
|
|
|
| void InstalledLoader::LoadAllExtensions() {
|
| @@ -212,10 +213,15 @@ void InstalledLoader::LoadAllExtensions() {
|
| }
|
| }
|
|
|
| + std::vector<scoped_refptr<const Extension> > loaded_extensions;
|
| for (size_t i = 0; i < extensions_info->size(); ++i) {
|
| - Load(*extensions_info->at(i), should_write_prefs);
|
| + scoped_refptr<const Extension> loaded_extension =
|
| + Load(*extensions_info->at(i), should_write_prefs);
|
| + if (loaded_extension)
|
| + loaded_extensions.push_back(loaded_extension);
|
| }
|
|
|
| + extension_service_->AddExtensions(loaded_extensions);
|
| extension_service_->OnLoadedInstalledExtensions();
|
|
|
| // The histograms Extensions.ManifestReload* allow us to validate
|
|
|