diff --git chrome/browser/themes/theme_service.cc chrome/browser/themes/theme_service.cc index dd41ca3cb8f35..6123e27acffa8 100644 --- chrome/browser/themes/theme_service.cc +++ chrome/browser/themes/theme_service.cc @@ -30,6 +30,7 @@ #include "base/task/thread_pool.h" #include "base/trace_event/trace_event.h" #include "build/build_config.h" +#include "cef/libcef/features/runtime.h" #include "chrome/browser/extensions/extension_service.h" #include "chrome/browser/extensions/theme_installed_infobar_delegate.h" #include "chrome/browser/new_tab_page/chrome_colors/chrome_colors_service.h" @@ -68,6 +69,10 @@ #include "ui/color/color_provider_manager.h" #include "ui/native_theme/native_theme.h" +#if BUILDFLAG(ENABLE_CEF) +#include "cef/libcef/common/extensions/extensions_util.h" +#endif + #if BUILDFLAG(ENABLE_EXTENSIONS) #include "base/scoped_observation.h" #include "extensions/browser/extension_registry_observer.h" @@ -269,11 +274,19 @@ void ThemeService::Init() { // OnExtensionServiceReady. Otherwise, the ThemeObserver won't be // constructed in time to observe the corresponding events. #if BUILDFLAG(ENABLE_EXTENSIONS) +#if BUILDFLAG(ENABLE_ALLOY_BOOTSTRAP) + const bool extensions_disabled = cef::IsAlloyRuntimeEnabled() && + !extensions::ExtensionsEnabled(); +#else + const bool extensions_disabled = false; +#endif + if (!extensions_disabled) { theme_observer_ = std::make_unique(this); extensions::ExtensionSystem::Get(profile_)->ready().Post( FROM_HERE, base::BindOnce(&ThemeService::OnExtensionServiceReady, weak_ptr_factory_.GetWeakPtr())); + } #endif theme_syncable_service_ = std::make_unique(profile_, this); diff --git chrome/browser/themes/theme_service_factory.cc chrome/browser/themes/theme_service_factory.cc index 49fd0b0f7a21c..dc4258f7143d1 100644 --- chrome/browser/themes/theme_service_factory.cc +++ chrome/browser/themes/theme_service_factory.cc @@ -9,6 +9,7 @@ #include "base/trace_event/trace_event.h" #include "build/build_config.h" #include "build/chromeos_buildflags.h" +#include "cef/libcef/features/runtime.h" #include "chrome/browser/extensions/extension_system_factory.h" #include "chrome/browser/profiles/profile.h" #include "chrome/browser/themes/theme_service.h" @@ -35,6 +36,10 @@ #include "ui/linux/linux_ui_factory.h" #endif +#if BUILDFLAG(ENABLE_CEF) +#include "cef/libcef/common/extensions/extensions_util.h" +#endif + namespace { const ThemeHelper& GetThemeHelper() { @@ -96,7 +101,15 @@ ThemeServiceFactory::ThemeServiceFactory() .Build()) { DependsOn(extensions::ExtensionRegistryFactory::GetInstance()); DependsOn(extensions::ExtensionPrefsFactory::GetInstance()); +#if BUILDFLAG(ENABLE_ALLOY_BOOTSTRAP) + const bool extensions_disabled = cef::IsAlloyRuntimeEnabled() && + !extensions::ExtensionsEnabled(); +#else + const bool extensions_disabled = false; +#endif + if (!extensions_disabled) { DependsOn(extensions::ExtensionSystemFactory::GetInstance()); + } } ThemeServiceFactory::~ThemeServiceFactory() = default;