Loading build/cromite_patches/Add-cromite-flags-support.patch +9 −9 Original line number Diff line number Diff line Loading @@ -665,7 +665,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc namespace about_flags { namespace { @@ -4966,6 +4970,10 @@ const FeatureEntry::FeatureVariation kSeamlessSigninPromoTypes[] = { @@ -4977,6 +4981,10 @@ const FeatureEntry::FeatureVariation kSeamlessSigninPromoTypes[] = { std::size(kSeamlessSigninPromoTypeTwoButtons), nullptr}}; #endif // BUILDFLAG(IS_ANDROID) Loading @@ -676,7 +676,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc // RECORDING USER METRICS FOR FLAGS: // ----------------------------------------------------------------------------- // The first line of the entry is the internal name. @@ -4992,6 +5000,9 @@ const FeatureEntry::FeatureVariation kSeamlessSigninPromoTypes[] = { @@ -5003,6 +5011,9 @@ const FeatureEntry::FeatureVariation kSeamlessSigninPromoTypes[] = { const FeatureEntry kFeatureEntries[] = { // Include generated flags for flag unexpiry; see //docs/flag_expiry.md and // //tools/flags/generate_unexpire_flags.py. Loading Loading @@ -1010,7 +1010,7 @@ diff --git a/chrome/browser/unexpire_flags.cc b/chrome/browser/unexpire_flags.cc diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc @@ -1696,5 +1696,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy, base::FEATURE_ENABLED_BY_DEFAULT); @@ -1694,5 +1694,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy, base::FEATURE_ENABLED_BY_DEFAULT); // happen silently without prompting an updating dialog. BASE_FEATURE(kSilentPolicyAndDefaultAppUpdating, base::FEATURE_DISABLED_BY_DEFAULT); Loading Loading @@ -2024,18 +2024,18 @@ diff --git a/media/base/media_switches.h b/media/base/media_switches.h diff --git a/net/base/features.cc b/net/base/features.cc --- a/net/base/features.cc +++ b/net/base/features.cc @@ -839,4 +839,5 @@ BASE_FEATURE_PARAM(size_t, "cache_size", 64); @@ -852,4 +852,5 @@ BASE_FEATURE_PARAM(std::string, "quic_options", ""); +#include "cromite_flags/net_base_features_cc.inc" } // namespace net::features diff --git a/net/base/features.h b/net/base/features.h --- a/net/base/features.h +++ b/net/base/features.h @@ -935,6 +935,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kDnsFilteringDetails); NET_EXPORT BASE_DECLARE_FEATURE(kUpdateIsMainFrameOriginRecentlyAccessed); NET_EXPORT BASE_DECLARE_FEATURE_PARAM(size_t, kRecentlyAccessedOriginCacheSize); @@ -946,6 +946,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kTryQuicByDefault); // separate the values with a comma (e.g. "ABCD,EFGH"). NET_EXPORT BASE_DECLARE_FEATURE_PARAM(std::string, kQuicOptions); +#include "cromite_flags/net_base_features_h.inc" } // namespace net::features Loading build/cromite_patches/Add-option-to-force-tablet-UI.patch +1 −1 Original line number Diff line number Diff line Loading @@ -192,7 +192,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.util.ColorUtils; @@ -5039,8 +5040,13 @@ public class StripLayoutHelper @@ -5040,8 +5041,13 @@ public class StripLayoutHelper mCloseButtonMenu.setAnchorView(tabView); // 3. Set the vertical offset to align the close button menu with bottom of the tab strip int tabHeight = mManagerHost.getHeight(); Loading build/cromite_patches/Add-option-to-not-persist-tabs-across-sessions.patch +25 −1 Original line number Diff line number Diff line Loading @@ -7,8 +7,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../android/java/res/xml/privacy_preferences.xml | 5 +++++ .../chrome/browser/ChromeTabbedActivity.java | 5 ++++- .../browser/privacy/settings/PrivacySettings.java | 15 ++++++++++++++- .../browser/tab_group_sync/StartupHelper.java | 6 ++++++ .../ui/android/strings/android_chrome_strings.grd | 6 ++++++ 4 files changed, 29 insertions(+), 2 deletions(-) 5 files changed, 35 insertions(+), 2 deletions(-) diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml Loading Loading @@ -101,6 +102,29 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference secureDnsPref = findPreference(PREF_SECURE_DNS); if (secureDnsPref != null && secureDnsPref.isVisible()) { secureDnsPref.setSummary(SecureDnsSettings.getSummary(getContext())); diff --git a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelper.java b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelper.java --- a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelper.java +++ b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelper.java @@ -4,6 +4,7 @@ package org.chromium.chrome.browser.tab_group_sync; +import org.chromium.base.ContextUtils; import org.chromium.base.metrics.RecordHistogram; import org.chromium.build.annotations.NullMarked; import org.chromium.chrome.browser.preferences.Pref; @@ -74,6 +75,11 @@ public class StartupHelper { */ public void initializeTabGroupSync() { LogUtils.log(TAG, "initializeTabGroupSync"); + if (ContextUtils.getAppSharedPreferences().getBoolean("close_tabs_on_exit", false)) { + for (String tabGroupId : mTabGroupSyncService.getAllGroupIds()) { + mTabGroupSyncService.removeGroup(tabGroupId); + } + } // First close the groups that were deleted remotely when the activity was not running. closeDeletedGroupsFromTabModel(); diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd Loading build/cromite_patches/Add-site-engagement-flag.patch +14 −1 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/about_flags.cc | 1 + .../engagement/important_sites_util.cc | 9 +++++ .../browser/media/media_engagement_service.cc | 4 ++- .../auto_picture_in_picture_tab_helper.cc | 2 +- .../internal/tracker_impl.cc | 3 ++ .../public/feature_configurations.cc | 7 ++++ .../content/site_engagement_score.cc | 5 +++ Loading @@ -17,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/site_engagement/core/features.cc | 30 ++++++++++++++++ components/site_engagement/core/features.h | 34 +++++++++++++++++++ .../Add-site-engagement-flag.inc | 10 ++++++ 10 files changed, 108 insertions(+), 1 deletion(-) 11 files changed, 109 insertions(+), 2 deletions(-) create mode 100644 components/site_engagement/core/features.cc create mode 100644 components/site_engagement/core/features.h create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-site-engagement-flag.inc Loading Loading @@ -87,6 +88,18 @@ diff --git a/chrome/browser/media/media_engagement_service.cc b/chrome/browser/m } // static diff --git a/chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper.cc b/chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper.cc --- a/chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper.cc +++ b/chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper.cc @@ -42,7 +42,7 @@ AutoPictureInPictureTabHelper::AutoPictureInPictureTabHelper( Profile::FromBrowserContext(web_contents->GetBrowserContext()))), auto_blocker_(PermissionDecisionAutoBlockerFactory::GetForProfile( Profile::FromBrowserContext(web_contents->GetBrowserContext()))), - media_engagement_service_(MediaEngagementService::Get( + media_engagement_service_(!MediaEngagementService::IsEnabled() ? nullptr : MediaEngagementService::Get( Profile::FromBrowserContext(web_contents->GetBrowserContext()))), clock_(base::DefaultTickClock::GetInstance()) { // `base::Unretained` is safe here since we own `tab_observer_helper_`. diff --git a/components/feature_engagement/internal/tracker_impl.cc b/components/feature_engagement/internal/tracker_impl.cc --- a/components/feature_engagement/internal/tracker_impl.cc +++ b/components/feature_engagement/internal/tracker_impl.cc Loading build/cromite_patches/Client-hints-overrides.patch +85 −70 Original line number Diff line number Diff line Loading @@ -7,26 +7,48 @@ 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 | 15 ++++++++++----- .../browser/loader/navigation_url_loader_impl.cc | 5 +++++ components/client_hints/browser/client_hints.cc | 5 +++-- components/embedder_support/user_agent_utils.cc | 5 ++--- content/browser/client_hints/client_hints.cc | 17 +++++++++++++++-- .../about_flags_cc/Client-hints-overrides.inc | 9 +++++++++ .../common/features_cc/Client-hints-overrides.inc | 1 + .../features_cc/Client-hints-overrides.inc | 1 + .../cpp/features_cc/Client-hints-overrides.inc | 1 + net/http/http_network_transaction.cc | 1 + services/network/public/cpp/client_hints.cc | 1 + services/network/public/cpp/client_hints.cc | 2 +- .../blink/common/client_hints/client_hints.cc | 6 ++++-- .../common/client_hints/enabled_client_hints.cc | 6 ++++++ .../common/client_hints/enabled_client_hints.cc | 8 ++++++++ .../blink/renderer/core/frame/navigator_ua.idl | 4 +++- .../renderer/core/frame/navigator_ua_data.cc | 1 + .../renderer/core/frame/navigator_ua_data.idl | 5 ++++- .../renderer/core/loader/frame_fetch_context.cc | 4 +++- .../platform/runtime_enabled_features.json5 | 8 ++++++-- 15 files changed, 56 insertions(+), 15 deletions(-) 15 files changed, 62 insertions(+), 15 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Client-hints-overrides.inc create mode 100644 cromite_flags/content/common/features_cc/Client-hints-overrides.inc create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc diff --git a/components/client_hints/browser/client_hints.cc b/components/client_hints/browser/client_hints.cc --- a/components/client_hints/browser/client_hints.cc +++ b/components/client_hints/browser/client_hints.cc @@ -35,7 +35,7 @@ ParseInitializeClientHintsStorage() { auto results = base::flat_map<url::Origin, std::vector<network::mojom::WebClientHintsType>>(); - + if ((true)) return results; std::string raw_client_hint_json = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( switches::kInitializeClientHintsStorage); @@ -200,7 +200,8 @@ void ClientHints::PersistClientHints( // TODO(tbansal): crbug.com/735518. Disable updates to client hints settings // when cookies are disabled for |primary_origin|. content_settings::ContentSettingConstraints constraints; - constraints.set_session_model(content_settings::mojom::SessionModel::DURABLE); + constraints.set_session_model(content_settings::mojom::SessionModel::USER_SESSION); + constraints.set_lifetime(base::Minutes(1)); settings_map_->SetWebsiteSettingDefaultScope( primary_url, GURL(), ContentSettingsType::CLIENT_HINTS, base::Value(std::move(client_hints_dictionary)), constraints); 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 Loading @@ -41,6 +63,14 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd std::string brand_version = output_version_type == blink::UserAgentBrandVersionType::kFullVersion @@ -698,6 +696,7 @@ blink::UserAgentMetadata GetUserAgentMetadata(const PrefService* pref_service, } // High entropy client hints. + if ((true)) return metadata; metadata.brand_full_version_list = GetUserAgentBrandFullVersionListInternal(std::nullopt); metadata.full_version = std::string(version_info::GetVersionNumber()); 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 Loading @@ -52,56 +82,38 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie #include "ui/display/display.h" #include "ui/display/screen.h" #include "url/origin.h" @@ -706,7 +707,8 @@ void UpdateNavigationRequestClientUaHeadersImpl( // value, disable them. This overwrites previous decision from UI. disable_due_to_custom_ua = !ua_metadata.has_value(); } - + if (!blink::RuntimeEnabledFeatures::UserAgentClientHintEnabled()) + disable_due_to_custom_ua = true; if (!disable_due_to_custom_ua) { if (!ua_metadata.has_value()) ua_metadata = delegate->GetUserAgentMetadata(); @@ -898,10 +900,12 @@ void AddRequestClientHintsHeaders( AddEctHeader(headers, network_quality_tracker, url); } @@ -602,10 +603,21 @@ bool IsClientHintEnabled(const ClientHintsExtendedData& data, - UpdateNavigationRequestClientUaHeadersImpl( - delegate, is_ua_override_on, frame_tree_node, - ClientUaHeaderCallType::kDuringCreation, headers, container_policy, data, - ftn_for_devtools_override); + if (blink::RuntimeEnabledFeatures::UserAgentClientHintEnabled()) { + UpdateNavigationRequestClientUaHeadersImpl( + delegate, is_ua_override_on, frame_tree_node, + ClientUaHeaderCallType::kDuringCreation, headers, container_policy, data, + ftn_for_devtools_override); bool IsClientHintAllowed(const ClientHintsExtendedData& data, WebClientHintsType type) { + if (!blink::RuntimeEnabledFeatures::UserAgentClientHintEnabled()) + return false; + + bool allowed = false; + if (type == WebClientHintsType::kUA || + type == WebClientHintsType::kUAMobile || + type == WebClientHintsType::kUAPlatform || + type == WebClientHintsType::kUAModel || + type == WebClientHintsType::kUAPlatformVersion) { + allowed = true; + } if (ShouldAddClientHint(data, WebClientHintsType::kPrefersColorScheme)) { AddPrefersColorSchemeHeader(headers, frame_tree_node); @@ -989,6 +993,7 @@ ParseAndPersistAcceptCHForNavigation( BrowserContext* context, ClientHintsControllerDelegate* delegate, FrameTreeNode* frame_tree_node) { + if ((true)) return std::nullopt; DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK(context); DCHECK(parsed_headers); 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 @@ -1744,6 +1744,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( if (data.is_outermost_main_frame) { - return true; + return allowed; } - return (data.permissions_policy->IsFeatureEnabledForOrigin( + return ((false)) && (data.permissions_policy->IsFeatureEnabledForOrigin( network::GetClientHintToPolicyFeatureMap().at(type), data.resource_origin)); } @@ -630,6 +642,7 @@ bool IsJavascriptEnabled(FrameTreeNode* frame_tree_node) { void UpdateIFramePermissionsPolicyWithDelegationSupportForClientHints( ClientHintsExtendedData& data, const network::ParsedPermissionsPolicy& container_policy) { + if ((true)) return; if (container_policy.empty()) { 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/cromite_flags/chrome/browser/about_flags_cc/Client-hints-overrides.inc b/cromite_flags/chrome/browser/about_flags_cc/Client-hints-overrides.inc new file mode 100644 --- /dev/null Loading @@ -121,13 +133,13 @@ new file mode 100644 --- /dev/null +++ b/cromite_flags/content/common/features_cc/Client-hints-overrides.inc @@ -0,0 +1 @@ +SET_CROMITE_FEATURE_DISABLED(kCriticalClientHint); +SET_CROMITE_FEATURE_ENABLED(kCriticalClientHint); diff --git a/cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc b/cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc new file mode 100644 --- /dev/null +++ b/cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc @@ -0,0 +1 @@ +SET_CROMITE_FEATURE_DISABLED(kAcceptCHFrame); +SET_CROMITE_FEATURE_ENABLED(kAcceptCHFrame); diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc --- a/net/http/http_network_transaction.cc +++ b/net/http/http_network_transaction.cc Loading @@ -142,11 +154,12 @@ diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transa 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 @@ -112,6 +112,7 @@ const DecodeMap& GetDecodeMap() { @@ -111,7 +111,7 @@ const DecodeMap& GetDecodeMap() { } // namespace std::optional<std::vector<network::mojom::WebClientHintsType>> ParseClientHintsHeader(const std::string& header) { + if ((true)) return std::nullopt; -ParseClientHintsHeader(const std::string& header) { +ParseClientHintsHeader(const std::string& header) { // Parse Client Hints Header // Accept-CH is an sh-list of tokens; see: // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-header-structure-19#section-3.1 std::optional<net::structured_headers::List> maybe_list = Loading Loading @@ -179,13 +192,15 @@ diff --git a/third_party/blink/common/client_hints/client_hints.cc b/third_party 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 @@ -15,6 +15,12 @@ namespace { @@ -15,6 +15,14 @@ namespace { using ::network::mojom::WebClientHintsType; bool IsDisabledByFeature(const WebClientHintsType type) { + if (type == WebClientHintsType::kUA || + type == WebClientHintsType::kUAMobile || + type == WebClientHintsType::kUAPlatform) { + type == WebClientHintsType::kUAPlatform || + type == WebClientHintsType::kUAModel || + type == WebClientHintsType::kUAPlatformVersion) { + return false; + } + if ((true)) return true; Loading Loading @@ -243,7 +258,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi // For subresource requests, sending the hint in the fetch request based on // the permissions policy. if (!policy.IsFeatureEnabledForOrigin( @@ -713,7 +715,7 @@ void FrameFetchContext::AddClientHintsIfNecessary( @@ -715,7 +717,7 @@ void FrameFetchContext::AddClientHintsIfNecessary( } // Only send User Agent hints if the info is available Loading Loading
build/cromite_patches/Add-cromite-flags-support.patch +9 −9 Original line number Diff line number Diff line Loading @@ -665,7 +665,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc namespace about_flags { namespace { @@ -4966,6 +4970,10 @@ const FeatureEntry::FeatureVariation kSeamlessSigninPromoTypes[] = { @@ -4977,6 +4981,10 @@ const FeatureEntry::FeatureVariation kSeamlessSigninPromoTypes[] = { std::size(kSeamlessSigninPromoTypeTwoButtons), nullptr}}; #endif // BUILDFLAG(IS_ANDROID) Loading @@ -676,7 +676,7 @@ diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc // RECORDING USER METRICS FOR FLAGS: // ----------------------------------------------------------------------------- // The first line of the entry is the internal name. @@ -4992,6 +5000,9 @@ const FeatureEntry::FeatureVariation kSeamlessSigninPromoTypes[] = { @@ -5003,6 +5011,9 @@ const FeatureEntry::FeatureVariation kSeamlessSigninPromoTypes[] = { const FeatureEntry kFeatureEntries[] = { // Include generated flags for flag unexpiry; see //docs/flag_expiry.md and // //tools/flags/generate_unexpire_flags.py. Loading Loading @@ -1010,7 +1010,7 @@ diff --git a/chrome/browser/unexpire_flags.cc b/chrome/browser/unexpire_flags.cc diff --git a/chrome/common/chrome_features.cc b/chrome/common/chrome_features.cc --- a/chrome/common/chrome_features.cc +++ b/chrome/common/chrome_features.cc @@ -1696,5 +1696,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy, base::FEATURE_ENABLED_BY_DEFAULT); @@ -1694,5 +1694,5 @@ BASE_FEATURE(kDisableShortcutsEnableDiy, base::FEATURE_ENABLED_BY_DEFAULT); // happen silently without prompting an updating dialog. BASE_FEATURE(kSilentPolicyAndDefaultAppUpdating, base::FEATURE_DISABLED_BY_DEFAULT); Loading Loading @@ -2024,18 +2024,18 @@ diff --git a/media/base/media_switches.h b/media/base/media_switches.h diff --git a/net/base/features.cc b/net/base/features.cc --- a/net/base/features.cc +++ b/net/base/features.cc @@ -839,4 +839,5 @@ BASE_FEATURE_PARAM(size_t, "cache_size", 64); @@ -852,4 +852,5 @@ BASE_FEATURE_PARAM(std::string, "quic_options", ""); +#include "cromite_flags/net_base_features_cc.inc" } // namespace net::features diff --git a/net/base/features.h b/net/base/features.h --- a/net/base/features.h +++ b/net/base/features.h @@ -935,6 +935,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kDnsFilteringDetails); NET_EXPORT BASE_DECLARE_FEATURE(kUpdateIsMainFrameOriginRecentlyAccessed); NET_EXPORT BASE_DECLARE_FEATURE_PARAM(size_t, kRecentlyAccessedOriginCacheSize); @@ -946,6 +946,7 @@ NET_EXPORT BASE_DECLARE_FEATURE(kTryQuicByDefault); // separate the values with a comma (e.g. "ABCD,EFGH"). NET_EXPORT BASE_DECLARE_FEATURE_PARAM(std::string, kQuicOptions); +#include "cromite_flags/net_base_features_h.inc" } // namespace net::features Loading
build/cromite_patches/Add-option-to-force-tablet-UI.patch +1 −1 Original line number Diff line number Diff line Loading @@ -192,7 +192,7 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/over import org.chromium.ui.base.LocalizationUtils; import org.chromium.ui.base.WindowAndroid; import org.chromium.ui.util.ColorUtils; @@ -5039,8 +5040,13 @@ public class StripLayoutHelper @@ -5040,8 +5041,13 @@ public class StripLayoutHelper mCloseButtonMenu.setAnchorView(tabView); // 3. Set the vertical offset to align the close button menu with bottom of the tab strip int tabHeight = mManagerHost.getHeight(); Loading
build/cromite_patches/Add-option-to-not-persist-tabs-across-sessions.patch +25 −1 Original line number Diff line number Diff line Loading @@ -7,8 +7,9 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html .../android/java/res/xml/privacy_preferences.xml | 5 +++++ .../chrome/browser/ChromeTabbedActivity.java | 5 ++++- .../browser/privacy/settings/PrivacySettings.java | 15 ++++++++++++++- .../browser/tab_group_sync/StartupHelper.java | 6 ++++++ .../ui/android/strings/android_chrome_strings.grd | 6 ++++++ 4 files changed, 29 insertions(+), 2 deletions(-) 5 files changed, 35 insertions(+), 2 deletions(-) diff --git a/chrome/android/java/res/xml/privacy_preferences.xml b/chrome/android/java/res/xml/privacy_preferences.xml --- a/chrome/android/java/res/xml/privacy_preferences.xml Loading Loading @@ -101,6 +102,29 @@ diff --git a/chrome/android/java/src/org/chromium/chrome/browser/privacy/setting Preference secureDnsPref = findPreference(PREF_SECURE_DNS); if (secureDnsPref != null && secureDnsPref.isVisible()) { secureDnsPref.setSummary(SecureDnsSettings.getSummary(getContext())); diff --git a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelper.java b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelper.java --- a/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelper.java +++ b/chrome/browser/tab_group_sync/android/java/src/org/chromium/chrome/browser/tab_group_sync/StartupHelper.java @@ -4,6 +4,7 @@ package org.chromium.chrome.browser.tab_group_sync; +import org.chromium.base.ContextUtils; import org.chromium.base.metrics.RecordHistogram; import org.chromium.build.annotations.NullMarked; import org.chromium.chrome.browser.preferences.Pref; @@ -74,6 +75,11 @@ public class StartupHelper { */ public void initializeTabGroupSync() { LogUtils.log(TAG, "initializeTabGroupSync"); + if (ContextUtils.getAppSharedPreferences().getBoolean("close_tabs_on_exit", false)) { + for (String tabGroupId : mTabGroupSyncService.getAllGroupIds()) { + mTabGroupSyncService.removeGroup(tabGroupId); + } + } // First close the groups that were deleted remotely when the activity was not running. closeDeletedGroupsFromTabModel(); diff --git a/chrome/browser/ui/android/strings/android_chrome_strings.grd b/chrome/browser/ui/android/strings/android_chrome_strings.grd --- a/chrome/browser/ui/android/strings/android_chrome_strings.grd +++ b/chrome/browser/ui/android/strings/android_chrome_strings.grd Loading
build/cromite_patches/Add-site-engagement-flag.patch +14 −1 Original line number Diff line number Diff line Loading @@ -10,6 +10,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html chrome/browser/about_flags.cc | 1 + .../engagement/important_sites_util.cc | 9 +++++ .../browser/media/media_engagement_service.cc | 4 ++- .../auto_picture_in_picture_tab_helper.cc | 2 +- .../internal/tracker_impl.cc | 3 ++ .../public/feature_configurations.cc | 7 ++++ .../content/site_engagement_score.cc | 5 +++ Loading @@ -17,7 +18,7 @@ License: GPL-3.0-only - https://spdx.org/licenses/GPL-3.0-only.html components/site_engagement/core/features.cc | 30 ++++++++++++++++ components/site_engagement/core/features.h | 34 +++++++++++++++++++ .../Add-site-engagement-flag.inc | 10 ++++++ 10 files changed, 108 insertions(+), 1 deletion(-) 11 files changed, 109 insertions(+), 2 deletions(-) create mode 100644 components/site_engagement/core/features.cc create mode 100644 components/site_engagement/core/features.h create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Add-site-engagement-flag.inc Loading Loading @@ -87,6 +88,18 @@ diff --git a/chrome/browser/media/media_engagement_service.cc b/chrome/browser/m } // static diff --git a/chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper.cc b/chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper.cc --- a/chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper.cc +++ b/chrome/browser/picture_in_picture/auto_picture_in_picture_tab_helper.cc @@ -42,7 +42,7 @@ AutoPictureInPictureTabHelper::AutoPictureInPictureTabHelper( Profile::FromBrowserContext(web_contents->GetBrowserContext()))), auto_blocker_(PermissionDecisionAutoBlockerFactory::GetForProfile( Profile::FromBrowserContext(web_contents->GetBrowserContext()))), - media_engagement_service_(MediaEngagementService::Get( + media_engagement_service_(!MediaEngagementService::IsEnabled() ? nullptr : MediaEngagementService::Get( Profile::FromBrowserContext(web_contents->GetBrowserContext()))), clock_(base::DefaultTickClock::GetInstance()) { // `base::Unretained` is safe here since we own `tab_observer_helper_`. diff --git a/components/feature_engagement/internal/tracker_impl.cc b/components/feature_engagement/internal/tracker_impl.cc --- a/components/feature_engagement/internal/tracker_impl.cc +++ b/components/feature_engagement/internal/tracker_impl.cc Loading
build/cromite_patches/Client-hints-overrides.patch +85 −70 Original line number Diff line number Diff line Loading @@ -7,26 +7,48 @@ 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 | 15 ++++++++++----- .../browser/loader/navigation_url_loader_impl.cc | 5 +++++ components/client_hints/browser/client_hints.cc | 5 +++-- components/embedder_support/user_agent_utils.cc | 5 ++--- content/browser/client_hints/client_hints.cc | 17 +++++++++++++++-- .../about_flags_cc/Client-hints-overrides.inc | 9 +++++++++ .../common/features_cc/Client-hints-overrides.inc | 1 + .../features_cc/Client-hints-overrides.inc | 1 + .../cpp/features_cc/Client-hints-overrides.inc | 1 + net/http/http_network_transaction.cc | 1 + services/network/public/cpp/client_hints.cc | 1 + services/network/public/cpp/client_hints.cc | 2 +- .../blink/common/client_hints/client_hints.cc | 6 ++++-- .../common/client_hints/enabled_client_hints.cc | 6 ++++++ .../common/client_hints/enabled_client_hints.cc | 8 ++++++++ .../blink/renderer/core/frame/navigator_ua.idl | 4 +++- .../renderer/core/frame/navigator_ua_data.cc | 1 + .../renderer/core/frame/navigator_ua_data.idl | 5 ++++- .../renderer/core/loader/frame_fetch_context.cc | 4 +++- .../platform/runtime_enabled_features.json5 | 8 ++++++-- 15 files changed, 56 insertions(+), 15 deletions(-) 15 files changed, 62 insertions(+), 15 deletions(-) create mode 100644 cromite_flags/chrome/browser/about_flags_cc/Client-hints-overrides.inc create mode 100644 cromite_flags/content/common/features_cc/Client-hints-overrides.inc create mode 100644 cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc diff --git a/components/client_hints/browser/client_hints.cc b/components/client_hints/browser/client_hints.cc --- a/components/client_hints/browser/client_hints.cc +++ b/components/client_hints/browser/client_hints.cc @@ -35,7 +35,7 @@ ParseInitializeClientHintsStorage() { auto results = base::flat_map<url::Origin, std::vector<network::mojom::WebClientHintsType>>(); - + if ((true)) return results; std::string raw_client_hint_json = base::CommandLine::ForCurrentProcess()->GetSwitchValueASCII( switches::kInitializeClientHintsStorage); @@ -200,7 +200,8 @@ void ClientHints::PersistClientHints( // TODO(tbansal): crbug.com/735518. Disable updates to client hints settings // when cookies are disabled for |primary_origin|. content_settings::ContentSettingConstraints constraints; - constraints.set_session_model(content_settings::mojom::SessionModel::DURABLE); + constraints.set_session_model(content_settings::mojom::SessionModel::USER_SESSION); + constraints.set_lifetime(base::Minutes(1)); settings_map_->SetWebsiteSettingDefaultScope( primary_url, GURL(), ContentSettingsType::CLIENT_HINTS, base::Value(std::move(client_hints_dictionary)), constraints); 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 Loading @@ -41,6 +63,14 @@ diff --git a/components/embedder_support/user_agent_utils.cc b/components/embedd std::string brand_version = output_version_type == blink::UserAgentBrandVersionType::kFullVersion @@ -698,6 +696,7 @@ blink::UserAgentMetadata GetUserAgentMetadata(const PrefService* pref_service, } // High entropy client hints. + if ((true)) return metadata; metadata.brand_full_version_list = GetUserAgentBrandFullVersionListInternal(std::nullopt); metadata.full_version = std::string(version_info::GetVersionNumber()); 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 Loading @@ -52,56 +82,38 @@ diff --git a/content/browser/client_hints/client_hints.cc b/content/browser/clie #include "ui/display/display.h" #include "ui/display/screen.h" #include "url/origin.h" @@ -706,7 +707,8 @@ void UpdateNavigationRequestClientUaHeadersImpl( // value, disable them. This overwrites previous decision from UI. disable_due_to_custom_ua = !ua_metadata.has_value(); } - + if (!blink::RuntimeEnabledFeatures::UserAgentClientHintEnabled()) + disable_due_to_custom_ua = true; if (!disable_due_to_custom_ua) { if (!ua_metadata.has_value()) ua_metadata = delegate->GetUserAgentMetadata(); @@ -898,10 +900,12 @@ void AddRequestClientHintsHeaders( AddEctHeader(headers, network_quality_tracker, url); } @@ -602,10 +603,21 @@ bool IsClientHintEnabled(const ClientHintsExtendedData& data, - UpdateNavigationRequestClientUaHeadersImpl( - delegate, is_ua_override_on, frame_tree_node, - ClientUaHeaderCallType::kDuringCreation, headers, container_policy, data, - ftn_for_devtools_override); + if (blink::RuntimeEnabledFeatures::UserAgentClientHintEnabled()) { + UpdateNavigationRequestClientUaHeadersImpl( + delegate, is_ua_override_on, frame_tree_node, + ClientUaHeaderCallType::kDuringCreation, headers, container_policy, data, + ftn_for_devtools_override); bool IsClientHintAllowed(const ClientHintsExtendedData& data, WebClientHintsType type) { + if (!blink::RuntimeEnabledFeatures::UserAgentClientHintEnabled()) + return false; + + bool allowed = false; + if (type == WebClientHintsType::kUA || + type == WebClientHintsType::kUAMobile || + type == WebClientHintsType::kUAPlatform || + type == WebClientHintsType::kUAModel || + type == WebClientHintsType::kUAPlatformVersion) { + allowed = true; + } if (ShouldAddClientHint(data, WebClientHintsType::kPrefersColorScheme)) { AddPrefersColorSchemeHeader(headers, frame_tree_node); @@ -989,6 +993,7 @@ ParseAndPersistAcceptCHForNavigation( BrowserContext* context, ClientHintsControllerDelegate* delegate, FrameTreeNode* frame_tree_node) { + if ((true)) return std::nullopt; DCHECK_CURRENTLY_ON(BrowserThread::UI); DCHECK(context); DCHECK(parsed_headers); 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 @@ -1744,6 +1744,11 @@ void NavigationURLLoaderImpl::OnAcceptCHFrameReceived( if (data.is_outermost_main_frame) { - return true; + return allowed; } - return (data.permissions_policy->IsFeatureEnabledForOrigin( + return ((false)) && (data.permissions_policy->IsFeatureEnabledForOrigin( network::GetClientHintToPolicyFeatureMap().at(type), data.resource_origin)); } @@ -630,6 +642,7 @@ bool IsJavascriptEnabled(FrameTreeNode* frame_tree_node) { void UpdateIFramePermissionsPolicyWithDelegationSupportForClientHints( ClientHintsExtendedData& data, const network::ParsedPermissionsPolicy& container_policy) { + if ((true)) return; if (container_policy.empty()) { 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/cromite_flags/chrome/browser/about_flags_cc/Client-hints-overrides.inc b/cromite_flags/chrome/browser/about_flags_cc/Client-hints-overrides.inc new file mode 100644 --- /dev/null Loading @@ -121,13 +133,13 @@ new file mode 100644 --- /dev/null +++ b/cromite_flags/content/common/features_cc/Client-hints-overrides.inc @@ -0,0 +1 @@ +SET_CROMITE_FEATURE_DISABLED(kCriticalClientHint); +SET_CROMITE_FEATURE_ENABLED(kCriticalClientHint); diff --git a/cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc b/cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc new file mode 100644 --- /dev/null +++ b/cromite_flags/services/network/public/cpp/features_cc/Client-hints-overrides.inc @@ -0,0 +1 @@ +SET_CROMITE_FEATURE_DISABLED(kAcceptCHFrame); +SET_CROMITE_FEATURE_ENABLED(kAcceptCHFrame); diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transaction.cc --- a/net/http/http_network_transaction.cc +++ b/net/http/http_network_transaction.cc Loading @@ -142,11 +154,12 @@ diff --git a/net/http/http_network_transaction.cc b/net/http/http_network_transa 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 @@ -112,6 +112,7 @@ const DecodeMap& GetDecodeMap() { @@ -111,7 +111,7 @@ const DecodeMap& GetDecodeMap() { } // namespace std::optional<std::vector<network::mojom::WebClientHintsType>> ParseClientHintsHeader(const std::string& header) { + if ((true)) return std::nullopt; -ParseClientHintsHeader(const std::string& header) { +ParseClientHintsHeader(const std::string& header) { // Parse Client Hints Header // Accept-CH is an sh-list of tokens; see: // https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-header-structure-19#section-3.1 std::optional<net::structured_headers::List> maybe_list = Loading Loading @@ -179,13 +192,15 @@ diff --git a/third_party/blink/common/client_hints/client_hints.cc b/third_party 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 @@ -15,6 +15,12 @@ namespace { @@ -15,6 +15,14 @@ namespace { using ::network::mojom::WebClientHintsType; bool IsDisabledByFeature(const WebClientHintsType type) { + if (type == WebClientHintsType::kUA || + type == WebClientHintsType::kUAMobile || + type == WebClientHintsType::kUAPlatform) { + type == WebClientHintsType::kUAPlatform || + type == WebClientHintsType::kUAModel || + type == WebClientHintsType::kUAPlatformVersion) { + return false; + } + if ((true)) return true; Loading Loading @@ -243,7 +258,7 @@ diff --git a/third_party/blink/renderer/core/loader/frame_fetch_context.cc b/thi // For subresource requests, sending the hint in the fetch request based on // the permissions policy. if (!policy.IsFeatureEnabledForOrigin( @@ -713,7 +715,7 @@ void FrameFetchContext::AddClientHintsIfNecessary( @@ -715,7 +717,7 @@ void FrameFetchContext::AddClientHintsIfNecessary( } // Only send User Agent hints if the info is available Loading