summaryrefslogtreecommitdiff
path: root/chromium/components/browser_context_keyed_service
diff options
context:
space:
mode:
authorAndras Becsi <andras.becsi@digia.com>2013-12-11 21:33:03 +0100
committerAndras Becsi <andras.becsi@digia.com>2013-12-13 12:34:07 +0100
commitf2a33ff9cbc6d19943f1c7fbddd1f23d23975577 (patch)
tree0586a32aa390ade8557dfd6b4897f43a07449578 /chromium/components/browser_context_keyed_service
parent5362912cdb5eea702b68ebe23702468d17c3017a (diff)
downloadqtwebengine-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')
-rw-r--r--chromium/components/browser_context_keyed_service/browser_context_dependency_manager.cc24
-rw-r--r--chromium/components/browser_context_keyed_service/browser_context_dependency_manager.h27
-rw-r--r--chromium/components/browser_context_keyed_service/browser_context_keyed_base_factory.cc1
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);