diff --git prefs_tab_helper.cc prefs_tab_helper.cc index 5cb2d6e..b0c8689 100644 --- prefs_tab_helper.cc +++ prefs_tab_helper.cc @@ -7,7 +7,7 @@ #include #include -#include "base/memory/singleton.h" +#include "base/lazy_instance.h" #include "base/prefs/overlay_user_pref_store.h" #include "base/prefs/pref_change_registrar.h" #include "base/prefs/pref_service.h" @@ -413,12 +413,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::DefaultLazyInstanceTraits; PrefWatcherFactory() : BrowserContextKeyedServiceFactory( "PrefWatcher", @@ -439,6 +437,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);