threema-ch / threema-web

The Threema Web application.
GNU Affero General Public License v3.0
998 stars 107 forks source link

Threema desktop preventing standby on Windows #1159

Open aurorasmiles opened 1 year ago

aurorasmiles commented 1 year ago

Bug Description

While the desktop client is open Windows is unable to automatically enter standby.

Steps to Reproduce (for bugs)

  1. Install Threema Desktop & connect it
  2. Set your automatic standby in the windows power settings to a small time, like one minute
  3. Wait for a while, Computer will not go into standby
  4. To control: close Threema & wait again. Computer will now go into standby after the set amount of time and no input

Potential Solution

Your Environment

ghost commented 1 year ago

Thank you for your report!

Unfortunately, we're not able to reproduce this on our test machines.

Which version of Threema for Windows are you using? Please post the full version number, including the number in the brackets.

Does the same issue happen if there is no active session in Threema for Windows and only the reconnect button is shown?

aurorasmiles commented 1 year ago

I was able to replicate this consistently, as long as there is an active, connected session. On Windows I'm using 2.4.4 (1.2.21). I was also able to replicate this on Arch Linux using version 2.4.4 in chromium. I assume WebRTC has some setting to prevent sleep when there are active connections. Checking powercfg /requests on Windows while Threema is open & connected returns

[PROCESS] \Device\HarddiskVolume2\..\threema-web.exe
WebRTC has active PeerConnections
lgrahl commented 1 year ago

Thanks! This makes sense in general because WebRTC is usually used for audio/video which, if played out, should prevent standby and/or display auto-locking (although it is questionable why the <video> element can't take care of it). But we only use WebRTC for data transmission. It is likely that this is an oversight in the WebRTC implementation (wouldn't be the first one) used by Chromium/Electron and that we have no influence over it.

Edit: Did some digging and it is indeed something we cannot influence without shipping a custom Electron build.

aurorasmiles commented 1 year ago

Is this something that might be addressed in a future new threema web? I assume that is also one of the reasons why apps like Discord for example ship custom electron builds then...

lgrahl commented 1 year ago

It will be a non-issue for Threema Web based on Threema Desktop 2.0 since that will no longer use WebRTC for data transmission.

(I don't think Discord is affected because they do not have a persistent WebRTC connection unless you're in a voice chat.)

lgrahl commented 1 year ago

Looks like this is a bug in the diagnostics for WebRTC (thanks @fippo): https://bugs.chromium.org/p/chromium/issues/detail?id=866200#c45 But I have a hunch that it won't be fixed quickly. :slightly_smiling_face: