From 8f5df4027b672e36d9968d1eeddfde6ad4651ad2 Mon Sep 17 00:00:00 2001 From: Marshall Greenblatt Date: Thu, 6 Sep 2018 21:52:56 +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 | 143 ----------------------- 3 files changed, 7 insertions(+), 188 deletions(-) delete mode 100644 patch/patches/service_factory_1680.patch diff --git a/patch/patch.cfg b/patch/patch.cfg index a8672499a..51b7e5ddb 100644 --- a/patch/patch.cfg +++ b/patch/patch.cfg @@ -124,12 +124,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 84fa0c484..d6aa612cb 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 52d374d1fe4e..1ac12af269c9 100644 +index 52d374d1fe4e..c113ae8634e0 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 52d374d1fe4e..1ac12af269c9 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 52d374d1fe4e..1ac12af269c9 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 52d374d1fe4e..1ac12af269c9 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 52d374d1fe4e..1ac12af269c9 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 52d374d1fe4e..1ac12af269c9 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 52d374d1fe4e..1ac12af269c9 100644 if (security_status == PluginMetadata::SECURITY_STATUS_FULLY_TRUSTED) { *status = chrome::mojom::PluginStatus::kAllowed; return; -@@ -379,16 +411,36 @@ bool PluginInfoHostImpl::Context::FindEnabledPlugin( +@@ -379,16 +403,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 efbab9166..000000000 --- a/patch/patches/service_factory_1680.patch +++ /dev/null @@ -1,143 +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/pref_watcher.cc chrome/browser/ui/prefs/pref_watcher.cc -index e38f8c50b10f..3b486f3b8daf 100644 ---- chrome/browser/ui/prefs/pref_watcher.cc -+++ chrome/browser/ui/prefs/pref_watcher.cc -@@ -46,6 +46,9 @@ const char* const kWebPrefsToObserve[] = { - - const int kWebPrefsToObserveLength = base::size(kWebPrefsToObserve); - -+base::LazyInstance::Leaky g_pref_watcher_factory = -+ LAZY_INSTANCE_INITIALIZER; -+ - } // namespace - - // Watching all these settings per tab is slow when a user has a lot of tabs and -@@ -124,7 +127,7 @@ PrefWatcher* PrefWatcherFactory::GetForProfile(Profile* profile) { - - // static - PrefWatcherFactory* PrefWatcherFactory::GetInstance() { -- return base::Singleton::get(); -+ return g_pref_watcher_factory.Pointer(); - } - - PrefWatcherFactory::PrefWatcherFactory() -diff --git chrome/browser/ui/prefs/pref_watcher.h chrome/browser/ui/prefs/pref_watcher.h -index 061ca27681fa..0538f62f3f25 100644 ---- chrome/browser/ui/prefs/pref_watcher.h -+++ chrome/browser/ui/prefs/pref_watcher.h -@@ -5,7 +5,7 @@ - #ifndef CHROME_BROWSER_UI_PREFS_PREF_WATCHER_H_ - #define CHROME_BROWSER_UI_PREFS_PREF_WATCHER_H_ - --#include "base/memory/singleton.h" -+#include "base/lazy_instance.h" - #include "components/keyed_service/content/browser_context_keyed_service_factory.h" - #include "components/keyed_service/core/keyed_service.h" - #include "components/prefs/pref_change_registrar.h" -@@ -58,7 +58,7 @@ class PrefWatcherFactory : public BrowserContextKeyedServiceFactory { - static PrefWatcherFactory* GetInstance(); - - private: -- friend struct base::DefaultSingletonTraits; -+ friend struct base::LazyInstanceTraitsBase; - - PrefWatcherFactory(); - ~PrefWatcherFactory() override;