100 lines
5 KiB
Diff
100 lines
5 KiB
Diff
From: Wengling Chen <feiyu2817@gmail.com>
|
|
Date: Mon, 1 Feb 2021 19:18:55 +0200
|
|
Subject: Add flag for save-data-header
|
|
|
|
---
|
|
chrome/browser/about_flags.cc | 5 ++++-
|
|
chrome/browser/flag_descriptions.cc | 4 ++++
|
|
chrome/browser/flag_descriptions.h | 3 +++
|
|
content/browser/loader/browser_initiated_resource_request.cc | 5 +++--
|
|
services/network/public/cpp/features.cc | 5 +++++
|
|
services/network/public/cpp/features.h | 2 ++
|
|
6 files changed, 21 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
|
|
--- a/chrome/browser/about_flags.cc
|
|
+++ b/chrome/browser/about_flags.cc
|
|
@@ -4316,7 +4316,10 @@ const FeatureEntry kFeatureEntries[] = {
|
|
{"force-text-direction", flag_descriptions::kForceTextDirectionName,
|
|
flag_descriptions::kForceTextDirectionDescription, kOsAll,
|
|
MULTI_VALUE_TYPE(kForceTextDirectionChoices)},
|
|
-#if BUILDFLAG(IS_ANDROID)
|
|
+#if BUILDFLAG(IS_ANDROID) // Bromite save data header
|
|
+ {"enable-save-data-header", flag_descriptions::kEnableSaveDataHeaderName,
|
|
+ flag_descriptions::kEnableSaveDataHeaderDescription, kOsAndroid,
|
|
+ FEATURE_VALUE_TYPE(network::features::kEnableSaveDataHeader)},
|
|
{"force-update-menu-type", flag_descriptions::kUpdateMenuTypeName,
|
|
flag_descriptions::kUpdateMenuTypeDescription, kOsAndroid,
|
|
MULTI_VALUE_TYPE(kForceUpdateMenuTypeChoices)},
|
|
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
|
|
--- a/chrome/browser/flag_descriptions.cc
|
|
+++ b/chrome/browser/flag_descriptions.cc
|
|
@@ -1144,6 +1144,10 @@ const char kDisableKeepaliveFetchDescription[] =
|
|
"Disable fetch with keepalive set "
|
|
"(https://fetch.spec.whatwg.org/#request-keepalive-flag).";
|
|
|
|
+const char kEnableSaveDataHeaderName[] = "Enable save-data header";
|
|
+const char kEnableSaveDataHeaderDescription[] =
|
|
+ "Enable save-data header without enabling Data Saver.";
|
|
+
|
|
const char kExperimentalAccessibilityLanguageDetectionName[] =
|
|
"Experimental accessibility language detection";
|
|
const char kExperimentalAccessibilityLanguageDetectionDescription[] =
|
|
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
|
|
--- a/chrome/browser/flag_descriptions.h
|
|
+++ b/chrome/browser/flag_descriptions.h
|
|
@@ -612,6 +612,9 @@ extern const char kDiagnosticsAppNavigationDescription[];
|
|
extern const char kDisableKeepaliveFetchName[];
|
|
extern const char kDisableKeepaliveFetchDescription[];
|
|
|
|
+extern const char kEnableSaveDataHeaderName[];
|
|
+extern const char kEnableSaveDataHeaderDescription[];
|
|
+
|
|
extern const char kMemlogName[];
|
|
extern const char kMemlogDescription[];
|
|
extern const char kMemlogModeMinimal[];
|
|
diff --git a/content/browser/loader/browser_initiated_resource_request.cc b/content/browser/loader/browser_initiated_resource_request.cc
|
|
--- a/content/browser/loader/browser_initiated_resource_request.cc
|
|
+++ b/content/browser/loader/browser_initiated_resource_request.cc
|
|
@@ -40,9 +40,10 @@ void UpdateAdditionalHeadersForBrowserInitiatedRequest(
|
|
|
|
// Set the Save-Data header if appropriate.
|
|
// https://tools.ietf.org/html/draft-grigorik-http-client-hints-03#section-7
|
|
- if (GetContentClient()->browser()->IsDataSaverEnabled(browser_context) &&
|
|
+ if ((GetContentClient()->browser()->IsDataSaverEnabled(browser_context) &&
|
|
!base::GetFieldTrialParamByFeatureAsBool(features::kDataSaverHoldback,
|
|
- "holdback_web", false)) {
|
|
+ "holdback_web", false)) ||
|
|
+ base::FeatureList::IsEnabled(network::features::kEnableSaveDataHeader)) {
|
|
if (should_update_existing_headers) {
|
|
headers->RemoveHeader("Save-Data");
|
|
}
|
|
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
|
|
@@ -20,6 +20,11 @@ namespace features {
|
|
const base::Feature kExpectCTReporting{"ExpectCTReporting",
|
|
base::FEATURE_ENABLED_BY_DEFAULT};
|
|
|
|
+
|
|
+// Enable save-data header separately (without enabled data reduction service).
|
|
+const base::Feature kEnableSaveDataHeader{"EnableSaveDataHeader",
|
|
+ base::FEATURE_DISABLED_BY_DEFAULT};
|
|
+
|
|
const base::Feature kNetworkErrorLogging{"NetworkErrorLogging",
|
|
base::FEATURE_ENABLED_BY_DEFAULT};
|
|
|
|
diff --git a/services/network/public/cpp/features.h b/services/network/public/cpp/features.h
|
|
--- a/services/network/public/cpp/features.h
|
|
+++ b/services/network/public/cpp/features.h
|
|
@@ -47,6 +47,8 @@ extern const base::Feature kDisableKeepaliveFetch;
|
|
COMPONENT_EXPORT(NETWORK_CPP)
|
|
extern const base::Feature kOpaqueResponseBlockingV01;
|
|
|
|
+extern const base::Feature kEnableSaveDataHeader;
|
|
+COMPONENT_EXPORT(NETWORK_CPP)
|
|
COMPONENT_EXPORT(NETWORK_CPP)
|
|
extern const base::Feature kTrustTokens;
|
|
|
|
--
|
|
2.25.1
|