From a4f7e361be3cfc5ee98d7da165f09208ab06f983 Mon Sep 17 00:00:00 2001 From: Marshall Greenblatt Date: Thu, 6 Sep 2018 21:57:52 +0200 Subject: [PATCH] Remove Singleton patches which are no longer required (issue #2362) --- patch/patch.cfg | 6 - patch/patches/chrome_plugins.patch | 46 ++----- patch/patches/service_factory_1680.patch | 146 ----------------------- 3 files changed, 7 insertions(+), 191 deletions(-) delete mode 100644 patch/patches/service_factory_1680.patch diff --git a/patch/patch.cfg b/patch/patch.cfg index 9624c62f1..40322d7a3 100644 --- a/patch/patch.cfg +++ b/patch/patch.cfg @@ -129,12 +129,6 @@ patches = [ # https://codereview.chromium.org/208313009 'name': 'ui_dragdrop_355390', }, - { - # Windows: Fix AtExitManager assertion on *ServiceFactory destruction during - # multi-threaded message loop shutdown. - # https://bitbucket.org/chromiumembedded/cef/issues/1680 - 'name': 'service_factory_1680', - }, { # Make URLRequest::set_is_pending() public so that it can be called from # CefRequestInterceptor::MaybeInterceptResponse(). diff --git a/patch/patches/chrome_plugins.patch b/patch/patches/chrome_plugins.patch index 7796b5770..1ac28f6f8 100644 --- a/patch/patches/chrome_plugins.patch +++ b/patch/patches/chrome_plugins.patch @@ -1,5 +1,5 @@ diff --git chrome/browser/plugins/plugin_info_host_impl.cc chrome/browser/plugins/plugin_info_host_impl.cc -index 484e07af5a98..0e62e20095c7 100644 +index 484e07af5a98..d9807243e2b5 100644 --- chrome/browser/plugins/plugin_info_host_impl.cc +++ chrome/browser/plugins/plugin_info_host_impl.cc @@ -16,6 +16,7 @@ @@ -22,39 +22,7 @@ index 484e07af5a98..0e62e20095c7 100644 #if BUILDFLAG(ENABLE_EXTENSIONS) #include "components/guest_view/browser/guest_view_base.h" #include "extensions/browser/extension_registry.h" -@@ -74,12 +80,10 @@ namespace { - class PluginInfoHostImplShutdownNotifierFactory - : public BrowserContextKeyedServiceShutdownNotifierFactory { - public: -- static PluginInfoHostImplShutdownNotifierFactory* GetInstance() { -- return base::Singleton::get(); -- } -+ static PluginInfoHostImplShutdownNotifierFactory* GetInstance(); - - private: -- friend struct base::DefaultSingletonTraits< -+ friend struct base::LazyInstanceTraitsBase< - PluginInfoHostImplShutdownNotifierFactory>; - - PluginInfoHostImplShutdownNotifierFactory() -@@ -91,6 +95,16 @@ class PluginInfoHostImplShutdownNotifierFactory - DISALLOW_COPY_AND_ASSIGN(PluginInfoHostImplShutdownNotifierFactory); - }; - -+base::LazyInstance::Leaky -+ g_plugin_info_host_impl_shutdown_notifier_factory = -+ LAZY_INSTANCE_INITIALIZER; -+ -+// static -+PluginInfoHostImplShutdownNotifierFactory* -+PluginInfoHostImplShutdownNotifierFactory::GetInstance() { -+ return g_plugin_info_host_impl_shutdown_notifier_factory.Pointer(); -+} -+ - #if BUILDFLAG(ENABLE_EXTENSIONS) - // Returns whether a request from a plugin to load |resource| from a renderer - // with process id |process_id| is a request for an internal resource by an app -@@ -99,6 +113,9 @@ bool IsPluginLoadingAccessibleResourceInWebView( +@@ -99,6 +105,9 @@ bool IsPluginLoadingAccessibleResourceInWebView( extensions::ExtensionRegistry* extension_registry, int process_id, const GURL& resource) { @@ -64,7 +32,7 @@ index 484e07af5a98..0e62e20095c7 100644 extensions::WebViewRendererState* renderer_state = extensions::WebViewRendererState::GetInstance(); std::string partition_id; -@@ -128,12 +145,16 @@ bool IsPluginLoadingAccessibleResourceInWebView( +@@ -128,12 +137,16 @@ bool IsPluginLoadingAccessibleResourceInWebView( PluginInfoHostImpl::Context::Context(int render_process_id, Profile* profile) : render_process_id_(render_process_id), resource_context_(profile->GetResourceContext()), @@ -84,7 +52,7 @@ index 484e07af5a98..0e62e20095c7 100644 allow_outdated_plugins_.Init(prefs::kPluginsAllowOutdated, profile->GetPrefs()); allow_outdated_plugins_.MoveToThread( -@@ -232,6 +253,7 @@ void PluginInfoHostImpl::PluginsLoaded( +@@ -232,6 +245,7 @@ void PluginInfoHostImpl::PluginsLoaded( plugin_metadata->identifier(), &output->status); } @@ -92,7 +60,7 @@ index 484e07af5a98..0e62e20095c7 100644 if (output->status == chrome::mojom::PluginStatus::kNotFound) { // Check to see if the component updater can fetch an implementation. base::PostTaskAndReplyWithResult( -@@ -243,7 +265,9 @@ void PluginInfoHostImpl::PluginsLoaded( +@@ -243,7 +257,9 @@ void PluginInfoHostImpl::PluginsLoaded( base::BindOnce(&PluginInfoHostImpl::ComponentPluginLookupDone, this, params, std::move(output), std::move(callback), std::move(plugin_metadata))); @@ -103,7 +71,7 @@ index 484e07af5a98..0e62e20095c7 100644 GetPluginInfoFinish(params, std::move(output), std::move(callback), std::move(plugin_metadata)); } -@@ -256,6 +280,14 @@ void PluginInfoHostImpl::Context::DecidePluginStatus( +@@ -256,6 +272,14 @@ void PluginInfoHostImpl::Context::DecidePluginStatus( PluginMetadata::SecurityStatus security_status, const std::string& plugin_identifier, chrome::mojom::PluginStatus* status) const { @@ -118,7 +86,7 @@ index 484e07af5a98..0e62e20095c7 100644 if (security_status == PluginMetadata::SECURITY_STATUS_FULLY_TRUSTED) { *status = chrome::mojom::PluginStatus::kAllowed; return; -@@ -380,16 +412,36 @@ bool PluginInfoHostImpl::Context::FindEnabledPlugin( +@@ -380,16 +404,36 @@ bool PluginInfoHostImpl::Context::FindEnabledPlugin( return false; } diff --git a/patch/patches/service_factory_1680.patch b/patch/patches/service_factory_1680.patch deleted file mode 100644 index 675ace414..000000000 --- a/patch/patches/service_factory_1680.patch +++ /dev/null @@ -1,146 +0,0 @@ -diff --git chrome/browser/spellchecker/spellcheck_factory.cc chrome/browser/spellchecker/spellcheck_factory.cc -index 64b5243d510a..8ae3001f85fc 100644 ---- chrome/browser/spellchecker/spellcheck_factory.cc -+++ chrome/browser/spellchecker/spellcheck_factory.cc -@@ -17,6 +17,13 @@ - #include "services/service_manager/public/cpp/identity.h" - #include "ui/base/l10n/l10n_util.h" - -+namespace { -+ -+static base::LazyInstance::Leaky -+ g_spellcheck_service_factory = LAZY_INSTANCE_INITIALIZER; -+ -+} // namespace -+ - // static - SpellcheckService* SpellcheckServiceFactory::GetForContext( - content::BrowserContext* context) { -@@ -37,7 +44,7 @@ SpellcheckService* SpellcheckServiceFactory::GetForRenderer( - - // static - SpellcheckServiceFactory* SpellcheckServiceFactory::GetInstance() { -- return base::Singleton::get(); -+ return g_spellcheck_service_factory.Pointer(); - } - - SpellcheckServiceFactory::SpellcheckServiceFactory() -diff --git chrome/browser/spellchecker/spellcheck_factory.h chrome/browser/spellchecker/spellcheck_factory.h -index fd4e6643725c..fcdbb8e4db88 100644 ---- chrome/browser/spellchecker/spellcheck_factory.h -+++ chrome/browser/spellchecker/spellcheck_factory.h -@@ -7,7 +7,7 @@ - - #include "base/gtest_prod_util.h" - #include "base/macros.h" --#include "base/memory/singleton.h" -+#include "base/lazy_instance.h" - #include "components/keyed_service/content/browser_context_keyed_service_factory.h" - - class SpellcheckService; -@@ -31,7 +31,7 @@ class SpellcheckServiceFactory : public BrowserContextKeyedServiceFactory { - static SpellcheckServiceFactory* GetInstance(); - - private: -- friend struct base::DefaultSingletonTraits; -+ friend struct base::LazyInstanceTraitsBase; - - SpellcheckServiceFactory(); - ~SpellcheckServiceFactory() override; -diff --git chrome/browser/supervised_user/supervised_user_settings_service_factory.cc chrome/browser/supervised_user/supervised_user_settings_service_factory.cc -index 173ac3132161..473e56161cca 100644 ---- chrome/browser/supervised_user/supervised_user_settings_service_factory.cc -+++ chrome/browser/supervised_user/supervised_user_settings_service_factory.cc -@@ -9,6 +9,13 @@ - #include "chrome/browser/supervised_user/supervised_user_settings_service.h" - #include "components/keyed_service/content/browser_context_dependency_manager.h" - -+namespace { -+ -+base::LazyInstance::Leaky -+ g_service_factory = LAZY_INSTANCE_INITIALIZER; -+ -+} // namespace -+ - // static - SupervisedUserSettingsService* - SupervisedUserSettingsServiceFactory::GetForProfile(Profile* profile) { -@@ -19,7 +26,7 @@ SupervisedUserSettingsServiceFactory::GetForProfile(Profile* profile) { - // static - SupervisedUserSettingsServiceFactory* - SupervisedUserSettingsServiceFactory::GetInstance() { -- return base::Singleton::get(); -+ return g_service_factory.Pointer(); - } - - SupervisedUserSettingsServiceFactory::SupervisedUserSettingsServiceFactory() -diff --git chrome/browser/supervised_user/supervised_user_settings_service_factory.h chrome/browser/supervised_user/supervised_user_settings_service_factory.h -index 2907619549ba..f941fba363b5 100644 ---- chrome/browser/supervised_user/supervised_user_settings_service_factory.h -+++ chrome/browser/supervised_user/supervised_user_settings_service_factory.h -@@ -5,7 +5,7 @@ - #ifndef CHROME_BROWSER_SUPERVISED_USER_SUPERVISED_USER_SETTINGS_SERVICE_FACTORY_H_ - #define CHROME_BROWSER_SUPERVISED_USER_SUPERVISED_USER_SETTINGS_SERVICE_FACTORY_H_ - --#include "base/memory/singleton.h" -+#include "base/lazy_instance.h" - #include "chrome/browser/supervised_user/supervised_users.h" - #include "components/keyed_service/content/browser_context_keyed_service_factory.h" - -@@ -20,7 +20,7 @@ class SupervisedUserSettingsServiceFactory - static SupervisedUserSettingsServiceFactory* GetInstance(); - - private: -- friend struct base::DefaultSingletonTraits< -+ friend struct base::LazyInstanceTraitsBase< - SupervisedUserSettingsServiceFactory>; - - SupervisedUserSettingsServiceFactory(); -diff --git chrome/browser/ui/prefs/prefs_tab_helper.cc chrome/browser/ui/prefs/prefs_tab_helper.cc -index b9b2f059f694..a7b11cb75f22 100644 ---- chrome/browser/ui/prefs/prefs_tab_helper.cc -+++ chrome/browser/ui/prefs/prefs_tab_helper.cc -@@ -11,8 +11,8 @@ - #include - - #include "base/command_line.h" -+#include "base/lazy_instance.h" - #include "base/macros.h" --#include "base/memory/singleton.h" - #include "base/strings/string_number_conversions.h" - #include "base/strings/string_util.h" - #include "base/strings/stringprintf.h" -@@ -389,12 +389,10 @@ class PrefWatcherFactory : public BrowserContextKeyedServiceFactory { - GetInstance()->GetServiceForBrowserContext(profile, true)); - } - -- static PrefWatcherFactory* GetInstance() { -- return base::Singleton::get(); -- } -+ static PrefWatcherFactory* GetInstance(); - - private: -- friend struct base::DefaultSingletonTraits; -+ friend struct base::LazyInstanceTraitsBase; - - PrefWatcherFactory() : BrowserContextKeyedServiceFactory( - "PrefWatcher", -@@ -415,6 +413,18 @@ class PrefWatcherFactory : public BrowserContextKeyedServiceFactory { - } - }; - -+namespace { -+ -+base::LazyInstance::Leaky g_pref_watcher_factory = -+ LAZY_INSTANCE_INITIALIZER; -+ -+} // namespace -+ -+// static -+PrefWatcherFactory* PrefWatcherFactory::GetInstance() { -+ return g_pref_watcher_factory.Pointer(); -+} -+ - // static - PrefWatcher* PrefWatcher::Get(Profile* profile) { - return PrefWatcherFactory::GetForProfile(profile);