Commit dd6eb156 authored by Nigel Tao's avatar Nigel Tao Committed by Commit Bot

Upgrade extensions from deprecated base::JSONReader API

Bug: 1070409
Change-Id: Id90483ff3ca77d241b72b1905fa564e1955ddb88
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2160829
Commit-Queue: Nigel Tao <nigeltao@chromium.org>
Reviewed-by: default avatarKaran Bhatia <karandeepb@chromium.org>
Cr-Commit-Position: refs/heads/master@{#762160}
parent b700e25a
......@@ -131,8 +131,8 @@ class BackgroundXhrWebstoreTest : public ExtensionApiTestWithManagementPolicy {
content::JsReplace("executeFetch($1);", url));
std::string json;
EXPECT_TRUE(message_queue.WaitForMessage(&json));
base::JSONReader reader(base::JSON_ALLOW_TRAILING_COMMAS);
std::unique_ptr<base::Value> value = reader.ReadToValueDeprecated(json);
base::Optional<base::Value> value =
base::JSONReader::Read(json, base::JSON_ALLOW_TRAILING_COMMAS);
std::string result;
EXPECT_TRUE(value->GetAsString(&result));
std::string trimmed_result;
......
......@@ -130,8 +130,8 @@ class CorbAndCorsExtensionTestBase : public ExtensionBrowserTest {
std::string PopString(content::DOMMessageQueue* message_queue) {
std::string json;
EXPECT_TRUE(message_queue->WaitForMessage(&json));
base::JSONReader reader(base::JSON_ALLOW_TRAILING_COMMAS);
std::unique_ptr<base::Value> value = reader.ReadToValueDeprecated(json);
base::Optional<base::Value> value =
base::JSONReader::Read(json, base::JSON_ALLOW_TRAILING_COMMAS);
std::string result;
EXPECT_TRUE(value->GetAsString(&result));
return result;
......
......@@ -192,14 +192,14 @@ class ExtensionManagementServiceTest : public testing::Test {
}
void SetExampleDictPref(const base::StringPiece example_dict_preference) {
std::string error_msg;
std::unique_ptr<base::Value> parsed =
base::JSONReader::ReadAndReturnErrorDeprecated(
base::JSONReader::ValueWithError result =
base::JSONReader::ReadAndReturnValueWithError(
example_dict_preference,
base::JSONParserOptions::JSON_ALLOW_TRAILING_COMMAS, NULL,
&error_msg);
ASSERT_TRUE(parsed && parsed->is_dict()) << error_msg;
SetPref(true, pref_names::kExtensionManagement, std::move(parsed));
base::JSONParserOptions::JSON_ALLOW_TRAILING_COMMAS);
ASSERT_TRUE(result.value && result.value->is_dict())
<< result.error_message;
SetPref(true, pref_names::kExtensionManagement,
base::Value::ToUniquePtrValue(std::move(*result.value)));
}
// Wrapper of ExtensionManagement::GetInstallationMode, |id| and
......
......@@ -114,11 +114,8 @@ TEST(ExtensionSettingsPolicyHandlerTest, CheckPolicySettingsURL) {
auto url_parses_successfully = [](const char* policy_template,
const std::string& url) {
std::string policy = base::StringPrintf(policy_template, url.c_str());
std::string error;
std::unique_ptr<base::Value> policy_value =
base::JSONReader::ReadAndReturnErrorDeprecated(
policy, base::JSONParserOptions::JSON_ALLOW_TRAILING_COMMAS,
nullptr, &error);
base::Optional<base::Value> policy_value = base::JSONReader::Read(
policy, base::JSONParserOptions::JSON_ALLOW_TRAILING_COMMAS);
if (!policy_value)
return false;
......@@ -127,10 +124,10 @@ TEST(ExtensionSettingsPolicyHandlerTest, CheckPolicySettingsURL) {
policy::PolicyMap policy_map;
ExtensionSettingsPolicyHandler handler(chrome_schema);
policy_map.Set(policy::key::kExtensionSettings,
policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
policy::POLICY_SOURCE_CLOUD, std::move(policy_value),
nullptr);
policy_map.Set(
policy::key::kExtensionSettings, policy::POLICY_LEVEL_MANDATORY,
policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD,
base::Value::ToUniquePtrValue(std::move(*policy_value)), nullptr);
policy::PolicyErrorMap errors;
return handler.CheckPolicySettings(policy_map, &errors) && errors.empty();
......@@ -355,12 +352,11 @@ TEST(ExtensionURLPatternListPolicyHandlerTest, ApplyPolicySettings) {
}
TEST(ExtensionSettingsPolicyHandlerTest, CheckPolicySettings) {
std::string error;
std::unique_ptr<base::Value> policy_value =
base::JSONReader::ReadAndReturnErrorDeprecated(
base::JSONReader::ValueWithError policy_result =
base::JSONReader::ReadAndReturnValueWithError(
kTestManagementPolicy1,
base::JSONParserOptions::JSON_ALLOW_TRAILING_COMMAS, NULL, &error);
ASSERT_TRUE(policy_value.get()) << error;
base::JSONParserOptions::JSON_ALLOW_TRAILING_COMMAS);
ASSERT_TRUE(policy_result.value) << policy_result.error_message;
policy::Schema chrome_schema =
policy::Schema::Wrap(policy::GetChromeSchemaData());
......@@ -368,9 +364,10 @@ TEST(ExtensionSettingsPolicyHandlerTest, CheckPolicySettings) {
policy::PolicyErrorMap errors;
ExtensionSettingsPolicyHandler handler(chrome_schema);
policy_map.Set(policy::key::kExtensionSettings,
policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
policy::POLICY_SOURCE_CLOUD, std::move(policy_value), nullptr);
policy_map.Set(
policy::key::kExtensionSettings, policy::POLICY_LEVEL_MANDATORY,
policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD,
base::Value::ToUniquePtrValue(std::move(*policy_result.value)), nullptr);
// CheckPolicySettings() fails due to missing update URL.
EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
EXPECT_FALSE(errors.empty());
......@@ -426,12 +423,11 @@ TEST(ExtensionSettingsPolicyHandlerTest, ApplyPolicySettings) {
base::win::ScopedDomainStateForTesting scoped_domain(true);
#endif
std::string error;
std::unique_ptr<base::Value> policy_value =
base::JSONReader::ReadAndReturnErrorDeprecated(
base::JSONReader::ValueWithError policy_result =
base::JSONReader::ReadAndReturnValueWithError(
kTestManagementPolicy2,
base::JSONParserOptions::JSON_ALLOW_TRAILING_COMMAS, NULL, &error);
ASSERT_TRUE(policy_value.get()) << error;
base::JSONParserOptions::JSON_ALLOW_TRAILING_COMMAS);
ASSERT_TRUE(policy_result.value) << policy_result.error_message;
policy::Schema chrome_schema =
policy::Schema::Wrap(policy::GetChromeSchemaData());
......@@ -440,15 +436,15 @@ TEST(ExtensionSettingsPolicyHandlerTest, ApplyPolicySettings) {
PrefValueMap prefs;
ExtensionSettingsPolicyHandler handler(chrome_schema);
policy_map.Set(policy::key::kExtensionSettings,
policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
policy::POLICY_SOURCE_CLOUD, policy_value->CreateDeepCopy(),
nullptr);
policy_map.Set(
policy::key::kExtensionSettings, policy::POLICY_LEVEL_MANDATORY,
policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD,
base::Value::ToUniquePtrValue(policy_result.value->Clone()), nullptr);
EXPECT_TRUE(handler.CheckPolicySettings(policy_map, &errors));
handler.ApplyPolicySettings(policy_map, &prefs);
base::Value* value = NULL;
ASSERT_TRUE(prefs.GetValue(pref_names::kExtensionManagement, &value));
EXPECT_EQ(*policy_value, *value);
EXPECT_EQ(*policy_result.value, *value);
}
// Only enterprise managed machines can auto install extensions from a location
......@@ -458,12 +454,10 @@ TEST(ExtensionSettingsPolicyHandlerTest, NonManagedOffWebstoreExtension) {
// Mark as not enterprise managed.
base::win::ScopedDomainStateForTesting scoped_domain(false);
std::string error;
std::unique_ptr<base::Value> policy_value =
base::JSONReader::ReadAndReturnErrorDeprecated(
kTestManagementPolicy2,
base::JSONParserOptions::JSON_ALLOW_TRAILING_COMMAS, nullptr, &error);
ASSERT_TRUE(policy_value.get()) << error;
auto policy_result = base::JSONReader::ReadAndReturnValueWithError(
kTestManagementPolicy2,
base::JSONParserOptions::JSON_ALLOW_TRAILING_COMMAS);
ASSERT_TRUE(policy_result.value) << policy_result.error_message;
policy::Schema chrome_schema =
policy::Schema::Wrap(policy::GetChromeSchemaData());
......@@ -472,10 +466,10 @@ TEST(ExtensionSettingsPolicyHandlerTest, NonManagedOffWebstoreExtension) {
PrefValueMap prefs;
ExtensionSettingsPolicyHandler handler(chrome_schema);
policy_map.Set(policy::key::kExtensionSettings,
policy::POLICY_LEVEL_MANDATORY, policy::POLICY_SCOPE_USER,
policy::POLICY_SOURCE_CLOUD, policy_value->CreateDeepCopy(),
nullptr);
policy_map.Set(
policy::key::kExtensionSettings, policy::POLICY_LEVEL_MANDATORY,
policy::POLICY_SCOPE_USER, policy::POLICY_SOURCE_CLOUD,
base::Value::ToUniquePtrValue(policy_result.value->Clone()), nullptr);
EXPECT_FALSE(handler.CheckPolicySettings(policy_map, &errors));
EXPECT_FALSE(errors.empty());
}
......
......@@ -38,23 +38,19 @@ const char* const kChildKinds[] = {"functions", "events"};
std::unique_ptr<base::DictionaryValue> LoadSchemaDictionary(
const std::string& name,
const base::StringPiece& schema) {
std::string error_message;
std::unique_ptr<base::Value> result(
base::JSONReader::ReadAndReturnErrorDeprecated(
schema,
base::JSON_PARSE_RFC, // options
NULL, // error code
&error_message));
base::JSONReader::ValueWithError result =
base::JSONReader::ReadAndReturnValueWithError(schema);
// Tracking down http://crbug.com/121424
char buf[128];
base::snprintf(buf, base::size(buf), "%s: (%d) '%s'", name.c_str(),
result.get() ? static_cast<int>(result->type()) : -1,
error_message.c_str());
result.value ? static_cast<int>(result.value->type()) : -1,
result.error_message.c_str());
CHECK(result.get()) << error_message << " for schema " << schema;
CHECK(result->is_dict()) << " for schema " << schema;
return base::DictionaryValue::From(std::move(result));
CHECK(result.value) << result.error_message << " for schema " << schema;
CHECK(result.value->is_dict()) << " for schema " << schema;
return base::DictionaryValue::From(
base::Value::ToUniquePtrValue(std::move(*result.value)));
}
const base::DictionaryValue* FindListItem(const base::ListValue* list,
......
......@@ -23,17 +23,17 @@ JSONFeatureProviderSource::~JSONFeatureProviderSource() {
void JSONFeatureProviderSource::LoadJSON(int resource_id) {
const base::StringPiece features_file =
ui::ResourceBundle::GetSharedInstance().GetRawDataResource(resource_id);
int error_code = 0;
std::string error_message;
std::unique_ptr<base::Value> value(
base::JSONReader::ReadAndReturnErrorDeprecated(
features_file, base::JSON_PARSE_RFC, &error_code, &error_message));
DCHECK(value) << "Could not load features: " << name_ << " " << error_message;
base::JSONReader::ValueWithError result =
base::JSONReader::ReadAndReturnValueWithError(features_file);
DCHECK(result.value) << "Could not load features: " << name_ << " "
<< result.error_message;
std::unique_ptr<base::DictionaryValue> value_as_dict;
if (value) {
CHECK(value->is_dict()) << name_;
value_as_dict = base::DictionaryValue::From(std::move(value));
if (result.value) {
CHECK(result.value->is_dict()) << name_;
value_as_dict = base::DictionaryValue::From(
base::Value::ToUniquePtrValue(std::move(*result.value)));
} else {
// There was some error loading the features file.
// http://crbug.com/176381
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment