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..d20214d0bbfbdf73444555b08e0f850986df6c24 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) { |
| +#if defined(ENABLE_MEDIA_ROUTER) |
| + if (media_router::MediaRouterEnabled(profile_) && |
| + MediaRouterActionController::IsActionShownByPolicy(profile_)) { |
| + initial_ids_.insert(kMediaRouterActionId); |
| + } |
| +#endif |
| +} |
| ComponentToolbarActionsFactory::~ComponentToolbarActionsFactory() {} |
|
msw
2017/02/18 01:06:08
nit: add a blank line above
|
| -// static |
| -ComponentToolbarActionsFactory* ComponentToolbarActionsFactory::GetInstance() { |
| - return testing_factory_ ? testing_factory_ : &lazy_factory.Get(); |
| +std::set<std::string> ComponentToolbarActionsFactory::GetInitialComponentIds() { |
| + return initial_ids_; |
| } |
| -std::set<std::string> ComponentToolbarActionsFactory::GetInitialComponentIds( |
| - Profile* profile) { |
| - std::set<std::string> component_ids; |
| -#if defined(ENABLE_MEDIA_ROUTER) |
| - if (media_router::MediaRouterEnabled(profile) && |
| - MediaRouterActionController::IsActionShownByPolicy(profile)) { |
| - component_ids.insert(kMediaRouterActionId); |
| - } |
| -#endif |
| +void ComponentToolbarActionsFactory::OnAddComponentActionBeforeInit( |
| + const std::string& action_id) { |
| + initial_ids_.insert(action_id); |
| +} |
| - return component_ids; |
| +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, |