0

Use 'GET' verb when making calls to retrieve the ICE Config

Bug: 325448647
Change-Id: Id0656bd7ef40d2f8ef72d857200d9150978b6401
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5949584
Reviewed-by: Gary Kacmarcik <garykac@chromium.org>
Commit-Queue: Gary Kacmarcik <garykac@chromium.org>
Auto-Submit: Joe Downing <joedow@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1379340}
This commit is contained in:
Joe Downing
2024-11-06 23:37:33 +00:00
committed by Chromium LUCI CQ
parent 9be37efad6
commit 37e5884eb4
3 changed files with 16 additions and 9 deletions

@ -279,8 +279,6 @@ using ProvisionGceInstanceRequest =
using Empty = google::internal::remoting::cloud::v1alpha::Empty;
using GenerateHostTokenRequest =
google::internal::remoting::cloud::v1alpha::GenerateHostTokenRequest;
using GenerateIceConfigRequest =
google::internal::remoting::cloud::v1alpha::GenerateIceConfigRequest;
using ReauthorizeHostRequest =
google::internal::remoting::cloud::v1alpha::ReauthorizeHostRequest;
using RemoteAccessHost =
@ -433,9 +431,8 @@ void CloudServiceClient::GenerateIceConfig(GenerateIceConfigCallback callback) {
constexpr char path[] = "/v1alpha/networkTraversal:generateIceConfig";
ExecuteRequest(kGenerateIceConfigTrafficAnnotation, path, /*api_key=*/"",
net::HttpRequestHeaders::kPostMethod,
std::make_unique<GenerateIceConfigRequest>(),
std::move(callback));
net::HttpRequestHeaders::kGetMethod,
/*request_config=*/nullptr, std::move(callback));
}
void CloudServiceClient::VerifySessionToken(

@ -133,9 +133,15 @@ void ProtobufHttpClient::DoExecuteRequest(
if (!timeout_duration.is_zero()) {
send_url_loader->SetTimeoutDuration(request->GetRequestTimeoutDuration());
}
send_url_loader->AttachStringForUpload(
request->config().request_message->SerializeAsString(),
"application/x-protobuf");
if (request->config().method != net::HttpRequestHeaders::kGetMethod &&
request->config().method != net::HttpRequestHeaders::kHeadMethod) {
send_url_loader->AttachStringForUpload(
request->config().request_message->SerializeAsString(),
"application/x-protobuf");
} else {
// GET and HEAD requests cannot have content in the message body.
CHECK(!request->config().request_message);
}
send_url_loader->SetAllowHttpErrorResults(true);
auto* unowned_request = request.get();
base::OnceClosure invalidator = base::BindOnce(

@ -15,7 +15,11 @@ ProtobufHttpRequestConfig::ProtobufHttpRequestConfig(
ProtobufHttpRequestConfig::~ProtobufHttpRequestConfig() = default;
void ProtobufHttpRequestConfig::Validate() const {
DCHECK(request_message);
// If the method is GET or HEAD, |request_message| must not be set. For any
// other method, |request_message| must be valid.
DCHECK((request_message != nullptr) ==
(method != net::HttpRequestHeaders::kGetMethod &&
method != net::HttpRequestHeaders::kHeadMethod));
DCHECK(!path.empty());
}