| Index: components/policy/core/browser/configuration_policy_handler_unittest.cc
 | 
| diff --git a/components/policy/core/browser/configuration_policy_handler_unittest.cc b/components/policy/core/browser/configuration_policy_handler_unittest.cc
 | 
| index a2eb764ec8822bdf1f961e9902fa63bab6837891..ba9c73f4fb586c14843730e6b95a6c08452d47a5 100644
 | 
| --- a/components/policy/core/browser/configuration_policy_handler_unittest.cc
 | 
| +++ b/components/policy/core/browser/configuration_policy_handler_unittest.cc
 | 
| @@ -9,6 +9,7 @@
 | 
|  #include "base/bind.h"
 | 
|  #include "base/callback.h"
 | 
|  #include "base/json/json_reader.h"
 | 
| +#include "base/memory/ptr_util.h"
 | 
|  #include "base/values.h"
 | 
|  #include "components/policy/core/browser/policy_error_map.h"
 | 
|  #include "components/policy/core/common/policy_map.h"
 | 
| @@ -59,33 +60,30 @@ TEST(StringToIntEnumListPolicyHandlerTest, CheckPolicySettings) {
 | 
|        kTestPref,
 | 
|        base::Bind(GetIntegerTypeMap));
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY,  POLICY_SCOPE_USER,
 | 
| -                 POLICY_SOURCE_CLOUD, list.DeepCopy(), nullptr);
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
| +                 POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_TRUE(errors.empty());
 | 
|  
 | 
|    list.AppendString("one");
 | 
|    policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
| -                 POLICY_SOURCE_CLOUD, list.DeepCopy(), nullptr);
 | 
| +                 POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_TRUE(errors.empty());
 | 
|  
 | 
|    list.AppendString("invalid");
 | 
|    policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
| -                 POLICY_SOURCE_CLOUD, list.DeepCopy(), nullptr);
 | 
| +                 POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_FALSE(errors.empty());
 | 
|    EXPECT_FALSE(errors.GetErrors(kTestPolicy).empty());
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::StringValue("no list"),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::StringValue("no list")), NULL);
 | 
|    errors.Clear();
 | 
|    EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_FALSE(errors.empty());
 | 
| @@ -104,7 +102,7 @@ TEST(StringMappingListPolicyHandlerTest, ApplyPolicySettings) {
 | 
|        base::Bind(GetIntegerTypeMap));
 | 
|  
 | 
|    policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
| -                 POLICY_SOURCE_CLOUD, list.DeepCopy(), nullptr);
 | 
| +                 POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
 | 
|    handler.ApplyPolicySettings(policy_map, &prefs);
 | 
|    EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
 | 
|    EXPECT_TRUE(base::Value::Equals(&expected, value));
 | 
| @@ -112,14 +110,14 @@ TEST(StringMappingListPolicyHandlerTest, ApplyPolicySettings) {
 | 
|    list.AppendString("two");
 | 
|    expected.AppendInteger(2);
 | 
|    policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
| -                 POLICY_SOURCE_CLOUD, list.DeepCopy(), nullptr);
 | 
| +                 POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
 | 
|    handler.ApplyPolicySettings(policy_map, &prefs);
 | 
|    EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
 | 
|    EXPECT_TRUE(base::Value::Equals(&expected, value));
 | 
|  
 | 
|    list.AppendString("invalid");
 | 
|    policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
| -                 POLICY_SOURCE_CLOUD, list.DeepCopy(), nullptr);
 | 
| +                 POLICY_SOURCE_CLOUD, list.CreateDeepCopy(), nullptr);
 | 
|    handler.ApplyPolicySettings(policy_map, &prefs);
 | 
|    EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
 | 
|    EXPECT_TRUE(base::Value::Equals(&expected, value));
 | 
| @@ -134,66 +132,48 @@ TEST(IntRangePolicyHandler, CheckPolicySettingsClamp) {
 | 
|    IntRangePolicyHandler handler(kTestPolicy, kTestPref, 0, 10, true);
 | 
|  
 | 
|    // Check that values lying in the accepted range are not rejected.
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(0),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(0)), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_TRUE(errors.empty());
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(5),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(5)), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_TRUE(errors.empty());
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(10),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(10)), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_TRUE(errors.empty());
 | 
|  
 | 
|    // Check that values lying outside the accepted range are not rejected
 | 
|    // (because clamping is enabled) but do yield a warning message.
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(-5),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(-5)), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_FALSE(errors.empty());
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(15),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(15)), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_FALSE(errors.empty());
 | 
|  
 | 
|    // Check that an entirely invalid value is rejected and yields an error
 | 
|    // message.
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::StringValue("invalid"),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::StringValue("invalid")), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_FALSE(errors.empty());
 | 
