Index: chrome/browser/protector/protector_service_factory.cc |
diff --git a/chrome/browser/protector/protector_service_factory.cc b/chrome/browser/protector/protector_service_factory.cc |
index 504673ce323e3e425f7c3064712679daa713f920..ceb487b912f4be35e4610395384ca862c0e9087d 100644 |
--- a/chrome/browser/protector/protector_service_factory.cc |
+++ b/chrome/browser/protector/protector_service_factory.cc |
@@ -6,6 +6,7 @@ |
#include "chrome/browser/profiles/profile.h" |
#include "chrome/browser/profiles/profile_dependency_manager.h" |
+#include "chrome/browser/protector/protected_prefs_watcher.h" |
#include "chrome/browser/protector/protector_service.h" |
#include "chrome/browser/search_engines/template_url_service_factory.h" |
@@ -25,8 +26,13 @@ ProtectorServiceFactory* ProtectorServiceFactory::GetInstance() { |
ProtectorServiceFactory::ProtectorServiceFactory() |
: ProfileKeyedServiceFactory("ProtectorService", |
ProfileDependencyManager::GetInstance()) { |
+ // Dependencies for the correct service shutdown order. |
DependsOn(GlobalErrorServiceFactory::GetInstance()); |
DependsOn(TemplateURLServiceFactory::GetInstance()); |
+ // BUG(ivankr): to be bullet-proof, ProtectorService must outlive the |
+ // ExtensionService as well and be the second to last thing destroyed in |
+ // ProfileImpl (the last being the PrefService itself). This cannot be |
+ // accomplished with ProfileKeyedService implementation. |
whywhat
2012/03/07 18:53:30
File a bug against owners of ExtensionService or P
Ivan Korotkov
2012/03/11 12:59:44
They are already working on moving services out of
|
} |
ProtectorServiceFactory::~ProtectorServiceFactory() { |
@@ -37,6 +43,16 @@ ProfileKeyedService* ProtectorServiceFactory::BuildServiceInstanceFor( |
return new ProtectorService(profile); |
} |
+void ProtectorServiceFactory::RegisterUserPrefs(PrefService* user_prefs) { |
+ ProtectedPrefsWatcher::RegisterUserPrefs(user_prefs); |
+} |
+ |
+bool ProtectorServiceFactory::ServiceIsCreatedWithProfile() { |
+ // ProtectorService watches changes for protected prefs so it must be started |
+ // right with the profile creation. |
+ return true; |
+} |
+ |
bool ProtectorServiceFactory::ServiceRedirectedInIncognito() { |
return true; |
} |