blob: b7fa9444abbf2816e5920e80e8aee6b5ea7ff1ab [file] [log] [blame]
// Copyright 2025 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "net/http/http_request_headers.h"
#include <string>
#include "third_party/google_benchmark/src/include/benchmark/benchmark.h"
namespace net {
namespace {
void BM_HttpRequestHeadersToString(::benchmark::State& state) {
HttpRequestHeaders http_request_headers;
http_request_headers.SetHeader(
"Accept",
"text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/"
"webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7");
http_request_headers.SetHeader("Accept-Encoding", "gzip, deflate, br");
http_request_headers.SetHeader("Accept-Language", "en-GB,en;q=0.9");
http_request_headers.SetHeader("Cache-Control", "max-age=0");
http_request_headers.SetHeader(
"Cookie",
"WMF-Last-Access=xxxxxxxxxxx; WMF-Last-Access-Global=xxxxxxxxxxx; "
"GeoIP=xxxxxxxxxxxxxxxxxxxxxxxxxxx; NetworkProbeLimit=0.001; "
"enwikimwuser-sessionId=xxxxxxxxxxxxxxxxxxxx");
http_request_headers.SetHeader(
"Sec-Ch-Ua",
"\"Google Chrome\";v=\"117\", \"Not;A=Brand\";v=\"8\", "
"\"Chromium\";v=\"117\"");
http_request_headers.SetHeader("Sec-Ch-Ua-Mobile", "?0");
http_request_headers.SetHeader("Sec-Ch-Ua-Platform", "\"Linux\"");
http_request_headers.SetHeader("Sec-Fetch-Dest", "document");
http_request_headers.SetHeader("Sec-Fetch-Mode", "navigate");
http_request_headers.SetHeader("Sec-Fetch-Site", "none");
http_request_headers.SetHeader("Sec-Fetch-User", "?1");
http_request_headers.SetHeader("Upgrade-Insecure-Requests", "1");
http_request_headers.SetHeader(
"User-Agent",
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/117.0.0.0 Safari/537.36");
for (auto _ : state) {
std::string as_string = http_request_headers.ToString();
::benchmark::DoNotOptimize(as_string);
}
}
BENCHMARK(BM_HttpRequestHeadersToString)->MinWarmUpTime(1.0);
} // namespace
} // namespace net