diff options
author | Andras Becsi <andras.becsi@digia.com> | 2013-12-11 21:33:03 +0100 |
---|---|---|
committer | Andras Becsi <andras.becsi@digia.com> | 2013-12-13 12:34:07 +0100 |
commit | f2a33ff9cbc6d19943f1c7fbddd1f23d23975577 (patch) | |
tree | 0586a32aa390ade8557dfd6b4897f43a07449578 /chromium/components/browser_context_keyed_service | |
parent | 5362912cdb5eea702b68ebe23702468d17c3017a (diff) | |
download | qtwebengine-chromium-f2a33ff9cbc6d19943f1c7fbddd1f23d23975577.tar.gz |
Update Chromium to branch 1650 (31.0.1650.63)
Change-Id: I57d8c832eaec1eb2364e0a8e7352a6dd354db99f
Reviewed-by: Jocelyn Turcotte <jocelyn.turcotte@digia.com>
Diffstat (limited to 'chromium/components/browser_context_keyed_service')
3 files changed, 41 insertions, 11 deletions
diff --git a/chromium/components/browser_context_keyed_service/browser_context_dependency_manager.cc b/chromium/components/browser_context_keyed_service/browser_context_dependency_manager.cc index 1031f4e8310..66134233c76 100644 --- a/chromium/components/browser_context_keyed_service/browser_context_dependency_manager.cc +++ b/chromium/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); } diff --git a/chromium/components/browser_context_keyed_service/browser_context_dependency_manager.h b/chromium/components/browser_context_keyed_service/browser_context_dependency_manager.h index 3e96eff98b5..5482aaa9283 100644 --- a/chromium/components/browser_context_keyed_service/browser_context_dependency_manager.h +++ b/chromium/components/browser_context_keyed_service/browser_context_dependency_manager.h @@ -34,12 +34,22 @@ class BROWSER_CONTEXT_KEYED_SERVICE_EXPORT BrowserContextDependencyManager { BrowserContextKeyedBaseFactory* dependee); // Called by each BrowserContext to alert us of its creation. Several services - // want to be started when a context is created. Testing configuration is also - // done at this time. (If you want your BrowserContextKeyedService to be - // started with the BrowserContext, override BrowserContextKeyedBaseFactory:: - // ServiceIsCreatedWithBrowserContext() to return true.) - void CreateBrowserContextServices(content::BrowserContext* context, - bool is_testing_context); + // want to be started when a context is created. If you want your + // BrowserContextKeyedService to be started with the BrowserContext, override + // BrowserContextKeyedBaseFactory::ServiceIsCreatedWithBrowserContext() to + // return true. This method also registers any service-related preferences + // for non-incognito profiles. + void CreateBrowserContextServices(content::BrowserContext* context); + + // Similar to CreateBrowserContextServices(), except this is used for creating + // test BrowserContexts - these contexts will not create services for any + // BrowserContextKeyedBaseFactories that return true from + // ServiceIsNULLWhileTesting(). Callers can pass |force_register_prefs| as + // true to have preferences registered even for incognito profiles - this + // allows tests to specify a standalone incognito profile without an + // associated normal profile. + void CreateBrowserContextServicesForTest(content::BrowserContext* context, + bool force_register_prefs); // Called by each BrowserContext to alert us that we should destroy services // associated with it. @@ -58,6 +68,11 @@ class BROWSER_CONTEXT_KEYED_SERVICE_EXPORT BrowserContextDependencyManager { friend class BrowserContextDependencyManagerUnittests; friend struct DefaultSingletonTraits<BrowserContextDependencyManager>; + // Helper function used by CreateBrowserContextServices[ForTest]. + void DoCreateBrowserContextServices(content::BrowserContext* context, + bool is_testing_context, + bool force_register_prefs); + BrowserContextDependencyManager(); virtual ~BrowserContextDependencyManager(); diff --git a/chromium/components/browser_context_keyed_service/browser_context_keyed_base_factory.cc b/chromium/components/browser_context_keyed_service/browser_context_keyed_base_factory.cc index e6caa69d63c..cc3f487d188 100644 --- a/chromium/components/browser_context_keyed_service/browser_context_keyed_base_factory.cc +++ b/chromium/components/browser_context_keyed_service/browser_context_keyed_base_factory.cc @@ -68,7 +68,6 @@ void BrowserContextKeyedBaseFactory::RegisterUserPrefsOnBrowserContext( // to enforce a uniquenes check here because some tests create one context and // multiple services of the same type attached to that context (serially, not // parallel) and we don't want to register multiple times on the same context. - DCHECK(!context->IsOffTheRecord()); std::set<content::BrowserContext*>::iterator it = registered_preferences_.find(context); |