Remove some Profile-keyed factory boilerplate: management, omnibox, preference, push_messaging. Change ProfileKeyedAPIFactory<Foo>::GetInstance to Foo::GetFactoryInstance.

BUG=159265

Review URL: https://chromiumcodereview.appspot.com/11682005

git-svn-id: svn://svn.chromium.org/chrome/trunk/src@175555 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/chrome/browser/extensions/api/preference/preference_api.cc b/chrome/browser/extensions/api/preference/preference_api.cc
index e3e8ce5..0b7b3b1d 100644
--- a/chrome/browser/extensions/api/preference/preference_api.cc
+++ b/chrome/browser/extensions/api/preference/preference_api.cc
@@ -7,6 +7,7 @@
 #include <map>
 #include <utility>
 
+#include "base/lazy_instance.h"
 #include "base/memory/singleton.h"
 #include "base/stl_util.h"
 #include "base/stringprintf.h"
@@ -321,6 +322,14 @@
   ExtensionSystem::Get(profile_)->event_router()->UnregisterObserver(this);
 }
 
+static base::LazyInstance<ProfileKeyedAPIFactory<PreferenceAPI> >
+g_factory = LAZY_INSTANCE_INITIALIZER;
+
+// static
+ProfileKeyedAPIFactory<PreferenceAPI>* PreferenceAPI::GetFactoryInstance() {
+  return &g_factory.Get();
+}
+
 void PreferenceAPI::OnListenerAdded(const EventListenerInfo& details) {
   preference_event_router_.reset(new PreferenceEventRouter(profile_));
   ExtensionSystem::Get(profile_)->event_router()->UnregisterObserver(this);