| Index: chrome/browser/policy/device_policy_cache.cc
|
| diff --git a/chrome/browser/policy/device_policy_cache.cc b/chrome/browser/policy/device_policy_cache.cc
|
| index c7befed40f8ece9af1706e1127b5bedba1e35166..aada619255b549421456f88ca43d4d74db52eb23 100644
|
| --- a/chrome/browser/policy/device_policy_cache.cc
|
| +++ b/chrome/browser/policy/device_policy_cache.cc
|
| @@ -347,6 +347,17 @@ void DevicePolicyCache::CheckFetchingDone() {
|
| }
|
| }
|
|
|
| +void DevicePolicyCache::DecodeDevicePolicy(
|
| + const em::ChromeDeviceSettingsProto& policy,
|
| + PolicyMap* policies) {
|
| + // Decode the various groups of policies.
|
| + DecodeLoginPolicies(policy, policies);
|
| + DecodeKioskPolicies(policy, policies);
|
| + DecodeNetworkPolicies(policy, policies, install_attributes_);
|
| + DecodeReportingPolicies(policy, policies);
|
| + DecodeGenericPolicies(policy, policies);
|
| +}
|
| +
|
| // static
|
| void DevicePolicyCache::DecodeLoginPolicies(
|
| const em::ChromeDeviceSettingsProto& policy,
|
| @@ -473,7 +484,8 @@ void DevicePolicyCache::DecodeKioskPolicies(
|
| // static
|
| void DevicePolicyCache::DecodeNetworkPolicies(
|
| const em::ChromeDeviceSettingsProto& policy,
|
| - PolicyMap* policies) {
|
| + PolicyMap* policies,
|
| + EnterpriseInstallAttributes* install_attributes) {
|
| if (policy.has_device_proxy_settings()) {
|
| const em::DeviceProxySettingsProto& container(
|
| policy.device_proxy_settings());
|
| @@ -488,9 +500,15 @@ void DevicePolicyCache::DecodeNetworkPolicies(
|
| proxy_settings->SetString(key::kProxyBypassList,
|
| container.proxy_bypass_list());
|
| }
|
| +
|
| + // Figure out the level. Proxy policy is mandatory in kiosk mode.
|
| + PolicyLevel level = POLICY_LEVEL_RECOMMENDED;
|
| + if (install_attributes->GetMode() == DEVICE_MODE_KIOSK)
|
| + level = POLICY_LEVEL_MANDATORY;
|
| +
|
| if (!proxy_settings->empty()) {
|
| policies->Set(key::kProxySettings,
|
| - POLICY_LEVEL_RECOMMENDED,
|
| + level,
|
| POLICY_SCOPE_MACHINE,
|
| proxy_settings.release());
|
| }
|
| @@ -636,16 +654,4 @@ void DevicePolicyCache::DecodeGenericPolicies(
|
| }
|
| }
|
|
|
| -// static
|
| -void DevicePolicyCache::DecodeDevicePolicy(
|
| - const em::ChromeDeviceSettingsProto& policy,
|
| - PolicyMap* policies) {
|
| - // Decode the various groups of policies.
|
| - DecodeLoginPolicies(policy, policies);
|
| - DecodeKioskPolicies(policy, policies);
|
| - DecodeNetworkPolicies(policy, policies);
|
| - DecodeReportingPolicies(policy, policies);
|
| - DecodeGenericPolicies(policy, policies);
|
| -}
|
| -
|
| } // namespace policy
|
|
|