diff --git prefs_tab_helper.cc prefs_tab_helper.cc index 36d6fe9..a875d1e 100644 --- prefs_tab_helper.cc +++ prefs_tab_helper.cc @@ -12,7 +12,7 @@ #include "base/command_line.h" #include "base/macros.h" -#include "base/memory/singleton.h" +#include "base/lazy_instance.h" #include "base/metrics/field_trial.h" #include "base/strings/string_number_conversions.h" #include "base/strings/string_util.h" @@ -431,12 +431,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", @@ -457,6 +455,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);