| Index: components/copresence/rpc/http_post.cc
|
| diff --git a/components/copresence/rpc/http_post.cc b/components/copresence/rpc/http_post.cc
|
| index da6baae58bfb3154849c83d32ef93b2fe3b32f15..3ea558e50d32c8b73128dd2643887ab5408bfa6e 100644
|
| --- a/components/copresence/rpc/http_post.cc
|
| +++ b/components/copresence/rpc/http_post.cc
|
| @@ -17,38 +17,40 @@
|
|
|
| namespace copresence {
|
|
|
| -// TODO(ckehoe): Come up with a better fix for Chromium.
|
| -#ifdef GOOGLE_CHROME_BUILD
|
| -namespace {
|
| -
|
| -const char kApiKeyField[] = "key";
|
| -
|
| -} // namespace
|
| -#endif
|
| -
|
| +const char HttpPost::kApiKeyField[] = "key";
|
| const char HttpPost::kTracingTokenField[] = "trace";
|
|
|
| HttpPost::HttpPost(net::URLRequestContextGetter* url_context_getter,
|
| const std::string& server_host,
|
| - const std::string& rpc_name,
|
| - const std::string& tracing_token,
|
| - const google::protobuf::MessageLite& request_proto) {
|
| - // Create the base URL to call.
|
| - GURL url(server_host + "/" + rpc_name);
|
| -
|
| - // Add the Chrome API key.
|
| - // TODO(ckehoe): Replace this with an app-specific key once the
|
| - // server API supports it. Also fix the Chromium case.
|
| + const std::string& rpc_name)
|
| + : url_context_getter_(url_context_getter),
|
| + url_(server_host + "/" + rpc_name) {}
|
| +
|
| +HttpPost::~HttpPost() {}
|
| +
|
| +void HttpPost::set_tracing_token(const std::string& tracing_token) {
|
| + if (tracing_token.empty())
|
| + return;
|
| +
|
| + url_ = net::AppendQueryParameter(
|
| + url_, kTracingTokenField, "token:" + tracing_token);
|
| +}
|
| +
|
| +void HttpPost::Start(const ResponseCallback& response_callback,
|
| + const google::protobuf::MessageLite& request_proto) {
|
| + response_callback_ = response_callback;
|
| +
|
| + // If no API key is specified, use the Chrome API key.
|
| + if (api_key_.empty()) {
|
| #ifdef GOOGLE_CHROME_BUILD
|
| - DCHECK(google_apis::HasKeysConfigured());
|
| - url = net::AppendQueryParameter(url, kApiKeyField, google_apis::GetAPIKey());
|
| +DCHECK(google_apis::HasKeysConfigured());
|
| +api_key_ = google_apis::GetAPIKey();
|
| +#else
|
| +LOG(ERROR) << "No Copresence API key provided";
|
| +return;
|
| #endif
|
| -
|
| - // Add the tracing token, if specified.
|
| - if (!tracing_token.empty()) {
|
| - url = net::AppendQueryParameter(
|
| - url, kTracingTokenField, "token:" + tracing_token);
|
| }
|
| + url_ = net::AppendQueryParameter(url_, kApiKeyField, api_key_);
|
|
|
| // Serialize the proto for transmission.
|
| std::string request_data;
|
| @@ -57,20 +59,14 @@ HttpPost::HttpPost(net::URLRequestContextGetter* url_context_getter,
|
|
|
| // Configure and send the request.
|
| url_fetcher_.reset(net::URLFetcher::Create(
|
| - kUrlFetcherId, url, net::URLFetcher::POST, this));
|
| - url_fetcher_->SetRequestContext(url_context_getter);
|
| + kUrlFetcherId, url_, net::URLFetcher::POST, this));
|
| + url_fetcher_->SetRequestContext(url_context_getter_);
|
| url_fetcher_->SetLoadFlags(net::LOAD_BYPASS_CACHE |
|
| net::LOAD_DISABLE_CACHE |
|
| net::LOAD_DO_NOT_SAVE_COOKIES |
|
| net::LOAD_DO_NOT_SEND_COOKIES |
|
| net::LOAD_DO_NOT_SEND_AUTH_DATA);
|
| url_fetcher_->SetUploadData("application/x-protobuf", request_data);
|
| -}
|
| -
|
| -HttpPost::~HttpPost() {}
|
| -
|
| -void HttpPost::Start(const ResponseCallback& response_callback) {
|
| - response_callback_ = response_callback;
|
| url_fetcher_->Start();
|
| }
|
|
|
|
|