1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798 |
- 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 | 3 +++
- 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 | 4 ++++
- services/network/public/cpp/features.h | 2 ++
- 6 files changed, 19 insertions(+), 2 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
- @@ -4471,6 +4471,9 @@ const FeatureEntry kFeatureEntries[] = {
- #endif // BUILDFLAG(IS_CHROMEOS_ASH)
-
- #if defined(OS_ANDROID)
- + {"enable-save-data-header", flag_descriptions::kEnableSaveDataHeaderName,
- + flag_descriptions::kEnableSaveDataHeaderDescription, kOsAndroid,
- + FEATURE_VALUE_TYPE(network::features::kEnableSaveDataHeader)},
- {"enable-command-line-on-non-rooted-devices",
- flag_descriptions::kEnableCommandLineOnNonRootedName,
- flag_descriptions::kEnableCommandLineOnNoRootedDescription, kOsAndroid,
- 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
- @@ -975,6 +975,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
- @@ -557,6 +557,9 @@ extern const char kDiagnosticsAppDescription[];
- 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
- @@ -149,6 +149,10 @@ const base::FeatureParam<std::string>
- const base::Feature kDisableKeepaliveFetch{"DisableKeepaliveFetch",
- base::FEATURE_DISABLED_BY_DEFAULT};
-
- +// Enable save-data header seprately, without enabled data reduction service
- +const base::Feature kEnableSaveDataHeader{"EnableSaveDataHeader",
- + base::FEATURE_DISABLED_BY_DEFAULT};
- +
- // Controls whether a |request_initiator| that mismatches
- // |request_initiator_origin_lock| leads to 1) failing the HTTP request and 2)
- // calling mojo::ReportBadMessage (on desktop platforms, where NetworkService
- 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
- @@ -58,6 +58,8 @@ extern const base::FeatureParam<std::string>
- COMPONENT_EXPORT(NETWORK_CPP)
- extern const base::Feature kDisableKeepaliveFetch;
- COMPONENT_EXPORT(NETWORK_CPP)
- +extern const base::Feature kEnableSaveDataHeader;
- +COMPONENT_EXPORT(NETWORK_CPP)
- extern const base::Feature kRequestInitiatorSiteLockEnfocement;
-
- COMPONENT_EXPORT(NETWORK_CPP)
- --
- 2.17.1
|