diff options
Diffstat (limited to 'chromium/components/arc/arc_features_parser.cc')
-rw-r--r-- | chromium/components/arc/arc_features_parser.cc | 25 |
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."; |