commit: a748522a120615f64e00d471acafb53e2b4aff5e Author: Lars Wendler <polynomial-c <AT> gentoo <DOT> org> AuthorDate: Tue May 4 08:09:57 2021 +0000 Commit: Lars Wendler <polynomial-c <AT> gentoo <DOT> org> CommitDate: Tue May 4 08:30:08 2021 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a748522a
www-client/seamonkey: Fix CPU hogging with polyfill addon Signed-off-by: Lars Wendler <polynomial-c <AT> gentoo.org> .../files/seamonkey-2.53.7.1-cpu_hog_fix.patch | 72 ++++++++++++++++++++++ www-client/seamonkey/seamonkey-2.53.7.1-r1.ebuild | 3 + 2 files changed, 75 insertions(+) diff --git a/www-client/seamonkey/files/seamonkey-2.53.7.1-cpu_hog_fix.patch b/www-client/seamonkey/files/seamonkey-2.53.7.1-cpu_hog_fix.patch new file mode 100644 index 00000000000..51894c48501 --- /dev/null +++ b/www-client/seamonkey/files/seamonkey-2.53.7.1-cpu_hog_fix.patch @@ -0,0 +1,72 @@ +https://github.com/JustOff/github-wc-polyfill/issues/10 + +--- a/netwerk/protocol/websocket/WebSocketChannel.h ++++ b/netwerk/protocol/websocket/WebSocketChannel.h +@@ -151,6 +151,7 @@ private: + void GeneratePong(uint8_t *payload, uint32_t len); + void GeneratePing(); + ++ MOZ_MUST_USE nsresult OnNetworkChangedTargetThread(); + MOZ_MUST_USE nsresult OnNetworkChanged(); + MOZ_MUST_USE nsresult StartPinging(); + +--- a/netwerk/protocol/websocket/WebSocketChannel.cpp ++++ b/netwerk/protocol/websocket/WebSocketChannel.cpp +@@ -1270,14 +1270,14 @@ WebSocketChannel::Observe(nsISupports *s + // Next we check mDataStarted, which we need to do on mTargetThread. + if (!IsOnTargetThread()) { + mTargetThread->Dispatch( +- NewRunnableMethod("net::WebSocketChannel::OnNetworkChanged", ++ NewRunnableMethod("net::WebSocketChannel::OnNetworkChangedTargetThread", + this, +- &WebSocketChannel::OnNetworkChanged), ++ &WebSocketChannel::OnNetworkChangedTargetThread), + NS_DISPATCH_NORMAL); + } else { +- nsresult rv = OnNetworkChanged(); ++ nsresult rv = OnNetworkChangedTargetThread(); + if (NS_FAILED(rv)) { +- LOG(("WebSocket: OnNetworkChanged failed (%08" PRIx32 ")", ++ LOG(("WebSocket: OnNetworkChangedTargetThread failed (%08" PRIx32 ")", + static_cast<uint32_t>(rv))); + } + } +@@ -1289,23 +1289,25 @@ WebSocketChannel::Observe(nsISupports *s + } + + nsresult +-WebSocketChannel::OnNetworkChanged() ++WebSocketChannel::OnNetworkChangedTargetThread() + { +- if (IsOnTargetThread()) { +- LOG(("WebSocketChannel::OnNetworkChanged() - on target thread %p", this)); +- +- if (!mDataStarted) { +- LOG(("WebSocket: data not started yet, no ping needed")); +- return NS_OK; +- } ++ LOG(("WebSocketChannel::OnNetworkChangedTargetThread() - on target thread %p", this)); + +- return mSocketThread->Dispatch( +- NewRunnableMethod("net::WebSocketChannel::OnNetworkChanged", +- this, +- &WebSocketChannel::OnNetworkChanged), +- NS_DISPATCH_NORMAL); ++ if (!mDataStarted) { ++ LOG(("WebSocket: data not started yet, no ping needed")); ++ return NS_OK; + } + ++ return mSocketThread->Dispatch( ++ NewRunnableMethod("net::WebSocketChannel::OnNetworkChanged", ++ this, ++ &WebSocketChannel::OnNetworkChanged), ++ NS_DISPATCH_NORMAL); ++} ++ ++nsresult ++WebSocketChannel::OnNetworkChanged() ++{ + MOZ_ASSERT(OnSocketThread(), "not on socket thread"); + + LOG(("WebSocketChannel::OnNetworkChanged() - on socket thread %p", this)); diff --git a/www-client/seamonkey/seamonkey-2.53.7.1-r1.ebuild b/www-client/seamonkey/seamonkey-2.53.7.1-r1.ebuild index c3a2e4925ff..21db5a23e28 100644 --- a/www-client/seamonkey/seamonkey-2.53.7.1-r1.ebuild +++ b/www-client/seamonkey/seamonkey-2.53.7.1-r1.ebuild @@ -192,6 +192,9 @@ src_prepare() { # https://bugzilla.mozilla.org/show_bug.cgi?id=1623054 eapply "${FILESDIR}/${PN}-2.53.7-ownertab.patch" + # https://github.com/JustOff/github-wc-polyfill/issues/10 + eapply "${FILESDIR}/${PN}-2.53.7.1-cpu_hog_fix.patch" + # Shell scripts sometimes contain DOS line endings; bug 391889 grep -rlZ --include="*.sh" $'\r$' . | while read -r -d $'\0' file ; do