Tweak heuristic used to identify iKVM servers; it now correctly detects all
of the SuperMicro hardware that we've tested it against.
Modify test case for TightVNC to avoid triggering iKVM heuristic.
I (@kelleyk) have rebased the original patch by @jimdigriz (Alexander Clouter)
on the current upstream version of noVNC. This required the following changes:
- Rename keysym symbols.
- Convert use of _rfb_state to _rfb_init_state.
- Update state transition logic; fixes "old-style" ATEN auth detection.
- Fix conditional ordering so that we do not skip new-type ATEN iKVM detection.
- Fix assertion broken in test case broken by upstream changes.
- Convert arr.push(x) function calls to push(arr, x).
- Restore keyEvent and pointerEvent handlers before relevant test cases.
I (@kelleyk) have updated the original patch to be compatible with
the double-buffering changes made upstream, repaired some test cases,
and cleaned up the patch a little bit.
The author of the original patch is @jimdigriz (Alexander Clouter).
We don't have to check for _display or context here since this is a
private function which is never called under such circumstances. This
solves problems caused by display.get_context() which was previously
removed in e549ae074f.
We have enough layers now that we need to have some system for this.
E.g. make sure that dialogs during connect show up in front of the
blocking transition layer.
Anyone with basic knowledge of CSS will easily figure out how to
customise the appearance of the UI, so remove the burden of having
to maintain these extra style sheets.
Do all rendering to a hidden canvas and then copy over the finished
frame to the visible canvas once everything is done. This simplifies
things and solves some bugs as we can retain a copy of the entire
frame buffer.
setTimeout() is subject to delays, possible massive ones. As such it
is rather useless for performance sensitive code. Use the non-standard
setImmediate() API instead, emulating it on postMessage() when it
isn't available.
The hacks needed to run these tests require proper handling of
properties. Unfortunately IE and old versions of Chrome mess up,
so just skip the tests there.
We have to temporarily replace window.navigator due to the fact that
its property languages is read-only. The tests for the translation
utilities require different values of this property. The failing tests
were added in merge of PR #718 (in commit
f5bf2d84ef).
Keeping it set for the disconnecting state was causing an issue where
the controlbar could be hidden without any way to open it, when a
session disconnects too quickly.