Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(6126)

Unified Diff: chrome/browser/policy/browser_policy_connector.cc

Issue 60823003: Introduced a ForwardingPolicyProvider. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: fixed ios Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: chrome/browser/policy/browser_policy_connector.cc
diff --git a/chrome/browser/policy/browser_policy_connector.cc b/chrome/browser/policy/browser_policy_connector.cc
index 71541825bb1671562f7d16d47507df0d00f451cb..5b3b63899edb255b002f82394f20f29cf020e9b9 100644
--- a/chrome/browser/policy/browser_policy_connector.cc
+++ b/chrome/browser/policy/browser_policy_connector.cc
@@ -387,11 +387,20 @@ void BrowserPolicyConnector::Shutdown() {
PolicyService* BrowserPolicyConnector::GetPolicyService() {
if (!policy_service_) {
+ // |providers| in decreasing order of priority.
std::vector<ConfigurationPolicyProvider*> providers;
+ if (g_testing_provider) {
+ providers.push_back(g_testing_provider);
+ } else {
+ if (platform_provider_)
+ providers.push_back(platform_provider_.get());
#if defined(OS_CHROMEOS)
- providers.push_back(&global_user_cloud_policy_provider_);
+ if (device_cloud_policy_manager_)
+ providers.push_back(device_cloud_policy_manager_.get());
+ providers.push_back(&global_user_cloud_policy_provider_);
#endif
- policy_service_ = CreatePolicyService(providers);
+ }
+ policy_service_.reset(new PolicyServiceImpl(providers));
}
return policy_service_.get();
}
@@ -404,6 +413,12 @@ CombinedSchemaRegistry* BrowserPolicyConnector::GetSchemaRegistry() {
return &schema_registry_;
}
+ConfigurationPolicyProvider* BrowserPolicyConnector::GetPlatformProvider() {
+ if (g_testing_provider)
+ return g_testing_provider;
+ return platform_provider_.get();
+}
+
#if defined(OS_CHROMEOS)
bool BrowserPolicyConnector::IsEnterpriseManaged() {
return install_attributes_ && install_attributes_->IsEnterpriseDevice();
@@ -427,25 +442,6 @@ void BrowserPolicyConnector::ScheduleServiceInitialization(
device_management_service_->ScheduleInitialization(delay_milliseconds);
}
-scoped_ptr<PolicyService> BrowserPolicyConnector::CreatePolicyService(
- const std::vector<ConfigurationPolicyProvider*>& additional_providers) {
- std::vector<ConfigurationPolicyProvider*> providers;
- if (g_testing_provider) {
- providers.push_back(g_testing_provider);
- } else {
- // |providers| in decreasing order of priority.
- if (platform_provider_)
- providers.push_back(platform_provider_.get());
-#if defined(OS_CHROMEOS)
- if (device_cloud_policy_manager_)
- providers.push_back(device_cloud_policy_manager_.get());
-#endif
- std::copy(additional_providers.begin(), additional_providers.end(),
- std::back_inserter(providers));
- }
- return scoped_ptr<PolicyService>(new PolicyServiceImpl(providers));
-}
-
const ConfigurationPolicyHandlerList*
BrowserPolicyConnector::GetHandlerList() const {
return handler_list_.get();
« no previous file with comments | « chrome/browser/policy/browser_policy_connector.h ('k') | chrome/browser/policy/configuration_policy_provider.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698