libchromeos: Move http_utils from Buffet to libchromeos
http_utils have dependency on libcurl, so not to add this
dependency onto libchromeos-core, created a new sub-library,
libchromeos-http where all http_utils production code goes.
There are some fake classes used for testing purposes,
so added them to a new static library, libchromeos-test-271506.a
and created a separate package for it, so that other
components can link to this test library when then needed,
independently from the rest of libchromeos.
BUG=chromium:405714
TEST=USE=buffet ./build_packages
CQ-DEPEND=CL:213562
Change-Id: I37fab53fd5ccfc824b62555869e7581f99aca41c
Reviewed-on: https://chromium-review.googlesource.com/213366
Tested-by: Alex Vakulenko <avakulenko@chromium.org>
Reviewed-by: Mike Frysinger <vapier@chromium.org>
Reviewed-by: Ben Chan <benchan@chromium.org>
Commit-Queue: Alex Vakulenko <avakulenko@chromium.org>
diff --git a/buffet/device_registration_info.cc b/buffet/device_registration_info.cc
index a1cb374..7677a89 100644
--- a/buffet/device_registration_info.cc
+++ b/buffet/device_registration_info.cc
@@ -11,6 +11,8 @@
#include <base/json/json_writer.h>
#include <base/values.h>
#include <chromeos/data_encoding.h>
+#include <chromeos/http_transport_curl.h>
+#include <chromeos/http_utils.h>
#include <chromeos/mime_utils.h>
#include <chromeos/string_utils.h>
#include <chromeos/url_utils.h>
@@ -18,8 +20,6 @@
#include "buffet/commands/command_definition.h"
#include "buffet/commands/command_manager.h"
#include "buffet/device_registration_storage_keys.h"
-#include "buffet/http_transport_curl.h"
-#include "buffet/http_utils.h"
#include "buffet/storage_impls.h"
const char buffet::kErrorDomainOAuth2[] = "oauth2";
@@ -69,14 +69,14 @@
const std::string& access_token) {
std::string authorization =
chromeos::string_utils::Join(' ', access_token_type, access_token);
- return {buffet::http::request_header::kAuthorization, authorization};
+ return {chromeos::http::request_header::kAuthorization, authorization};
}
std::unique_ptr<base::DictionaryValue> ParseOAuthResponse(
- const buffet::http::Response* response, chromeos::ErrorPtr* error) {
+ const chromeos::http::Response* response, chromeos::ErrorPtr* error) {
int code = 0;
- auto resp = buffet::http::ParseJsonResponse(response, &code, error);
- if (resp && code >= buffet::http::status_code::BadRequest) {
+ auto resp = chromeos::http::ParseJsonResponse(response, &code, error);
+ if (resp && code >= chromeos::http::status_code::BadRequest) {
if (error) {
std::string error_code, error_message;
if (resp->GetString("error", &error_code) &&
@@ -143,7 +143,7 @@
DeviceRegistrationInfo::DeviceRegistrationInfo(
const std::shared_ptr<CommandManager>& command_manager)
- : transport_(new http::curl::Transport()),
+ : transport_(new chromeos::http::curl::Transport()),
// TODO(avakulenko): Figure out security implications of storing
// this data unencrypted.
storage_(new FileStorage(base::FilePath(kDeviceInfoFilePath))),
@@ -152,7 +152,7 @@
DeviceRegistrationInfo::DeviceRegistrationInfo(
const std::shared_ptr<CommandManager>& command_manager,
- const std::shared_ptr<http::Transport>& transport,
+ const std::shared_ptr<chromeos::http::Transport>& transport,
const std::shared_ptr<StorageInterface>& storage)
: transport_(transport),
storage_(storage),
@@ -269,7 +269,7 @@
return true;
}
- auto response = http::PostFormData(GetOAuthURL("token"), {
+ auto response = chromeos::http::PostFormData(GetOAuthURL("token"), {
{"refresh_token", refresh_token_},
{"client_id", client_id_},
{"client_secret", client_secret_},
@@ -307,13 +307,13 @@
if (!CheckRegistration(error))
return std::unique_ptr<base::Value>();
- auto response = http::Get(GetDeviceURL(),
- {GetAuthorizationHeader()}, transport_, error);
+ auto response = chromeos::http::Get(
+ GetDeviceURL(), {GetAuthorizationHeader()}, transport_, error);
int status_code = 0;
std::unique_ptr<base::DictionaryValue> json =
- http::ParseJsonResponse(response.get(), &status_code, error);
+ chromeos::http::ParseJsonResponse(response.get(), &status_code, error);
if (json) {
- if (status_code >= http::status_code::BadRequest) {
+ if (status_code >= chromeos::http::status_code::BadRequest) {
LOG(WARNING) << "Failed to retrieve the device info. Response code = "
<< status_code;
ParseGCDError(json.get(), error);
@@ -377,8 +377,9 @@
req_json.Set("deviceDraft.commandDefs", commands.release());
std::string url = GetServiceURL("registrationTickets", {{"key", api_key_}});
- auto resp_json = http::ParseJsonResponse(
- http::PostJson(url, &req_json, transport_, error).get(), nullptr, error);
+ auto resp_json = chromeos::http::ParseJsonResponse(
+ chromeos::http::PostJson(url, &req_json, transport_, error).get(),
+ nullptr, error);
if (!resp_json)
return std::string();
@@ -415,9 +416,9 @@
}
std::string url = GetServiceURL("registrationTickets/" + ticket_id_);
- std::unique_ptr<http::Response> response;
+ std::unique_ptr<chromeos::http::Response> response;
if (!user_auth_code.empty()) {
- response = http::PostFormData(GetOAuthURL("token"), {
+ response = chromeos::http::PostFormData(GetOAuthURL("token"), {
{"code", user_auth_code},
{"client_id", client_id_},
{"client_secret", client_secret_},
@@ -442,11 +443,12 @@
base::DictionaryValue user_info;
user_info.SetString("userEmail", "me");
- response = http::PatchJson(
+ response = chromeos::http::PatchJson(
url, &user_info, {BuildAuthHeader(token_type, user_access_token)},
transport_, error);
- auto json = http::ParseJsonResponse(response.get(), nullptr, error);
+ auto json = chromeos::http::ParseJsonResponse(response.get(), nullptr,
+ error);
if (!json)
return false;
}
@@ -454,10 +456,11 @@
std::string auth_code;
url += "/finalize?key=" + api_key_;
LOG(INFO) << "Sending request to: " << url;
- response = http::PostBinary(url, nullptr, 0, transport_, error);
+ response = chromeos::http::PostBinary(url, nullptr, 0, transport_, error);
if (!response)
return false;
- auto json_resp = http::ParseJsonResponse(response.get(), nullptr, error);
+ auto json_resp = chromeos::http::ParseJsonResponse(response.get(), nullptr,
+ error);
if (!json_resp)
return false;
if (!response->IsSuccessful()) {
@@ -473,7 +476,7 @@
}
// Now get access_token and refresh_token
- response = http::PostFormData(GetOAuthURL("token"), {
+ response = chromeos::http::PostFormData(GetOAuthURL("token"), {
{"code", auth_code},
{"client_id", client_id_},
{"client_secret", client_secret_},