| Index: chrome/browser/chromeos/policy/device_local_account_policy_provider.cc
|
| diff --git a/chrome/browser/chromeos/policy/device_local_account_policy_provider.cc b/chrome/browser/chromeos/policy/device_local_account_policy_provider.cc
|
| index 697ff977008a9ae8c14c2e375f7b0d13ed639a5a..3c23308585c6d7b9229df8babb9e01f2cf516d44 100644
|
| --- a/chrome/browser/chromeos/policy/device_local_account_policy_provider.cc
|
| +++ b/chrome/browser/chromeos/policy/device_local_account_policy_provider.cc
|
| @@ -7,6 +7,7 @@
|
| #include <utility>
|
|
|
| #include "base/bind.h"
|
| +#include "base/memory/ptr_util.h"
|
| #include "base/values.h"
|
| #include "chrome/browser/chromeos/policy/device_local_account.h"
|
| #include "chrome/browser/chromeos/policy/device_local_account_external_data_manager.h"
|
| @@ -59,40 +60,29 @@ DeviceLocalAccountPolicyProvider::Create(
|
| // suspend while leaving the session running, which is not desirable for
|
| // public sessions.
|
| chrome_policy_overrides->Set(
|
| - key::kLidCloseAction,
|
| - POLICY_LEVEL_MANDATORY,
|
| - POLICY_SCOPE_MACHINE,
|
| + key::kLidCloseAction, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
|
| POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE,
|
| - new base::FundamentalValue(
|
| - chromeos::PowerPolicyController::ACTION_STOP_SESSION),
|
| - NULL);
|
| + base::WrapUnique(new base::FundamentalValue(
|
| + chromeos::PowerPolicyController::ACTION_STOP_SESSION)),
|
| + nullptr);
|
| // Force the |ShelfAutoHideBehavior| policy to |Never|, ensuring that the
|
| // ash shelf does not auto-hide.
|
| chrome_policy_overrides->Set(
|
| - key::kShelfAutoHideBehavior,
|
| - POLICY_LEVEL_MANDATORY,
|
| - POLICY_SCOPE_MACHINE,
|
| - POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE,
|
| - new base::StringValue("Never"),
|
| - NULL);
|
| + key::kShelfAutoHideBehavior, POLICY_LEVEL_MANDATORY,
|
| + POLICY_SCOPE_MACHINE, POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE,
|
| + base::WrapUnique(new base::StringValue("Never")), nullptr);
|
| // Force the |ShowLogoutButtonInTray| policy to |true|, ensuring that a big,
|
| // red logout button is shown in the ash system tray.
|
| chrome_policy_overrides->Set(
|
| - key::kShowLogoutButtonInTray,
|
| - POLICY_LEVEL_MANDATORY,
|
| - POLICY_SCOPE_MACHINE,
|
| - POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE,
|
| - new base::FundamentalValue(true),
|
| - NULL);
|
| + key::kShowLogoutButtonInTray, POLICY_LEVEL_MANDATORY,
|
| + POLICY_SCOPE_MACHINE, POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE,
|
| + base::WrapUnique(new base::FundamentalValue(true)), nullptr);
|
| // Force the |FullscreenAllowed| policy to |false|, ensuring that the ash
|
| // shelf cannot be hidden by entering fullscreen mode.
|
| chrome_policy_overrides->Set(
|
| - key::kFullscreenAllowed,
|
| - POLICY_LEVEL_MANDATORY,
|
| - POLICY_SCOPE_MACHINE,
|
| + key::kFullscreenAllowed, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_MACHINE,
|
| POLICY_SOURCE_PUBLIC_SESSION_OVERRIDE,
|
| - new base::FundamentalValue(false),
|
| - NULL);
|
| + base::WrapUnique(new base::FundamentalValue(false)), nullptr);
|
| }
|
|
|
| std::unique_ptr<DeviceLocalAccountPolicyProvider> provider(
|
| @@ -173,16 +163,10 @@ void DeviceLocalAccountPolicyProvider::UpdateFromBroker() {
|
| if (chrome_policy_overrides_) {
|
| PolicyMap& chrome_policy =
|
| bundle->Get(PolicyNamespace(POLICY_DOMAIN_CHROME, std::string()));
|
| - for (PolicyMap::const_iterator it(chrome_policy_overrides_->begin());
|
| - it != chrome_policy_overrides_->end();
|
| - ++it) {
|
| - const PolicyMap::Entry& entry = it->second;
|
| - chrome_policy.Set(it->first,
|
| - entry.level,
|
| - entry.scope,
|
| - entry.source,
|
| - entry.value->DeepCopy(),
|
| - nullptr);
|
| + for (const auto& policy_override : *chrome_policy_overrides_) {
|
| + const PolicyMap::Entry& entry = policy_override.second;
|
| + chrome_policy.Set(policy_override.first, entry.level, entry.scope,
|
| + entry.source, entry.value->CreateDeepCopy(), nullptr);
|
| }
|
| }
|
|
|
|
|