* KASM-5523 change resize settings if admin prohibited on server
* Fix local scaling aspect ratio
* fix exception on reconnect
* Always recalculate resolution on setting changes
---------
Co-authored-by: mattmcclaskey <matt@kasmweb.com>
* KASM-5417 fix bug watermrk multi-display
* Force the zlib expected size to an int, it was unexpectedly float
* KASM-5427 transparent rects not drawn on primary display
* add double buffer when transparent rects are used
* refactor of transparent rects
* Use a more descriptive zlib error
* account for dropped transparent rects
* fix bug with multi-monitor with overlay
* implement new transparent rect encoding
* implement a max frame hold time
---------
Co-authored-by: Lauri Kasanen <cand@gmx.com>
Co-authored-by: mattmcclaskey <matt@kasmweb.com>
* Handle the frame id in udp packets
* refactor udp message buffer, add frame_id and rect cnt
* refactor udp to work with new display.js
* additional debug metrics, clear frame buffer on transitions tcp/udp
* fix udp with display refactor, KASM-3541 cancelAnimationFrame
Co-authored-by: Lauri Kasanen <cand@gmx.com>
Co-authored-by: mattmcclaskey <matt@kasmweb.com>
* Major refactor of display.js queue to assume async rect processing in order to accommodate threaded decode or udp
* QOI lossless decoder on worker threads using WASM
* rfb.js class to provide frame_id and rect counts per frame
Co-authored-by: ryan.kuba <ryan.kuba@kasmweb.com>
Co-authored-by: matt <matt@kasmweb.com>
* KASM-2090 work around for incomplete webp images when there are lots of concurrent users on a single session. Unknown root cause, work around will in most cases keep the connection alive.
* KASM-2041 auto scale high res mobile - Browsers typically set a scale ratio for high resolution screens, so everything isn't tiny. This mostly works well, but results in a super low resolution for the remote display. This feature detects low resolutions where the browser is doing scaling and adjusts the scale backwards to reach a more reasonable resolution. This typically only happens on modern phones.
This is what the browser wants so it avoids having to spend time
converting everything. Unfortunately it usually means the server instead
needs to convert it for us, but we assume it has more power than we do.
The code that used these were removed in the following commits:
* 9ff86fb718 (RFB._mouse_arr)
* bb6965f2e6 (old_requestAnimationFrame)
* 490d471c53 (Display._c_forceCanvas)
Internet Explorer seems to flag images as loaded prematurely, which
can result in rendering bugs. We can detect this by looking at the
dimensions though.