Samuel Mannehed
375f36c575
Modify unit tests to work with ResizeObserver
2021-09-03 16:52:20 +02:00
Pierre Ossman
dbd519558c
Initiate connection from 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.
2021-04-18 14:27:57 +02:00
Pierre Ossman
de9fc9508c
Don't fake open events in Websock
...
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.
2021-04-18 14:26:30 +02:00
Pierre Ossman
9376191fc4
Refuse to use already closed WebSocket objects
...
We can't do anything useful with them anyway.
2021-04-18 14:26:28 +02:00
Pierre Ossman
42100e8233
Add unit tests for connect/attach errors
2021-04-18 14:25:59 +02:00
Pierre Ossman
ae3c01f782
Add unit tests for passing WebSocket objects
2021-04-18 14:25:03 +02:00
Pierre Ossman
f0e4908dec
Stop explicitly testing connection states
...
These are internal and we should be testing the externally observable
behaviour.
2021-04-18 14:24:05 +02:00
lhchavez
f9a8c4ccd5
Add VeNCrypt Plain authentication tests
...
This change adds tests for the VeNCrypt Plain authentication. In doing
that, this also fixes a typo that was introduced in a recent change.
2021-03-13 05:40:38 -08:00
Pierre Ossman
6a4c411976
Remove createEvent() fallbacks
...
We can now rely on proper constructors for our events.
2020-12-07 10:10:53 +01:00
Pierre Ossman
5b5b747494
Remove many small, obsolete, old browser hacks
...
These are for browsers no longer supported anyway.
2020-12-07 10:10:53 +01:00
Pierre Ossman
c01eb5e74d
Drop support for Internet Explorer
2020-10-15 18:53:51 +02:00
Pierre Ossman
0630352e19
Merge branch 'rgbx' of https://github.com/CendioOssman/noVNC
2020-09-04 13:40:23 +02:00
Pierre Ossman
50cde2faab
Move mouse event handling to RFB class
...
Move the last remaining bits to the RFB class to keep things simple, as
the Mouse class no longer provides any real value.
2020-06-12 14:36:10 +02:00
Pierre Ossman
88589a44f7
Increase wheel step threshold
...
The previous value made the detection too sensitive and it was very
difficult to scroll precisely. A value of 50 pixels should give similar
behaviour to systems that don't do fine grained scrolling.
2020-06-12 09:18:46 +02:00
Pierre Ossman
f84bc57bda
Move wheel event handling to RFB class
...
The Mouse class does very little now so it mostly just obfuscate things.
Move everything directly in to the RFB class instead.
2020-06-12 09:18:46 +02:00
Pierre Ossman
8be924c9d9
Add touch gestures for mouse emulation
...
Add several single and multitouch gestures to simulate various mouse
actions that would otherwise be impossible to perform.
This replaces the old system where you could select which mouse button
a single touch would generate.
2020-06-12 09:18:46 +02:00
Pierre Ossman
440ec8a0b6
Start fake test clock at real clock time
...
Some code relies on the clock having a somewhat sane value, so let's not
start at 0.
2020-06-11 16:50:08 +02:00
Pierre Ossman
0a6aec3578
Avoid printing the Websock buffer in tests
...
It takes forever and just messes up the output.
2020-06-11 16:50:08 +02:00
Pierre Ossman
111225fa41
Split decoder tests to separate files
2020-06-08 07:46:42 +02:00
Pierre Ossman
f694c32fd5
Merge branch 'camelcase' of https://github.com/samhed/noVNC
2020-06-05 09:41:25 +02:00
Samuel Mannehed
cfb824ed03
Add camelCase rule to eslint
2020-05-31 23:37:29 +02:00
Samuel Mannehed
ea858bfa27
Standardize on camelCase in Websock
2020-05-31 23:21:35 +02:00
Samuel Mannehed
95632e413d
Standardize on camelCase in tests
2020-05-31 23:21:35 +02:00
Samuel Mannehed
80187d158c
Standardize on camelCase in RFB
2020-05-31 23:21:35 +02:00
Samuel Mannehed
150596be83
Properly limit mouse moves to once every 17 ms
...
Previous attempt in c958269
had a number of issues, this is a full
rewrite, complete with improved unit tests.
Fixes github issue #1402
2020-05-31 00:53:15 +02:00
Samuel Mannehed
11a22dbf0c
Stop send mouse clicks while dragging in view only
2020-05-31 00:53:15 +02:00
Samuel Mannehed
006743857b
Standardize on camelCase for functions in RFB
2020-05-31 00:53:15 +02:00
Samuel Mannehed
e7dec5270e
Standardize on camelCase for variables in RFB
2020-05-31 00:53:15 +02:00
Samuel Mannehed
479d8cefd1
Add ability to set compression level
...
Fixes github issue #1382 .
2020-05-01 20:47:36 +02:00
Andrey Trebler
efd1f8a4f2
adds qualityLevel property to RFB class for updating JPEG quality level encoding on the fly
2020-02-28 13:14:19 +01:00
Alex Tanskanen
ceb8ef4ec1
Fix crash with too large clipboard data
...
If too much text is copied in the session, String.fromCharCode.apply()
would crash in Safari on macOS and Chrome on Linux. This commit fixes
this issue by avoiding apply() altogether. Also added test to cover this
issue.
2020-02-21 09:39:31 +01:00
Pierre Ossman
384232fb56
Merge branch 'clipboard_unicode' of https://github.com/CendioNiko/noVNC
2020-02-18 09:46:10 +01:00
Niko Lehto
f73fdc3ed3
Add extended clipboard Pseudo-Encoding
...
Add extended clipboard pseudo-encoding to allow the use of unicode
characters in the clipboard.
2020-02-18 09:32:36 +01:00
Niko Lehto
3b562e8a0f
Make clipBoardPasteFrom() test more specific
...
Don't rely on clientCutText() to test clipboardPasteFrom().
2020-02-17 09:34:44 +01:00
Samuel Mannehed
71bb3fdfa5
Fix color channels for VMware alpha cursors
...
The red and blue channels were incorrectly swapped.
2020-01-30 11:48:17 +01:00
Samuel Mannehed
3055307d3d
Merge pull request #1299 from CendioNiko/vmwarecursor
...
Add support for VMware cursor encoding
2019-09-25 14:45:29 +02:00
Niko Lehto
296ba51f49
Add support for VMware cursor encoding
...
Supports both classic cursor type and alpha cursor type. In classic
mode the server can send 'inverted' pixels for the cursor, our code
does not support this but handles these pixels as opaque black.
Co-authored-by: Samuel Mannehed <samuel@cendio.se>
2019-09-24 10:26:30 +02:00
Niko Lehto
8d6f686b59
Test unicode desktop names
2019-09-04 14:47:40 +02:00
Niko Lehto
ce66b46986
Add support for DesktopName extension
...
This extension allows session name to be changed during runtime.
2019-09-04 14:23:37 +02:00
Pierre Ossman
c9765e5066
Upgrade to latest sinon and chai
2019-08-15 15:58:09 +02:00
Pierre Ossman
b875486db8
Avoid deprecated called.once from sinon-chai
...
It's been removed in newer versions and will break eventually.
2019-08-15 15:58:09 +02:00
Pierre Ossman
70e6795829
Send data one byte at a time in tests
...
This makes sure we don't have code assuming that everything is
neatly packaged in a single WebSocket message.
2019-02-15 10:26:27 +01:00
Juanjo Diaz
8a189a6291
Add getters/setter to websock
2018-12-08 17:31:20 +02:00
Pierre Ossman
d105040581
Add tests for Cursor encoding
2018-09-18 11:36:32 +02:00
Pierre Ossman
2c5491e131
Enforce space after function name
2018-09-06 17:34:15 +02:00
Pierre Ossman
d80d9d3731
Enforce function call spacing
2018-09-06 16:46:38 +02:00
Pierre Ossman
6786fd8719
Enforce comma spacing
2018-09-06 16:43:31 +02:00
Pierre Ossman
7b536961b2
Enforce indentation
2018-09-06 16:37:38 +02:00
Pierre Ossman
ae2e1ff7bd
Move sinon to karma framework
...
This frees us from manual imports, and makes things less magical
as those aren't ES modules even if the code suggest that the are.
2018-07-13 15:57:24 +02:00
Juanjo Diaz
885363a373
Use the classic `function foo() { ... }` for top level functions or functions that depend on the scope
2018-07-12 19:06:57 +02:00