| @@ -208,66 +188,48 @@ TEST(IntRangePolicyHandler, CheckPolicySettingsDontClamp) {
 | 
|    IntRangePolicyHandler handler(kTestPolicy, kTestPref, 0, 10, false);
 | 
|  
 | 
|    // Check that values lying in the accepted range are not rejected.
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(0),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(0)), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_TRUE(errors.empty());
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(5),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(5)), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_TRUE(errors.empty());
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(10),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(10)), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_TRUE(errors.empty());
 | 
|  
 | 
|    // Check that values lying outside the accepted range are rejected and yield
 | 
|    // an error message.
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(-5),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(-5)), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_FALSE(errors.empty());
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(15),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(15)), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_FALSE(errors.empty());
 | 
|  
 | 
|    // Check that an entirely invalid value is rejected and yields an error
 | 
|    // message.
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::StringValue("invalid"),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::StringValue("invalid")), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_FALSE(errors.empty());
 | 
| @@ -284,36 +246,27 @@ TEST(IntRangePolicyHandler, ApplyPolicySettingsClamp) {
 | 
|    IntRangePolicyHandler handler(kTestPolicy, kTestPref, 0, 10, true);
 | 
|  
 | 
|    // Check that values lying in the accepted range are written to the pref.
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(0),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(0)), nullptr);
 | 
|    prefs.Clear();
 | 
|    handler.ApplyPolicySettings(policy_map, &prefs);
 | 
|    expected.reset(new base::FundamentalValue(0));
 | 
|    EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
 | 
|    EXPECT_TRUE(base::Value::Equals(expected.get(), value));
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(5),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(5)), nullptr);
 | 
|    prefs.Clear();
 | 
|    handler.ApplyPolicySettings(policy_map, &prefs);
 | 
|    expected.reset(new base::FundamentalValue(5));
 | 
|    EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
 | 
|    EXPECT_TRUE(base::Value::Equals(expected.get(), value));
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(10),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(10)), nullptr);
 | 
|    prefs.Clear();
 | 
|    handler.ApplyPolicySettings(policy_map, &prefs);
 | 
|    expected.reset(new base::FundamentalValue(10));
 | 
| @@ -322,24 +275,18 @@ TEST(IntRangePolicyHandler, ApplyPolicySettingsClamp) {
 | 
|  
 | 
|    // Check that values lying outside the accepted range are clamped and written
 | 
|    // to the pref.
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(-5),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(-5)), nullptr);
 | 
|    prefs.Clear();
 | 
|    handler.ApplyPolicySettings(policy_map, &prefs);
 | 
|    expected.reset(new base::FundamentalValue(0));
 | 
|    EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
 | 
|    EXPECT_TRUE(base::Value::Equals(expected.get(), value));
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(15),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(15)), nullptr);
 | 
|    prefs.Clear();
 | 
|    handler.ApplyPolicySettings(policy_map, &prefs);
 | 
|    expected.reset(new base::FundamentalValue(10));
 | 
| @@ -358,36 +305,27 @@ TEST(IntRangePolicyHandler, ApplyPolicySettingsDontClamp) {
 | 
|    IntRangePolicyHandler handler(kTestPolicy, kTestPref, 0, 10, true);
 | 
|  
 | 
|    // Check that values lying in the accepted range are written to the pref.
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(0),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(0)), nullptr);
 | 
|    prefs.Clear();
 | 
|    handler.ApplyPolicySettings(policy_map, &prefs);
 | 
|    expected.reset(new base::FundamentalValue(0));
 | 
|    EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
 | 
|    EXPECT_TRUE(base::Value::Equals(expected.get(), value));
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(5),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(5)), nullptr);
 | 
|    prefs.Clear();
 | 
|    handler.ApplyPolicySettings(policy_map, &prefs);
 | 
|    expected.reset(new base::FundamentalValue(5));
 | 
|    EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
 | 
|    EXPECT_TRUE(base::Value::Equals(expected.get(), value));
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(10),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(10)), nullptr);
 | 
|    prefs.Clear();
 | 
|    handler.ApplyPolicySettings(policy_map, &prefs);
 | 
|    expected.reset(new base::FundamentalValue(10));
 | 
| @@ -405,66 +343,48 @@ TEST(IntPercentageToDoublePolicyHandler, CheckPolicySettingsClamp) {
 | 
|        kTestPolicy, kTestPref, 0, 10, true);
 | 
|  
 | 
|    // Check that values lying in the accepted range are not rejected.
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(0),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(0)), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_TRUE(errors.empty());
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(5),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(5)), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_TRUE(errors.empty());
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(10),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(10)), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_TRUE(errors.empty());
 | 
|  
 | 
|    // Check that values lying outside the accepted range are not rejected
 | 
|    // (because clamping is enabled) but do yield a warning message.
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(-5),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(-5)), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_FALSE(errors.empty());
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(15),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(15)), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_FALSE(errors.empty());
 | 
|  
 | 
|    // Check that an entirely invalid value is rejected and yields an error
 | 
|    // message.
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::StringValue("invalid"),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::StringValue("invalid")), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_FALSE(errors.empty());
 | 
