| OLD | NEW |
| 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2010 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "chrome/browser/configuration_policy_pref_store.h" | 5 #include "chrome/browser/configuration_policy_pref_store.h" |
| 6 | 6 |
| 7 #include "base/command_line.h" | 7 #include "base/command_line.h" |
| 8 #include "base/logging.h" | 8 #include "base/logging.h" |
| 9 #include "base/values.h" | 9 #include "base/values.h" |
| 10 #include "chrome/browser/configuration_policy_provider.h" | 10 #include "chrome/browser/configuration_policy_provider.h" |
| (...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 217 << " system proxy settings should be used but also specifies" | 217 << " system proxy settings should be used but also specifies" |
| 218 << " an explicit proxy configuration."; | 218 << " an explicit proxy configuration."; |
| 219 } | 219 } |
| 220 | 220 |
| 221 // If the policy was a proxy policy, cleanup |value|. | 221 // If the policy was a proxy policy, cleanup |value|. |
| 222 if (result && value) | 222 if (result && value) |
| 223 delete value; | 223 delete value; |
| 224 return result; | 224 return result; |
| 225 } | 225 } |
| 226 | 226 |
| 227 bool ConfigurationPolicyPrefStore::ApplySyncPolicy(PolicyType policy, |
| 228 Value* value) { |
| 229 if (policy == ConfigurationPolicyStore::kPolicySyncDisabled) { |
| 230 bool disable_sync; |
| 231 if (value->GetAsBoolean(&disable_sync) && disable_sync) |
| 232 prefs_->Set(prefs::kSyncManaged, value); |
| 233 else |
| 234 delete value; |
| 235 return true; |
| 236 } |
| 237 return false; |
| 238 } |
| 239 |
| 227 bool ConfigurationPolicyPrefStore::ApplyPolicyFromMap(PolicyType policy, | 240 bool ConfigurationPolicyPrefStore::ApplyPolicyFromMap(PolicyType policy, |
| 228 Value* value, const PolicyToPreferenceMapEntry map[], int size) { | 241 Value* value, const PolicyToPreferenceMapEntry map[], int size) { |
| 229 const PolicyToPreferenceMapEntry* end = map + size; | 242 const PolicyToPreferenceMapEntry* end = map + size; |
| 230 for (const PolicyToPreferenceMapEntry* current = map; | 243 for (const PolicyToPreferenceMapEntry* current = map; |
| 231 current != end; ++current) { | 244 current != end; ++current) { |
| 232 if (current->policy_type == policy) { | 245 if (current->policy_type == policy) { |
| 233 DCHECK(current->value_type == value->GetType()); | 246 DCHECK(current->value_type == value->GetType()); |
| 234 prefs_->Set(current->preference_path, value); | 247 prefs_->Set(current->preference_path, value); |
| 235 return true; | 248 return true; |
| 236 } | 249 } |
| 237 } | 250 } |
| 238 return false; | 251 return false; |
| 239 } | 252 } |
| 240 | 253 |
| 241 void ConfigurationPolicyPrefStore::Apply(PolicyType policy, Value* value) { | 254 void ConfigurationPolicyPrefStore::Apply(PolicyType policy, Value* value) { |
| 242 if (ApplyProxyPolicy(policy, value)) | 255 if (ApplyProxyPolicy(policy, value)) |
| 243 return; | 256 return; |
| 244 | 257 |
| 258 if (ApplySyncPolicy(policy, value)) |
| 259 return; |
| 260 |
| 245 if (ApplyPolicyFromMap(policy, value, simple_policy_map_, | 261 if (ApplyPolicyFromMap(policy, value, simple_policy_map_, |
| 246 arraysize(simple_policy_map_))) | 262 arraysize(simple_policy_map_))) |
| 247 return; | 263 return; |
| 248 | 264 |
| 249 // Other policy implementations go here. | 265 // Other policy implementations go here. |
| 250 NOTIMPLEMENTED(); | 266 NOTIMPLEMENTED(); |
| 251 } | 267 } |
| 252 | |
| OLD | NEW |