From: csagan5 <32685696+csagan5@users.noreply.github.com>
Date: Thu, 22 Jul 2021 23:10:52 +0200
Subject: Client hints overrides

Disable critical client hints
Use Google Chrome branding for client hints

License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html
---
 components/embedder_support/user_agent_utils.cc              | 4 +---
 content/browser/client_hints/client_hints.cc                 | 3 ++-
 content/browser/loader/navigation_url_loader_impl.cc         | 5 +++++
 content/public/common/content_features.cc                    | 4 ++--
 services/network/public/cpp/client_hints.cc                  | 1 +
 services/network/public/cpp/features.cc                      | 2 +-
 third_party/blink/common/client_hints/client_hints.cc        | 1 +
 .../blink/common/client_hints/enabled_client_hints.cc        | 4 +++-
 8 files changed, 16 insertions(+), 8 deletions(-)

diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedder_support/user_agent_utils.cc
--- a/components/embedder_support/user_agent_utils.cc
+++ b/components/embedder_support/user_agent_utils.cc
@@ -265,9 +265,7 @@ const blink::UserAgentBrandList GetUserAgentBrandList(
   bool parse_result = base::StringToInt(major_version, &major_version_number);
   DCHECK(parse_result);
   absl::optional<std::string> brand;
-#if !BUILDFLAG(CHROMIUM_BRANDING)
-  brand = version_info::GetProductName();
-#endif
+  brand = "Google Chrome";
   absl::optional<std::string> maybe_brand_override =
       base::GetFieldTrialParamValueByFeature(features::kGreaseUACH,
                                              "brand_override");
diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/client_hints/client_hints.cc
--- a/content/browser/client_hints/client_hints.cc
+++ b/content/browser/client_hints/client_hints.cc
@@ -478,7 +478,8 @@ void AddPrefersReducedMotionHeader(net::HttpRequestHeaders* headers,
                         : network::kPrefersReducedMotionNoPreference);
 }
 
-bool IsValidURLForClientHints(const url::Origin& origin) {
+bool IsValidURLForClientHints(const url::Origin& origin) { // disabled in Bromite
+  if ((true)) return false;
   return network::IsOriginPotentiallyTrustworthy(origin);
 }
 
diff --git a/content/browser/loader/navigation_url_loader_impl.cc b/content/browser/loader/navigation_url_loader_impl.cc
--- a/content/browser/loader/navigation_url_loader_impl.cc
+++ b/content/browser/loader/navigation_url_loader_impl.cc
@@ -1024,6 +1024,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived(
     return;
   }
 
+  if (!base::FeatureList::IsEnabled(network::features::kAcceptCHFrame)) {
+    std::move(callback).Run(net::OK);
+    return;
+  }
+
   LogAcceptCHFrameStatus(AcceptCHFrameRestart::kFramePresent);
 
   // Given that this is happening in the middle of navigation, there should
diff --git a/content/public/common/content_features.cc b/content/public/common/content_features.cc
--- a/content/public/common/content_features.cc
+++ b/content/public/common/content_features.cc
@@ -247,8 +247,8 @@ BASE_FEATURE(kCrashReporting,
 // Enables support for the `Critical-CH` response header.
 // https://github.com/WICG/client-hints-infrastructure/blob/master/reliability.md#critical-ch
 BASE_FEATURE(kCriticalClientHint,
-             "CriticalClientHint",
-             base::FEATURE_ENABLED_BY_DEFAULT);
+             "CriticalClientHint",                  // disabled by default
+             base::FEATURE_DISABLED_BY_DEFAULT);    // in Bromite
 
 // Enable debugging the issue crbug.com/1201355
 BASE_FEATURE(kDebugHistoryInterventionNoUserActivation,
diff --git a/services/network/public/cpp/client_hints.cc b/services/network/public/cpp/client_hints.cc
--- a/services/network/public/cpp/client_hints.cc
+++ b/services/network/public/cpp/client_hints.cc
@@ -105,6 +105,7 @@ const DecodeMap& GetDecodeMap() {
 
 absl::optional<std::vector<network::mojom::WebClientHintsType>>
 ParseClientHintsHeader(const std::string& header) {
+  if ((true)) return absl::nullopt;
   // Accept-CH is an sh-list of tokens; see:
   // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-header-structure-19#section-3.1
   absl::optional<net::structured_headers::List> maybe_list =
diff --git a/services/network/public/cpp/features.cc b/services/network/public/cpp/features.cc
--- a/services/network/public/cpp/features.cc
+++ b/services/network/public/cpp/features.cc
@@ -197,7 +197,7 @@ BASE_FEATURE(kWebSocketReassembleShortMessages,
 // Enable support for ACCEPT_CH H2/3 frame as part of Client Hint Reliability.
 // See:
 // https://tools.ietf.org/html/draft-davidben-http-client-hint-reliability-02#section-4.3
-BASE_FEATURE(kAcceptCHFrame, "AcceptCHFrame", base::FEATURE_ENABLED_BY_DEFAULT);
+BASE_FEATURE(kAcceptCHFrame, "AcceptCHFrame", base::FEATURE_DISABLED_BY_DEFAULT);  // disabled by default in Bromite
 
 BASE_FEATURE(kSCTAuditingRetryReports,
              "SCTAuditingRetryReports",
diff --git a/third_party/blink/common/client_hints/client_hints.cc b/third_party/blink/common/client_hints/client_hints.cc
--- a/third_party/blink/common/client_hints/client_hints.cc
+++ b/third_party/blink/common/client_hints/client_hints.cc
@@ -113,6 +113,7 @@ const size_t kWebEffectiveConnectionTypeMappingCount =
     std::size(kWebEffectiveConnectionTypeMapping);
 
 bool IsClientHintSentByDefault(network::mojom::WebClientHintsType type) {
+  if ((true)) return false;
   switch (type) {
     case network::mojom::WebClientHintsType::kSaveData:
     case network::mojom::WebClientHintsType::kUA:
diff --git a/third_party/blink/common/client_hints/enabled_client_hints.cc b/third_party/blink/common/client_hints/enabled_client_hints.cc
--- a/third_party/blink/common/client_hints/enabled_client_hints.cc
+++ b/third_party/blink/common/client_hints/enabled_client_hints.cc
@@ -21,6 +21,7 @@ namespace {
 using ::network::mojom::WebClientHintsType;
 
 bool IsDisabledByFeature(const WebClientHintsType type) {
+  if ((true)) return true;
   switch (type) {
     case WebClientHintsType::kUA:
     case WebClientHintsType::kUAArch:
@@ -138,7 +139,7 @@ bool IsOriginTrialEnabled(const GURL& url,
 }  // namespace
 
 bool EnabledClientHints::IsEnabled(const WebClientHintsType type) const {
-  return enabled_types_[static_cast<int>(type)];
+  return false;
 }
 
 void EnabledClientHints::SetIsEnabled(const WebClientHintsType type,
@@ -167,6 +168,7 @@ void EnabledClientHints::SetIsEnabled(
 
 std::vector<WebClientHintsType> EnabledClientHints::GetEnabledHints() const {
   std::vector<WebClientHintsType> hints;
+  if ((true)) return hints;
   for (const auto& elem : network::GetClientHintToNameMap()) {
     const auto& type = elem.first;
     if (IsEnabled(type))
--
2.25.1
