Commit 5b35a088 authored by Devlin Cronin's avatar Devlin Cronin Committed by Commit Bot

[Extensions] Make ExtensionService stack-allocate ExtensionRegistrar

ExtensionService::extension_registrar_ is constructed at
ExtensionService construction time, and is never reset. There's no
reason to have it as a std::unique_ptr<> instead of a stack-allocated
member variable. Make it the latter.

Bug: 770879
Change-Id: I68001b9214b6176fc4703e3c6d2f1cbdcece9dff
Reviewed-on: https://chromium-review.googlesource.com/701398Reviewed-by: default avatarMichael Giuffrida <michaelpg@chromium.org>
Commit-Queue: Devlin <rdevlin.cronin@chromium.org>
Cr-Commit-Position: refs/heads/master@{#506845}
parent 4fb8e7be
...@@ -76,7 +76,6 @@ ...@@ -76,7 +76,6 @@
#include "extensions/browser/event_router.h" #include "extensions/browser/event_router.h"
#include "extensions/browser/extension_file_task_runner.h" #include "extensions/browser/extension_file_task_runner.h"
#include "extensions/browser/extension_host.h" #include "extensions/browser/extension_host.h"
#include "extensions/browser/extension_registrar.h"
#include "extensions/browser/extension_registry.h" #include "extensions/browser/extension_registry.h"
#include "extensions/browser/extension_system.h" #include "extensions/browser/extension_system.h"
#include "extensions/browser/extension_util.h" #include "extensions/browser/extension_util.h"
...@@ -330,8 +329,7 @@ ExtensionService::ExtensionService(Profile* profile, ...@@ -330,8 +329,7 @@ ExtensionService::ExtensionService(Profile* profile,
ready_(ready), ready_(ready),
shared_module_service_(new extensions::SharedModuleService(profile_)), shared_module_service_(new extensions::SharedModuleService(profile_)),
app_data_migrator_(new extensions::AppDataMigrator(profile_, registry_)), app_data_migrator_(new extensions::AppDataMigrator(profile_, registry_)),
extension_registrar_( extension_registrar_(profile_) {
std::make_unique<extensions::ExtensionRegistrar>(profile_)) {
CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI)); CHECK(BrowserThread::CurrentlyOn(BrowserThread::UI));
TRACE_EVENT0("browser,startup", "ExtensionService::ExtensionService::ctor"); TRACE_EVENT0("browser,startup", "ExtensionService::ExtensionService::ctor");
...@@ -914,7 +912,7 @@ void ExtensionService::EnableExtension(const std::string& extension_id) { ...@@ -914,7 +912,7 @@ void ExtensionService::EnableExtension(const std::string& extension_id) {
return; return;
// Move it over to the enabled list. // Move it over to the enabled list.
extension_registrar_->EnableExtension(extension); extension_registrar_.EnableExtension(extension);
NotifyExtensionLoaded(extension.get()); NotifyExtensionLoaded(extension.get());
MaybeSpinUpLazyBackgroundPage(extension.get()); MaybeSpinUpLazyBackgroundPage(extension.get());
...@@ -980,7 +978,7 @@ void ExtensionService::DisableExtension(const std::string& extension_id, ...@@ -980,7 +978,7 @@ void ExtensionService::DisableExtension(const std::string& extension_id,
// Move it over to the disabled list. Don't send a second unload notification // Move it over to the disabled list. Don't send a second unload notification
// for terminated extensions being disabled. // for terminated extensions being disabled.
if (registry_->enabled_extensions().Contains(extension->id())) { if (registry_->enabled_extensions().Contains(extension->id())) {
extension_registrar_->DisableExtension(extension); extension_registrar_.DisableExtension(extension);
PostDeactivateExtension(extension); PostDeactivateExtension(extension);
} else { } else {
registry_->AddDisabled(base::WrapRefCounted(extension)); registry_->AddDisabled(base::WrapRefCounted(extension));
...@@ -1357,7 +1355,7 @@ void ExtensionService::UnloadExtension(const std::string& extension_id, ...@@ -1357,7 +1355,7 @@ void ExtensionService::UnloadExtension(const std::string& extension_id,
bool already_disabled = bool already_disabled =
registry_->disabled_extensions().Contains(extension_id); registry_->disabled_extensions().Contains(extension_id);
extension_registrar_->RemoveExtension(extension_id, reason); extension_registrar_.RemoveExtension(extension_id, reason);
// If the extension was only in the terminated set, the removal notification // If the extension was only in the terminated set, the removal notification
// will be sent when UntrackTerminatedExtension is called. // will be sent when UntrackTerminatedExtension is called.
...@@ -1529,7 +1527,7 @@ void ExtensionService::AddExtension(const Extension* extension) { ...@@ -1529,7 +1527,7 @@ void ExtensionService::AddExtension(const Extension* extension) {
syncer::StringOrdinal()); syncer::StringOrdinal());
} }
extension_registrar_->EnableExtension(extension); extension_registrar_.EnableExtension(extension);
NotifyExtensionLoaded(extension); NotifyExtensionLoaded(extension);
} }
system_->runtime_data()->SetBeingUpgraded(extension->id(), false); system_->runtime_data()->SetBeingUpgraded(extension->id(), false);
......
...@@ -28,6 +28,7 @@ ...@@ -28,6 +28,7 @@
#include "content/public/browser/notification_registrar.h" #include "content/public/browser/notification_registrar.h"
#include "extensions/browser/crx_file_info.h" #include "extensions/browser/crx_file_info.h"
#include "extensions/browser/extension_prefs.h" #include "extensions/browser/extension_prefs.h"
#include "extensions/browser/extension_registrar.h"
#include "extensions/browser/external_provider_interface.h" #include "extensions/browser/external_provider_interface.h"
#include "extensions/browser/install_flag.h" #include "extensions/browser/install_flag.h"
#include "extensions/browser/process_manager.h" #include "extensions/browser/process_manager.h"
...@@ -58,7 +59,6 @@ class ComponentLoader; ...@@ -58,7 +59,6 @@ class ComponentLoader;
class CrxInstaller; class CrxInstaller;
class ExtensionActionStorageManager; class ExtensionActionStorageManager;
class ExtensionErrorController; class ExtensionErrorController;
class ExtensionRegistrar;
class ExtensionRegistry; class ExtensionRegistry;
class ExtensionSystem; class ExtensionSystem;
class ExtensionUpdater; class ExtensionUpdater;
...@@ -725,7 +725,7 @@ class ExtensionService ...@@ -725,7 +725,7 @@ class ExtensionService
std::unique_ptr<extensions::AppDataMigrator> app_data_migrator_; std::unique_ptr<extensions::AppDataMigrator> app_data_migrator_;
// Helper to register and unregister extensions. // Helper to register and unregister extensions.
std::unique_ptr<extensions::ExtensionRegistrar> extension_registrar_; extensions::ExtensionRegistrar extension_registrar_;
using InstallGateRegistry = std::map<extensions::ExtensionPrefs::DelayReason, using InstallGateRegistry = std::map<extensions::ExtensionPrefs::DelayReason,
extensions::InstallGate*>; extensions::InstallGate*>;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment