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 d4824b1661459f0880fa26cf46111580aeb74ef9..55bfb3f32f184d8b1d8d86a8b92b7deffaee6467 100644 |
--- a/chrome/browser/ui/toolbar/component_toolbar_actions_factory.cc |
+++ b/chrome/browser/ui/toolbar/component_toolbar_actions_factory.cc |
@@ -6,15 +6,17 @@ |
#include "base/command_line.h" |
#include "base/lazy_instance.h" |
+#include "chrome/browser/extensions/extension_service.h" |
#include "chrome/browser/media/router/media_router_feature.h" |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/ui/browser.h" |
-#include "chrome/browser/ui/toolbar/media_router_action_controller.h" |
#include "chrome/browser/ui/toolbar/toolbar_action_view_controller.h" |
+#include "extensions/browser/extension_registry.h" |
#include "extensions/common/feature_switch.h" |
#if defined(ENABLE_MEDIA_ROUTER) |
#include "chrome/browser/ui/toolbar/media_router_action.h" |
+#include "chrome/browser/ui/toolbar/media_router_action_controller.h" |
#endif |
namespace { |
@@ -27,6 +29,10 @@ base::LazyInstance<ComponentToolbarActionsFactory> lazy_factory = |
} // namespace |
// static |
+const char ComponentToolbarActionsFactory::kCastBetaExtensionId[] = |
+ "dliochdbjfkdbacpmhlcpmleaejidimm"; |
+const char ComponentToolbarActionsFactory::kCastExtensionId[] = |
+ "boadgeojelhgndaghljhdicfkmllpafd"; |
const char ComponentToolbarActionsFactory::kMediaRouterActionId[] = |
"media_router_action"; |
@@ -41,10 +47,12 @@ ComponentToolbarActionsFactory* ComponentToolbarActionsFactory::GetInstance() { |
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 |
return component_ids; |
} |
@@ -74,8 +82,28 @@ ComponentToolbarActionsFactory::GetComponentToolbarActionForId( |
return std::unique_ptr<ToolbarActionViewController>(); |
} |
+void ComponentToolbarActionsFactory::UnloadMigratedExtensions( |
+ ExtensionService* service, |
+ extensions::ExtensionRegistry* registry) { |
+ // TODO(takumif): Replace the unloading of Cast and Cast Beta extensions with |
+ // uninstallation. |
+ UnloadExtension(service, registry, kCastExtensionId); |
+ UnloadExtension(service, registry, kCastBetaExtensionId); |
+} |
+ |
// static |
void ComponentToolbarActionsFactory::SetTestingFactory( |
ComponentToolbarActionsFactory* factory) { |
testing_factory_ = factory; |
} |
+ |
+void ComponentToolbarActionsFactory::UnloadExtension( |
+ ExtensionService* service, |
+ extensions::ExtensionRegistry* registry, |
+ const std::string& extension_id) { |
+ if (registry->enabled_extensions().Contains(extension_id)) { |
+ service->UnloadExtension( |
+ extension_id, |
+ extensions::UnloadedExtensionInfo::REASON_MIGRATED_TO_COMPONENT); |
+ } |
+} |