| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
| |
Modern Android systems seem to report "Linux" for navigator.platform, so
we can no longer rely on that.
|
| |
|
| |
|
|
|
|
|
| |
Try to follow the principle outlined by Mozilla when detecting browsers
and engines.
|
| |
|
|
|
|
|
| |
We don't care about ancient versions of Chrome anyway, so let's keep
things simple.
|
| |
|
|
|
|
|
|
| |
JavaScript strings use UTF-16 encoding under the hood, but we only want
a single '?' per character we replace. So we need to be more careful
which methods we use when iterating over the clipboard string.
|
|
|
|
|
| |
Add a more explicit '?' for characters that the clipboard cannot handle,
instead of getting random junk.
|
|
|
|
| |
We do this for all RFB tests now, not just these specific assertions.
|
|
|
|
| |
This was accidentally removed in 0a6aec3578.
|
|
|
|
|
| |
Newer versions of the test framework use the inspect() method instead of
toString() for overriding the default output.
|
| |
|
|
|
|
|
| |
VeNCrypt is a superset of the original security types, so it should be
fine to send any of the classical values here as well.
|
|
|
|
|
| |
This is how TigerVNC has been behaving for years and has worked well
there, so let's follow them.
|
|
|
|
|
| |
A good test uses only input and output, so let's avoid assuming internal
variable names or behaviours.
|
|
|
|
|
|
| |
The cut off was wrong here. 3.7 will send a security result, but not a
security reason. It also fixes the issue that < 3.7 (e.g. 3.3) supports
VNC authentication as well.
|
|
|
|
|
| |
The event is the desired behaviour. RFB._fail() being called is just an
internal detail that we shouldn't care about.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixed eslint warnings
Fixing tests that failed
Added unit tests for ARD authentication
Fixed an issue with the ARD rfb version number in the unit tests
Fixed issue with username/password lengths
Username and password lengths are now capped at 63 characters each. Improved code for sign bit on public key bytes.
UTF Encoder username and password before packing it
Change UTF encoding to encode the username and password before packing it to prevent it from being expanded beyond the allowed size. Public key is truncated to proper key length.
Replaced forge with web crypto for ARD authentication
Changed the way in which the async methods are handled, added unit tests to verify ARD encryption output.
Update .eslintignore
|
|\ \ |
|
| | | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
If we increase the remote screen size from the server in such a way that
it no longer fits the browser window, the browser will probably want to
show scrollbars. The same happens if you enable 'clipping' while the
remote is larger than the browser window. These scrollbars do, in turn,
decrease the available space in the browser window. This causes our
ResizeObserver to trigger.
If the resize observation triggers a requestRemoteResize() we will
overwrite the size and request a new one just because scrollbars have
appeared. We don't want that.
We can save the expected client size after resizing, and then compare
the current client size with the expected one. If there is no change
compared to the expected size, we shouldn't send the request.
Fixes issue #1616.
|
| | |
| | |
| | |
| | | |
Not waiting for the full timeout can obscure future bugs.
|
| | |
| | |
| | |
| | |
| | |
| | | |
This was missed in commit 375f36c57544dd89c042a6beceff93a2430f2358,
probably because these unit tests still passed (due to the expectancy
was for the code to not act on the resize events).
|
| | |
| | |
| | |
| | |
| | | |
Saves time by not requiring the developer to look up the RFB protocol
each time viewing these tests.
|
|/ / |
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | | |
Add support for RealVNC's JPEG encoding.
Add tests for JPEGDecoder. Fix the corner case of caching Huffman or quantization tables.
|
| | | |
|
|/ /
| |
| |
| | |
Also add a unit test to catch omissions like this in the future.
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fixed eslint warnings
Improved memory usage of zrle decoding. Added unit tests for zrle decoding.
Added support for ZRLE encoding
Fixed eslint warnings
Reverted allowIncomplete changes to Inflator
Fixed failing tests for zrle decoder.
|
| |
| |
| |
| |
| |
| |
| |
| | |
Chrome scrolls the view to show as much as possible of the canvas when
we call focus(), which is likely not the desired behaviour.
This also exposes the ability to pass on future options when focusing
the RFB object manually.
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
| |
This space that was added here was added to the parsed value of the
query variable. This broke any comparisons with the value, for example
"myvar=true" resulted in a value of "true ".
This was broken by f796b05e42cfac7044cca9603e59f258605228f3
The commit also adds unit tests for webutil.getConfigVar() that will
detect problems like this in the future.
|
| |
|
|
|
|
|
|
| |
Hooking in to the underlying WebSocket after it has been created no
longer works, so clean things up and use the new method of passing an
existing object to the RFB constructor.
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We need to do this in order to safely attach to existing WebSocket
objects. There may be message events already pending so we must set up
our event handlers before returning.
This means we will now throw errors instead of generating "disconnect"
events on problems as the caller no longer has the opportunity to set up
event handlers.
This might have been the correct approach from the start as it mimics
how e.g. the WebSocket constructor works.
|
|
|
|
|
|
|
|
|
|
|
| |
We don't know if the caller is prepared to receive those events right
now as normally they would get them on a fresh new stack later. We also
can't delay delivery since then we might deliver the event after any
pending "message" events.
Better to push the problem one layer up to the caller, which now needs
to be more aware of the state of the WebSocket object it is trying to
use.
|
|
|
|
| |
We can't do anything useful with them anyway.
|
|
|
|
|
| |
It mainly reports the state of the underlying object in consistent
manner.
|
| |
|
| |
|
|
|
|
|
| |
These are internal and we should be testing the externally observable
behaviour.
|
|
|
|
|
| |
This change adds tests for the VeNCrypt Plain authentication. In doing
that, this also fixes a typo that was introduced in a recent change.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This work is originally by Ryan Castner <castner.rr@gmail.com> and
submitted as a PR here https://github.com/novnc/noVNC/pull/1362
Architecturally it is much the same except it doesn't rename a lot
of variables to make this more reviewable. It also avoids unrelated
changes such as replacing .onclose with an event listener, which
caused numerous test failures.
It also adds in ppoffice's fix to initialise the buffers.
Like the original author I don't have enough time available to
refactor this project to the new style event listeners.
Review cleanup for RTCDataChannel support (see below)
* More descriptive error when url or channel not set.
* Moved websocket property check to WebSock.
This had unintended consequences in the tests that required some
fixup. Mostly due to some tests not always passing FakeWebsocket.
FakeWebsocket also needs to set the listeners to null to be compatible
with what is in thw browser and expected by the property check code.
The property check code now also takes into account class prototypes
for test compatibility.
* Removed unreachable code.
* Reverted comment.
* Cleanup raw channel reference in rfb on websock close.
* Use readyState to check whether a socket is open rather than assuming.
* Updated RFB constructor documentation
Removed an unused boolean passed to attach
|
| |
|
|
|
|
|
|
|
| |
Windows behaves very oddly for some Japanese IM keys in that it won't
send a key release event when the key is released. In some keys it never
sends the event, and in some cases it sends the release as the key is
pressed the subsequent time.
|
|
|
|
|
|
|
| |
Windows doesn't give us stable symbols for a bunch of Japanese IM keys,
instead alternating between two symbols. This state is not synchronised
with the IM running on the remote server so to have stable behaviour we
have to collapse these multiple symbols in to a single keysym.
|