| @@ -480,66 +400,48 @@ TEST(IntPercentageToDoublePolicyHandler, CheckPolicySettingsDontClamp) {
 | 
|        kTestPolicy, kTestPref, 0, 10, false);
 | 
|  
 | 
|    // Check that values lying in the accepted range are not rejected.
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(0),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(0)), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_TRUE(errors.empty());
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(5),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(5)), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_TRUE(errors.empty());
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(10),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(10)), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_TRUE(errors.empty());
 | 
|  
 | 
|    // Check that values lying outside the accepted range are rejected and yield
 | 
|    // an error message.
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(-5),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(-5)), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_FALSE(errors.empty());
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(15),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(15)), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_FALSE(errors.empty());
 | 
|  
 | 
|    // Check that an entirely invalid value is rejected and yields an error
 | 
|    // message.
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::StringValue("invalid"),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::StringValue("invalid")), nullptr);
 | 
|    errors.Clear();
 | 
|    EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
 | 
|    EXPECT_FALSE(errors.empty());
 | 
| @@ -557,36 +459,27 @@ TEST(IntPercentageToDoublePolicyHandler, ApplyPolicySettingsClamp) {
 | 
|        kTestPolicy, kTestPref, 0, 10, true);
 | 
|  
 | 
|    // Check that values lying in the accepted range are written to the pref.
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(0),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(0)), nullptr);
 | 
|    prefs.Clear();
 | 
|    handler.ApplyPolicySettings(policy_map, &prefs);
 | 
|    expected.reset(new base::FundamentalValue(0.0));
 | 
|    EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
 | 
|    EXPECT_TRUE(base::Value::Equals(expected.get(), value));
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(5),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(5)), nullptr);
 | 
|    prefs.Clear();
 | 
|    handler.ApplyPolicySettings(policy_map, &prefs);
 | 
|    expected.reset(new base::FundamentalValue(0.05));
 | 
|    EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
 | 
|    EXPECT_TRUE(base::Value::Equals(expected.get(), value));
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(10),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(10)), nullptr);
 | 
|    prefs.Clear();
 | 
|    handler.ApplyPolicySettings(policy_map, &prefs);
 | 
|    expected.reset(new base::FundamentalValue(0.1));
 | 
| @@ -595,24 +488,18 @@ TEST(IntPercentageToDoublePolicyHandler, ApplyPolicySettingsClamp) {
 | 
|  
 | 
|    // Check that values lying outside the accepted range are clamped and written
 | 
|    // to the pref.
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(-5),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(-5)), nullptr);
 | 
|    prefs.Clear();
 | 
|    handler.ApplyPolicySettings(policy_map, &prefs);
 | 
|    expected.reset(new base::FundamentalValue(0.0));
 | 
|    EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
 | 
|    EXPECT_TRUE(base::Value::Equals(expected.get(), value));
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(15),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(15)), nullptr);
 | 
|    prefs.Clear();
 | 
|    handler.ApplyPolicySettings(policy_map, &prefs);
 | 
|    expected.reset(new base::FundamentalValue(0.1));
 | 
| @@ -632,36 +519,27 @@ TEST(IntPercentageToDoublePolicyHandler, ApplyPolicySettingsDontClamp) {
 | 
|        kTestPolicy, kTestPref, 0, 10, true);
 | 
|  
 | 
|    // Check that values lying in the accepted range are written to the pref.
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(0),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(0)), nullptr);
 | 
|    prefs.Clear();
 | 
|    handler.ApplyPolicySettings(policy_map, &prefs);
 | 
|    expected.reset(new base::FundamentalValue(0.0));
 | 
|    EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
 | 
|    EXPECT_TRUE(base::Value::Equals(expected.get(), value));
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(5),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(5)), nullptr);
 | 
|    prefs.Clear();
 | 
|    handler.ApplyPolicySettings(policy_map, &prefs);
 | 
|    expected.reset(new base::FundamentalValue(0.05));
 | 
|    EXPECT_TRUE(prefs.GetValue(kTestPref, &value));
 | 
|    EXPECT_TRUE(base::Value::Equals(expected.get(), value));
 | 
|  
 | 
| -  policy_map.Set(kTestPolicy,
 | 
| -                 POLICY_LEVEL_MANDATORY,
 | 
| -                 POLICY_SCOPE_USER,
 | 
| +  policy_map.Set(kTestPolicy, POLICY_LEVEL_MANDATORY, POLICY_SCOPE_USER,
 | 
|                   POLICY_SOURCE_CLOUD,
 | 
| -                 new base::FundamentalValue(10),
 | 
| -                 NULL);
 | 
| +                 base::WrapUnique(new base::FundamentalValue(10)), nullptr);
 | 
|    prefs.Clear();
 | 
|    handler.ApplyPolicySettings(policy_map, &prefs);
 | 
|    expected.reset(new base::FundamentalValue(0.1));
 | 
| 
 |