Index: components/browser_context_keyed_service/browser_context_dependency_manager.cc |
diff --git a/components/browser_context_keyed_service/browser_context_dependency_manager.cc b/components/browser_context_keyed_service/browser_context_dependency_manager.cc |
index 1031f4e831026d376c47f35bac56e52cd304d636..66134233c76115c63547aee9eaaf7ebb63904c03 100644 |
--- a/components/browser_context_keyed_service/browser_context_dependency_manager.cc |
+++ b/components/browser_context_keyed_service/browser_context_dependency_manager.cc |
@@ -40,9 +40,22 @@ void BrowserContextDependencyManager::AddEdge( |
} |
void BrowserContextDependencyManager::CreateBrowserContextServices( |
- content::BrowserContext* context, bool is_testing_context) { |
+ content::BrowserContext* context) { |
+ DoCreateBrowserContextServices(context, false, false); |
+} |
+ |
+void BrowserContextDependencyManager::CreateBrowserContextServicesForTest( |
+ content::BrowserContext* context, |
+ bool force_register_prefs) { |
+ DoCreateBrowserContextServices(context, true, force_register_prefs); |
+} |
+ |
+void BrowserContextDependencyManager::DoCreateBrowserContextServices( |
+ content::BrowserContext* context, |
+ bool is_testing_context, |
+ bool force_register_prefs) { |
TRACE_EVENT0("browser", |
- "BrowserContextDependencyManager::CreateBrowserContextServices") |
+ "BrowserContextDependencyManager::DoCreateBrowserContextServices") |
#ifndef NDEBUG |
// Unmark |context| as dead. This exists because of unit tests, which will |
// often have similar stack structures. 0xWhatever might be created, go out |
@@ -64,9 +77,12 @@ void BrowserContextDependencyManager::CreateBrowserContextServices( |
BrowserContextKeyedBaseFactory* factory = |
static_cast<BrowserContextKeyedBaseFactory*>(construction_order[i]); |
- if (!context->IsOffTheRecord()) { |
+ if (!context->IsOffTheRecord() || force_register_prefs) { |
// We only register preferences on normal contexts because the incognito |
- // context shares the pref service with the normal one. |
+ // context shares the pref service with the normal one. Always register |
+ // for standalone testing contexts (testing contexts that don't have an |
+ // "original" profile set) as otherwise the preferences won't be |
+ // registered. |
factory->RegisterUserPrefsOnBrowserContext(context); |
} |