From 65901f4c6a7c5201d039bde9d516cc18300eef62 Mon Sep 17 00:00:00 2001 From: Samuel Attard Date: Wed, 6 Sep 2023 11:23:17 -0700 Subject: [PATCH] fix: restore flag that allowed websockets to not be backgrounded (#39738) --- patches/chromium/.patches | 1 + ...ssivethrottlingwithwebsocket_feature.patch | 41 +++++++++++++++++++ 2 files changed, 42 insertions(+) create mode 100644 patches/chromium/revert_remove_the_allowaggressivethrottlingwithwebsocket_feature.patch diff --git a/patches/chromium/.patches b/patches/chromium/.patches index 804fdbed7de9..ff658e4d118d 100644 --- a/patches/chromium/.patches +++ b/patches/chromium/.patches @@ -131,3 +131,4 @@ chore_add_buildflag_guard_around_new_include.patch fix_use_delegated_generic_capturer_when_available.patch build_remove_ent_content_analysis_assert.patch fix_move_autopipsettingshelper_behind_branding_buildflag.patch +revert_remove_the_allowaggressivethrottlingwithwebsocket_feature.patch diff --git a/patches/chromium/revert_remove_the_allowaggressivethrottlingwithwebsocket_feature.patch b/patches/chromium/revert_remove_the_allowaggressivethrottlingwithwebsocket_feature.patch new file mode 100644 index 000000000000..e89d74ec5230 --- /dev/null +++ b/patches/chromium/revert_remove_the_allowaggressivethrottlingwithwebsocket_feature.patch @@ -0,0 +1,41 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Samuel Attard +Date: Tue, 5 Sep 2023 13:22:31 -0700 +Subject: Revert "Remove the AllowAggressiveThrottlingWithWebSocket feature." + +This reverts commit 615c1810a187840ffeb04096087efff86edb37de. + +diff --git a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc +index d566c1a209aa5b39692fe79dd8b5012a5e053574..90e97f739b3e7ede2fa4ceffb1be5130f651f60b 100644 +--- a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc ++++ b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc +@@ -95,6 +95,17 @@ enum WebSocketOpCode { + kOpCodeBinary = 0x2, + }; + ++// When enabled, a page can be aggressively throttled even if it uses a ++// WebSocket. Aggressive throttling does not affect the execution of WebSocket ++// event handlers, so there is little reason to disable it on pages using a ++// WebSocket. ++// ++// TODO(crbug.com/1121725): Cleanup this feature in June 2021, when it becomes ++// enabled by default on Stable. ++BASE_FEATURE(kAllowAggressiveThrottlingWithWebSocket, ++ "AllowAggressiveThrottlingWithWebSocket", ++ base::FEATURE_ENABLED_BY_DEFAULT); ++ + } // namespace + + void WebSocketChannelImpl::MessageDataDeleter::operator()(char* p) const { +@@ -285,7 +296,10 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) { + // even if the `WebSocketChannel` is closed. + feature_handle_for_scheduler_ = scheduler->RegisterFeature( + SchedulingPolicy::Feature::kWebSocket, +- SchedulingPolicy{SchedulingPolicy::DisableBackForwardCache()}); ++ base::FeatureList::IsEnabled(kAllowAggressiveThrottlingWithWebSocket) ++ ? SchedulingPolicy{SchedulingPolicy::DisableBackForwardCache()} ++ : SchedulingPolicy{SchedulingPolicy::DisableAggressiveThrottling(), ++ SchedulingPolicy::DisableBackForwardCache()}); + scheduler->RegisterStickyFeature( + SchedulingPolicy::Feature::kWebSocketSticky, + SchedulingPolicy{SchedulingPolicy::DisableBackForwardCache()});