summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLars Wendler <polynomial-c@gentoo.org>2021-05-04 10:09:57 +0200
committerLars Wendler <polynomial-c@gentoo.org>2021-05-04 10:30:08 +0200
commita748522a120615f64e00d471acafb53e2b4aff5e (patch)
tree520f19e0f93a0dd9c184852892b9ad82643b8951
parentwww-client/seamonkey: Revbump to fix installation of extensions (diff)
downloadgentoo-a748522a120615f64e00d471acafb53e2b4aff5e.tar.gz
gentoo-a748522a120615f64e00d471acafb53e2b4aff5e.tar.bz2
gentoo-a748522a120615f64e00d471acafb53e2b4aff5e.zip
www-client/seamonkey: Fix CPU hogging with polyfill addon
Signed-off-by: Lars Wendler <polynomial-c@gentoo.org>
-rw-r--r--www-client/seamonkey/files/seamonkey-2.53.7.1-cpu_hog_fix.patch72
-rw-r--r--www-client/seamonkey/seamonkey-2.53.7.1-r1.ebuild3
2 files changed, 75 insertions, 0 deletions
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