summaryrefslogtreecommitdiff
path: root/chromium/components/arc/arc_features_parser.cc
diff options
context:
space:
mode:
Diffstat (limited to 'chromium/components/arc/arc_features_parser.cc')
-rw-r--r--chromium/components/arc/arc_features_parser.cc25
1 files changed, 12 insertions, 13 deletions
diff --git a/chromium/components/arc/arc_features_parser.cc b/chromium/components/arc/arc_features_parser.cc
index 9dfc871dc0f..75ec90b1ed7 100644
--- a/chromium/components/arc/arc_features_parser.cc
+++ b/chromium/components/arc/arc_features_parser.cc
@@ -9,6 +9,7 @@
#include "base/bind.h"
#include "base/files/file_util.h"
#include "base/json/json_reader.h"
+#include "base/logging.h"
#include "base/stl_util.h"
#include "base/strings/string_util.h"
#include "base/strings/stringprintf.h"
@@ -30,19 +31,16 @@ constexpr const base::FilePath::CharType kArcFeaturesJsonFile[] =
base::Optional<ArcFeatures> ParseFeaturesJson(base::StringPiece input_json) {
ArcFeatures arc_features;
- int error_code;
- std::string error_msg;
- std::unique_ptr<base::Value> json_value =
- base::JSONReader::ReadAndReturnErrorDeprecated(
- input_json, base::JSON_PARSE_RFC, &error_code, &error_msg);
- if (!json_value || !json_value->is_dict()) {
- LOG(ERROR) << "Error parsing feature JSON: " << error_msg;
+ base::JSONReader::ValueWithError parsed_json =
+ base::JSONReader::ReadAndReturnValueWithError(input_json);
+ if (!parsed_json.value || !parsed_json.value->is_dict()) {
+ LOG(ERROR) << "Error parsing feature JSON: " << parsed_json.error_message;
return base::nullopt;
}
// Parse each item under features.
const base::Value* feature_list =
- json_value->FindKeyOfType("features", base::Value::Type::LIST);
+ parsed_json.value->FindKeyOfType("features", base::Value::Type::LIST);
if (!feature_list) {
LOG(ERROR) << "No feature list in JSON.";
return base::nullopt;
@@ -65,8 +63,9 @@ base::Optional<ArcFeatures> ParseFeaturesJson(base::StringPiece input_json) {
}
// Parse each item under unavailable_features.
- const base::Value* unavailable_feature_list = json_value->FindKeyOfType(
- "unavailable_features", base::Value::Type::LIST);
+ const base::Value* unavailable_feature_list =
+ parsed_json.value->FindKeyOfType("unavailable_features",
+ base::Value::Type::LIST);
if (!unavailable_feature_list) {
LOG(ERROR) << "No unavailable feature list in JSON.";
return base::nullopt;
@@ -85,8 +84,8 @@ base::Optional<ArcFeatures> ParseFeaturesJson(base::StringPiece input_json) {
}
// Parse each item under properties.
- const base::Value* properties =
- json_value->FindKeyOfType("properties", base::Value::Type::DICTIONARY);
+ const base::Value* properties = parsed_json.value->FindKeyOfType(
+ "properties", base::Value::Type::DICTIONARY);
if (!properties) {
LOG(ERROR) << "No properties in JSON.";
return base::nullopt;
@@ -101,7 +100,7 @@ base::Optional<ArcFeatures> ParseFeaturesJson(base::StringPiece input_json) {
}
// Parse the Play Store version
- const base::Value* play_version = json_value->FindKeyOfType(
+ const base::Value* play_version = parsed_json.value->FindKeyOfType(
"play_store_version", base::Value::Type::STRING);
if (!play_version) {
LOG(ERROR) << "No Play Store version in JSON.";