diff --git chrome/browser/spellchecker/spellcheck_factory.cc chrome/browser/spellchecker/spellcheck_factory.cc index 148ec2086d1f..cc7f9ac83481 100644 --- chrome/browser/spellchecker/spellcheck_factory.cc +++ chrome/browser/spellchecker/spellcheck_factory.cc @@ -18,6 +18,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) { @@ -38,7 +45,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 23dfe243fb83..7eb879cadcbb 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" @@ -392,12 +392,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", @@ -418,6 +416,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);