platform2: Fix issues with new version of libchrome libchrome r334380 has the following breaking changes that need to be fixed: - base::JSONWriter::Write() and base::JSONWriter::WriteWithOptions() take "const base::Value&" instead of "const base::Value*" - base::JSONReader::Read() and base::JSONReader::ReadAndReturnError() return a scoped_ptr<base::Value> instead of base::Value* - base/safe_strerror_posix.h is moved to base/posix/safe_strerror.h - safe_strerror() is now in "base" namespace - StartsWithASCII(), EndsWith(), StringToUpperASCII(), LowerCaseEqualsASCII() are now in "base" namespace - ObserverList<T> is now in "base" namespace - base::PrintTo(base::FilePath) used in gtest is now moved to libchrome-test library and as such, unit test runners need to link to this library now. - crypto::RSAPrivateKey::CreateSensitive() is now removed from //crypto, so some of tests in chromeos-login that used that function had to be changed to use crypto::GenerateRSAKeyPairNSS() directly. - UnixDomanSocket class is now in "base" namespace - Pickle class is now in "base" namespace BUG=chromium:496469 TEST=`./build_packages` CQ-DEPEND=CL:277662 Change-Id: I36e5fbf2e36a92068873ffbd44020c862a3ed9e3 Reviewed-on: https://chromium-review.googlesource.com/277671 Reviewed-by: Alex Vakulenko <avakulenko@chromium.org> Commit-Queue: Alex Vakulenko <avakulenko@chromium.org> Trybot-Ready: Alex Vakulenko <avakulenko@chromium.org> Tested-by: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/buffet/buffet_client.cc b/buffet/buffet_client.cc index ab8f189..8c9e075 100644 --- a/buffet/buffet_client.cc +++ b/buffet/buffet_client.cc
@@ -337,8 +337,10 @@ ManagerProxy* manager_proxy) { ErrorPtr error; std::string error_message; - std::unique_ptr<base::Value> json(base::JSONReader::ReadAndReturnError( - value, base::JSON_PARSE_RFC, nullptr, &error_message)); + std::unique_ptr<base::Value> json( + base::JSONReader::ReadAndReturnError(value, base::JSON_PARSE_RFC, + nullptr, &error_message) + .release()); if (!json) { Error::AddTo(&error, FROM_HERE, chromeos::errors::json::kDomain, chromeos::errors::json::kParseError, error_message);
diff --git a/buffet/commands/command_manager_unittest.cc b/buffet/commands/command_manager_unittest.cc index f270655..81c2a5b 100644 --- a/buffet/commands/command_manager_unittest.cc +++ b/buffet/commands/command_manager_unittest.cc
@@ -56,7 +56,7 @@ static void SaveJsonToFile(const base::DictionaryValue& dict, const base::FilePath& file_path) { std::string json; - base::JSONWriter::Write(&dict, &json); + base::JSONWriter::Write(dict, &json); const int bytes_to_write = static_cast<int>(json.size()); CHECK_EQ(bytes_to_write, WriteFile(file_path, json.data(), bytes_to_write)); }
diff --git a/buffet/commands/prop_constraints.cc b/buffet/commands/prop_constraints.cc index f773290..1fd43e6 100644 --- a/buffet/commands/prop_constraints.cc +++ b/buffet/commands/prop_constraints.cc
@@ -19,7 +19,7 @@ std::string result; auto json = value.ToJson(nullptr); if (json) - base::JSONWriter::Write(json.get(), &result); + base::JSONWriter::Write(*json, &result); return result; }
diff --git a/buffet/commands/schema_utils.cc b/buffet/commands/schema_utils.cc index 47b757f..efb758e 100644 --- a/buffet/commands/schema_utils.cc +++ b/buffet/commands/schema_utils.cc
@@ -21,7 +21,7 @@ const std::string& expected_type, chromeos::ErrorPtr* error) { std::string value_as_string; - base::JSONWriter::Write(value_in, &value_as_string); + base::JSONWriter::Write(*value_in, &value_as_string); chromeos::Error::AddToPrintf(error, FROM_HERE, errors::commands::kDomain, errors::commands::kTypeMismatch, "Unable to convert value %s into %s", @@ -255,14 +255,14 @@ std::string ToString(const native_types::Object& obj) { auto val = TypedValueToJson(obj, nullptr); std::string str; - base::JSONWriter::Write(val.get(), &str); + base::JSONWriter::Write(*val, &str); return str; } std::string ToString(const native_types::Array& arr) { auto val = TypedValueToJson(arr, nullptr); std::string str; - base::JSONWriter::Write(val.get(), &str); + base::JSONWriter::Write(*val, &str); return str; }
diff --git a/buffet/commands/unittest_utils.cc b/buffet/commands/unittest_utils.cc index be4d4e7..df07289 100644 --- a/buffet/commands/unittest_utils.cc +++ b/buffet/commands/unittest_utils.cc
@@ -16,8 +16,10 @@ std::replace(json2.begin(), json2.end(), '\'', '"'); int error = 0; std::string message; - std::unique_ptr<base::Value> value{base::JSONReader::ReadAndReturnError( - json2, base::JSON_PARSE_RFC, &error, &message)}; + std::unique_ptr<base::Value> value{ + base::JSONReader::ReadAndReturnError(json2, base::JSON_PARSE_RFC, &error, + &message) + .release()}; CHECK(value) << "Failed to load JSON: " << message << ", " << json; return value; }
diff --git a/buffet/device_registration_info.cc b/buffet/device_registration_info.cc index cb0cb3e..279e2b9 100644 --- a/buffet/device_registration_info.cc +++ b/buffet/device_registration_info.cc
@@ -579,7 +579,7 @@ std::string data; if (body) - base::JSONWriter::Write(body, &data); + base::JSONWriter::Write(*body, &data); const std::string mime_type{chromeos::mime::AppendParameter( chromeos::mime::application::kJson,
diff --git a/buffet/manager.cc b/buffet/manager.cc index 86f6988..6921f47 100644 --- a/buffet/manager.cc +++ b/buffet/manager.cc
@@ -153,8 +153,8 @@ } std::string device_info_str; - base::JSONWriter::WriteWithOptions(device_info.get(), - base::JSONWriter::OPTIONS_PRETTY_PRINT, &device_info_str); + base::JSONWriter::WriteWithOptions( + *device_info, base::JSONWriter::OPTIONS_PRETTY_PRINT, &device_info_str); response->Return(device_info_str); } @@ -191,7 +191,7 @@ if (!json) return false; base::JSONWriter::WriteWithOptions( - json.get(), base::JSONWriter::OPTIONS_PRETTY_PRINT, state); + *json, base::JSONWriter::OPTIONS_PRETTY_PRINT, state); return true; } @@ -199,8 +199,10 @@ const std::string& json_command, const std::string& in_user_role) { std::string error_message; - std::unique_ptr<base::Value> value(base::JSONReader::ReadAndReturnError( - json_command, base::JSON_PARSE_RFC, nullptr, &error_message)); + std::unique_ptr<base::Value> value( + base::JSONReader::ReadAndReturnError(json_command, base::JSON_PARSE_RFC, + nullptr, &error_message) + .release()); const base::DictionaryValue* command{nullptr}; if (!value || !value->GetAsDictionary(&command)) { return response->ReplyWithError(FROM_HERE, chromeos::errors::json::kDomain, @@ -229,8 +231,8 @@ return; } std::string command_str; - base::JSONWriter::WriteWithOptions(command->ToJson().get(), - base::JSONWriter::OPTIONS_PRETTY_PRINT, &command_str); + base::JSONWriter::WriteWithOptions( + *command->ToJson(), base::JSONWriter::OPTIONS_PRETTY_PRINT, &command_str); response->Return(command_str); } @@ -316,8 +318,8 @@ }, true, nullptr); CHECK(commands); std::string json; - base::JSONWriter::WriteWithOptions(commands.get(), - base::JSONWriter::OPTIONS_PRETTY_PRINT, &json); + base::JSONWriter::WriteWithOptions( + *commands, base::JSONWriter::OPTIONS_PRETTY_PRINT, &json); dbus_adaptor_.SetCommandDefs(json); } @@ -326,7 +328,7 @@ CHECK(state); std::string json; base::JSONWriter::WriteWithOptions( - state.get(), base::JSONWriter::OPTIONS_PRETTY_PRINT, &json); + *state, base::JSONWriter::OPTIONS_PRETTY_PRINT, &json); dbus_adaptor_.SetState(json); }
diff --git a/buffet/privet/cloud_delegate.cc b/buffet/privet/cloud_delegate.cc index 95b0aff..83c7bbb 100644 --- a/buffet/privet/cloud_delegate.cc +++ b/buffet/privet/cloud_delegate.cc
@@ -144,7 +144,7 @@ if (!is_gcd_setup_enabled_) { chromeos::Error::AddTo(error, FROM_HERE, errors::kDomain, errors::kSetupUnavailable, - "GCD setup unavailible"); + "GCD setup unavailable"); return false; } if (setup_state_.IsStatusEqual(SetupState::kInProgress)) {
diff --git a/buffet/privet/cloud_delegate.h b/buffet/privet/cloud_delegate.h index 39f3722..95bcca8 100644 --- a/buffet/privet/cloud_delegate.h +++ b/buffet/privet/cloud_delegate.h
@@ -139,7 +139,7 @@ buffet::StateManager* state_manager); private: - ObserverList<Observer> observer_list_; + base::ObserverList<Observer> observer_list_; }; } // namespace privetd
diff --git a/buffet/privet/privet_handler_unittest.cc b/buffet/privet/privet_handler_unittest.cc index bf883bf..2ae76d9 100644 --- a/buffet/privet/privet_handler_unittest.cc +++ b/buffet/privet/privet_handler_unittest.cc
@@ -37,8 +37,10 @@ base::ReplaceChars(json, "'", "\"", &json); int error = 0; std::string message; - std::unique_ptr<base::Value> value(base::JSONReader::ReadAndReturnError( - json, base::JSON_PARSE_RFC, &error, &message)); + std::unique_ptr<base::Value> value( + base::JSONReader::ReadAndReturnError(json, base::JSON_PARSE_RFC, &error, + &message) + .release()); EXPECT_TRUE(value.get()) << "\nError: " << message << "\n" << json; base::DictionaryValue* dictionary_ptr = nullptr; if (value->GetAsDictionary(&dictionary_ptr))
diff --git a/buffet/privet/privet_manager.cc b/buffet/privet/privet_manager.cc index 28971ae..7b23326 100644 --- a/buffet/privet/privet_manager.cc +++ b/buffet/privet/privet_manager.cc
@@ -187,7 +187,7 @@ std::string content_type = chromeos::mime::RemoveParameters( GetFirstHeader(*request, chromeos::http::request_header::kContentType)); if (content_type == chromeos::mime::application::kJson) { - value.reset(base::JSONReader::Read(data)); + value.reset(base::JSONReader::Read(data).release()); if (value) value->GetAsDictionary(&dictionary); }
diff --git a/buffet/storage_impls.cc b/buffet/storage_impls.cc index d030ecb..d3242b7 100644 --- a/buffet/storage_impls.cc +++ b/buffet/storage_impls.cc
@@ -27,7 +27,7 @@ bool FileStorage::Save(const base::DictionaryValue& config) { std::string json; base::JSONWriter::WriteWithOptions( - &config, base::JSONWriter::OPTIONS_PRETTY_PRINT, &json); + config, base::JSONWriter::OPTIONS_PRETTY_PRINT, &json); return base::ImportantFileWriter::WriteFileAtomically(file_path_, json); }
diff --git a/buffet/test_daemon/main.cc b/buffet/test_daemon/main.cc index 64c0c00..eeb0caf 100644 --- a/buffet/test_daemon/main.cc +++ b/buffet/test_daemon/main.cc
@@ -66,7 +66,7 @@ std::string DictionaryToString(const chromeos::VariantDictionary& dictionary) { std::unique_ptr<base::DictionaryValue> json{DictionaryToJson(dictionary)}; std::string str; - base::JSONWriter::Write(json.get(), &str); + base::JSONWriter::Write(*json, &str); return str; }
diff --git a/buffet/utils.cc b/buffet/utils.cc index 707b19d..33fc292 100644 --- a/buffet/utils.cc +++ b/buffet/utils.cc
@@ -11,6 +11,7 @@ #include <sys/types.h> #include <unistd.h> +#include <base/bind_helpers.h> #include <base/files/file_util.h> #include <base/json/json_reader.h> #include <chromeos/errors/error_codes.h> @@ -56,7 +57,7 @@ chromeos::ErrorPtr* error) { std::unique_ptr<base::DictionaryValue> result; std::string error_message; - base::Value* value = base::JSONReader::ReadAndReturnError( + auto value = base::JSONReader::ReadAndReturnError( json_string, base::JSON_PARSE_RFC, nullptr, &error_message); if (!value) { chromeos::Error::AddToPrintf(error, FROM_HERE, @@ -69,13 +70,15 @@ } base::DictionaryValue* dict_value = nullptr; if (!value->GetAsDictionary(&dict_value)) { - delete value; chromeos::Error::AddToPrintf(error, FROM_HERE, chromeos::errors::json::kDomain, chromeos::errors::json::kObjectExpected, "JSON string '%s' is not a JSON object", LimitString(json_string, kMaxStrLen).c_str()); return result; + } else { + // |value| is now owned by |dict_value|. + base::IgnoreResult(value.release()); } result.reset(dict_value); return result;