mirror of
https://github.com/Devolutions/IronRDP.git
synced 2025-12-23 12:26:46 +00:00
|
Some checks failed
CI / Check formatting (push) Has been cancelled
CI / Check typos (push) Has been cancelled
Coverage / Coverage Report (push) Has been cancelled
Release crates / Open release PR (push) Has been cancelled
Release crates / Release crates (push) Has been cancelled
CI / Checks [linux] (push) Has been cancelled
CI / Checks [macos] (push) Has been cancelled
CI / Checks [windows] (push) Has been cancelled
CI / Fuzzing (push) Has been cancelled
CI / Web Client (push) Has been cancelled
CI / FFI (push) Has been cancelled
CI / Success (push) Has been cancelled
The root cause of the bug is the incorrect keycodes-to-scancodes mappings. These mappings translated the browser's key codes (like "KeyA") to OS-specific scancode (OS where the browser runs). However, that's not exactly what we need to do. We need to map the browser's key codes to _Windows_ scancodes - the only format that is accepted by _VNC_ and _RDP_) modules. Let's look at an example for a better understanding. _Safari_ browser used _Linux_'s _Gecko) mappings as a fallback (because there were no MacOS-specific mappings). For a given key, _iron-remote-desktop_ was providing a scancode that did not correspond to the _Windows_ scancode for that same key. As a result, the `IronVNC` module incorrectly mapped this scancode to a `KeySym`, which resulted in an incorrect `KeySym` or `NO_SYMBOL`. |
||
|---|---|---|
| .. | ||
| iron-remote-desktop | ||
| iron-remote-desktop-rdp | ||
| iron-svelte-client | ||
| .gitignore | ||
| .prettierrc.yaml | ||
| README.md | ||
IronRDP Web Client
IronRDP also supports the web browser as a first class target.
See the iron-remote-desktop for the reusable Web Component, and iron-svelte-client for a demonstration.
Note that the demonstration client is not intended to be used in production as-is. Devolutions is shipping well-integrated, production-ready IronRDP web clients as part of:
- Devolutions Gateway’s Standalone Web Interface which is a completely free product (shipped since v2024.1.0).
- Devolutions Server, our self-hosted credential manager.
- Devolutions Hub, our cloud-based credential manager.