diff options
-rw-r--r-- | www-client/seamonkey/files/seamonkey-2.53.7.1-cpu_hog_fix.patch | 72 | ||||
-rw-r--r-- | www-client/seamonkey/seamonkey-2.53.7.1-r1.ebuild | 3 |
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 000000000000..51894c485012 --- /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 c3a2e4925ffa..21db5a23e28b 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 |