From: Wengling Chen Date: Mon, 1 Feb 2021 19:18:55 +0200 Subject: Add flag for save-data-header License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html --- .../loader/browser_initiated_resource_request.cc | 8 ++++++++ .../about_flags_cc/Add-flag-for-save-data-header.inc | 10 ++++++++++ .../cpp/features_cc/Add-flag-for-save-data-header.inc | 4 ++++ .../cpp/features_h/Add-flag-for-save-data-header.inc | 1 + 4 files changed, 23 insertions(+) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-flag-for-save-data-header.inc create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Add-flag-for-save-data-header.inc create mode 100644 cromite_flags/services/network/public/cpp/features_h/Add-flag-for-save-data-header.inc 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 @@ -4,6 +4,9 @@ #include "content/browser/loader/browser_initiated_resource_request.h" +#include "base/feature_list.h" +#include "services/network/public/cpp/features.h" + #include "content/public/browser/browser_context.h" #include "content/public/browser/browser_thread.h" #include "content/public/browser/content_browser_client.h" @@ -37,8 +40,13 @@ void UpdateAdditionalHeadersForBrowserInitiatedRequest( // Save-Data was previously included in hints for workers, thus we cannot // remove it for the time being. If you're reading this, consider building // permissions policies for workers and/or deprecating this inclusion. + bool setHeader = false; if (is_for_worker_script && GetContentClient()->browser()->IsDataSaverEnabled(browser_context)) { + setHeader = true; + } + setHeader |= base::FeatureList::IsEnabled(network::features::kEnableSaveDataHeader); + if (setHeader) { if (should_update_existing_headers) { headers->RemoveHeader("Save-Data"); } diff --git a/cromite_flags/chrome/browser/about_flags_cc/Add-flag-for-save-data-header.inc b/cromite_flags/chrome/browser/about_flags_cc/Add-flag-for-save-data-header.inc new file mode 100644 --- /dev/null +++ b/cromite_flags/chrome/browser/about_flags_cc/Add-flag-for-save-data-header.inc @@ -0,0 +1,10 @@ + +#ifdef FLAG_SECTION + + // Bromite save data header + {"enable-save-data-header", + "Enable save-data header", + "Enable save-data header without enabling Data Saver.", kOsAll, + FEATURE_VALUE_TYPE(network::features::kEnableSaveDataHeader)}, + +#endif diff --git a/cromite_flags/services/network/public/cpp/features_cc/Add-flag-for-save-data-header.inc b/cromite_flags/services/network/public/cpp/features_cc/Add-flag-for-save-data-header.inc new file mode 100644 --- /dev/null +++ b/cromite_flags/services/network/public/cpp/features_cc/Add-flag-for-save-data-header.inc @@ -0,0 +1,4 @@ +// Enable save-data header separately (without enabled data reduction service). +CROMITE_FEATURE(kEnableSaveDataHeader, + "EnableSaveDataHeader", + base::FEATURE_DISABLED_BY_DEFAULT); diff --git a/cromite_flags/services/network/public/cpp/features_h/Add-flag-for-save-data-header.inc b/cromite_flags/services/network/public/cpp/features_h/Add-flag-for-save-data-header.inc new file mode 100644 --- /dev/null +++ b/cromite_flags/services/network/public/cpp/features_h/Add-flag-for-save-data-header.inc @@ -0,0 +1 @@ +COMPONENT_EXPORT(NETWORK_CPP) BASE_DECLARE_FEATURE(kEnableSaveDataHeader); --