Chromium Code Reviews| Index: chrome/browser/ui/toolbar/component_toolbar_actions_factory.cc |
| diff --git a/chrome/browser/ui/toolbar/component_toolbar_actions_factory.cc b/chrome/browser/ui/toolbar/component_toolbar_actions_factory.cc |
| index 55bfb3f32f184d8b1d8d86a8b92b7deffaee6467..fe247f0795f27da84d11da0db13afc433d3bb0f0 100644 |
| --- a/chrome/browser/ui/toolbar/component_toolbar_actions_factory.cc |
| +++ b/chrome/browser/ui/toolbar/component_toolbar_actions_factory.cc |
| @@ -11,6 +11,7 @@ |
| #include "chrome/browser/profiles/profile.h" |
| #include "chrome/browser/ui/browser.h" |
| #include "chrome/browser/ui/toolbar/toolbar_action_view_controller.h" |
| +#include "chrome/browser/ui/toolbar/toolbar_actions_bar.h" |
| #include "extensions/browser/extension_registry.h" |
| #include "extensions/common/feature_switch.h" |
| @@ -19,15 +20,6 @@ |
| #include "chrome/browser/ui/toolbar/media_router_action_controller.h" |
| #endif |
| -namespace { |
| - |
| -ComponentToolbarActionsFactory* testing_factory_ = nullptr; |
| - |
| -base::LazyInstance<ComponentToolbarActionsFactory> lazy_factory = |
| - LAZY_INSTANCE_INITIALIZER; |
| - |
| -} // namespace |
| - |
| // static |
| const char ComponentToolbarActionsFactory::kCastBetaExtensionId[] = |
| "dliochdbjfkdbacpmhlcpmleaejidimm"; |
| @@ -36,30 +28,34 @@ const char ComponentToolbarActionsFactory::kCastExtensionId[] = |
| const char ComponentToolbarActionsFactory::kMediaRouterActionId[] = |
| "media_router_action"; |
| -ComponentToolbarActionsFactory::ComponentToolbarActionsFactory() {} |
| +ComponentToolbarActionsFactory::ComponentToolbarActionsFactory(Profile* profile) |
| + : profile_(profile) {} |
| ComponentToolbarActionsFactory::~ComponentToolbarActionsFactory() {} |
| -// static |
| -ComponentToolbarActionsFactory* ComponentToolbarActionsFactory::GetInstance() { |
| - return testing_factory_ ? testing_factory_ : &lazy_factory.Get(); |
| -} |
| - |
| -std::set<std::string> ComponentToolbarActionsFactory::GetInitialComponentIds( |
| - Profile* profile) { |
| - std::set<std::string> component_ids; |
| +std::set<std::string> ComponentToolbarActionsFactory::GetInitialComponentIds() { |
| #if defined(ENABLE_MEDIA_ROUTER) |
| - if (media_router::MediaRouterEnabled(profile) && |
| - MediaRouterActionController::IsActionShownByPolicy(profile)) { |
| - component_ids.insert(kMediaRouterActionId); |
| + if (media_router::MediaRouterEnabled(profile_) && |
| + MediaRouterActionController::IsActionShownByPolicy(profile_)) { |
| + initial_ids_.insert(kMediaRouterActionId); |
|
msw
2017/02/17 23:55:05
If this function is called multiple times, wouldn'
takumif
2017/02/18 01:04:16
I thought it'd be fine since it's a set, but yes,
|
| } |
| #endif |
| - return component_ids; |
| + return initial_ids_; |
| +} |
| + |
| +void ComponentToolbarActionsFactory::OnAddComponentActionBeforeInit( |
| + const std::string& action_id) { |
| + initial_ids_.insert(action_id); |
| +} |
| + |
| +void ComponentToolbarActionsFactory::OnRemoveComponentActionBeforeInit( |
| + const std::string& action_id) { |
| + initial_ids_.erase(action_id); |
| } |
| std::unique_ptr<ToolbarActionViewController> |
| ComponentToolbarActionsFactory::GetComponentToolbarActionForId( |
| - const std::string& id, |
| + const std::string& action_id, |
| Browser* browser, |
| ToolbarActionsBar* bar) { |
| // This is currently behind the extension-action-redesign flag, as it is |
| @@ -73,7 +69,7 @@ ComponentToolbarActionsFactory::GetComponentToolbarActionForId( |
| // should be okay. If this changes, we should rethink this design to have, |
| // e.g., RegisterChromeAction(). |
| #if defined(ENABLE_MEDIA_ROUTER) |
| - if (id == kMediaRouterActionId) |
| + if (action_id == kMediaRouterActionId) |
| return std::unique_ptr<ToolbarActionViewController>( |
| new MediaRouterAction(browser, bar)); |
| #endif // defined(ENABLE_MEDIA_ROUTER) |
| @@ -91,12 +87,6 @@ void ComponentToolbarActionsFactory::UnloadMigratedExtensions( |
| UnloadExtension(service, registry, kCastBetaExtensionId); |
| } |
| -// static |
| -void ComponentToolbarActionsFactory::SetTestingFactory( |
| - ComponentToolbarActionsFactory* factory) { |
| - testing_factory_ = factory; |
| -} |
| - |
| void ComponentToolbarActionsFactory::UnloadExtension( |
| ExtensionService* service, |
| extensions::ExtensionRegistry* registry, |