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