Browse Source

fix: restore flag that allowed websockets to not be backgrounded (#39753)

* fix: restore flag that allowed websockets to not be backgrounded

Co-authored-by: Samuel Attard <[email protected]>

* chore: update patches

* chore: update patches

---------

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Samuel Attard <[email protected]>
Co-authored-by: John Kleinschmidt <[email protected]>
trop[bot] 1 year ago
parent
commit
a5e78c4a2f

+ 1 - 0
patches/chromium/.patches

@@ -137,5 +137,6 @@ networkcontext_don_t_access_url_loader_factories_during_destruction.patch
 cherry-pick-1939f7b78eda.patch
 cherry-pick-37447eb52a74.patch
 cherry-pick-35c06406a658.patch
+revert_remove_the_allowaggressivethrottlingwithwebsocket_feature.patch
 cherry-pick-74a2eb9c8cb2.patch
 cherry-pick-26175b0903d8.patch

+ 41 - 0
patches/chromium/revert_remove_the_allowaggressivethrottlingwithwebsocket_feature.patch

@@ -0,0 +1,41 @@
+From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
+From: Samuel Attard <[email protected]>
+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 48f6832098316b32dfe4119d2c01d2e7a2736cd2..b377df80bb849643a3af116f530bca0eae709c53 100644
+--- a/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
++++ b/third_party/blink/renderer/modules/websockets/websocket_channel_impl.cc
+@@ -94,6 +94,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 {
+@@ -278,7 +289,10 @@ bool WebSocketChannelImpl::Connect(const KURL& url, const String& protocol) {
+   if (auto* scheduler = execution_context_->GetScheduler()) {
+     feature_handle_for_scheduler_ = scheduler->RegisterFeature(
+         SchedulingPolicy::Feature::kWebSocket,
+-        SchedulingPolicy{SchedulingPolicy::DisableBackForwardCache()});
++        base::FeatureList::IsEnabled(kAllowAggressiveThrottlingWithWebSocket)
++            ? SchedulingPolicy{SchedulingPolicy::DisableBackForwardCache()}
++            : SchedulingPolicy{SchedulingPolicy::DisableAggressiveThrottling(),
++                               SchedulingPolicy::DisableBackForwardCache()});
+   }
+ 
+   if (MixedContentChecker::IsMixedContent(