Follow up from #1491 (for 2.1).
Now also on github where pull requests can be submitted: https://github.com/totaam/xpra-html5/
As part of the network layer work (#1590), it would be very useful to hook into the Network Information API to have some information about the type of connection the browser is using, what latency can be expected, get notified about (dis)connection events, etc This information could be provided to the server as hints it can feed into its own heuristics.
As of r16824, we expose this information to the server as "connection-data" for each client that provides it.
The big problem is that this connection API looks buggy as hell, at least the downlink
value is.
Here is some data with a Fedora 26 server, chrome 62 Fedora 26 client, the "download" value is nowhere near the system settings (values are in bits per second):
'rtt': 100, 'downlink': 100000, 'effective-type': '4g'
, 1000 times less!
ethtool -s eth0 speed 10 duplex half
: 'rtt': 300, 'downlink': 1350000, 'effective-type': '3g'
, closer only ~6 times lower... (same values with full duplex)
'rtt': 100, 'effective-type': '4g'
'rtt': 100, 'downlink': 1450000, 'effective-type': '4g'
'rtt': 100, 'effective-type': '4g'
'rtt': 75, 'downlink': 1450000, 'effective-type': '4g'
Firefox 55 and Safari 10.1.2 have no support for this API yet.
So, if anything the "effective-type" is more reliable than the "downlink" value. And I've tried turning on and off my network interfaces, the "onchange" event handler never fired... so we can't use that to detect when the network connection drops.
See OffscreenCanvas: it isn't supported everywhere but it could potentially speed things up quite a bit, allowing us to split the picture decoding and the actual paint. (exactly like the regular client does with its decode thread) See also ticket/1637#comment:2, we should already be able to decode pictures in parallel (as long as the browser supports this) and only update the canvas in the right order.
Updates:
Will follow up in #1670.
@maxmylyn: just a FYI, feel free to close. (SB might want to merge some of this)
Noted and closing.
See also #1689, #1586 and #1712.
r17467: adds webp decoding (#1694)
The bandwidth detection code caused a regression: ticket:1729#comment:13
See also: #1860 detect wifi connections (jittery) which causes problems like #1855
this ticket has been moved to: https://github.com/Xpra-org/xpra/issues/1581