Releases: OpenPolyfill/WebHID
Releases · OpenPolyfill/WebHID
Release list
v3.2.0
Features
Bug Fixes
- addon: abort stale open after forget (b0d95b5)
- addon: allow injected main world script under strict csp (a10852e)
- addon: apply windows daemon-as-nm-host default (20b26cd)
- addon: bind grant authority to identity key (f212412)
- addon: chromium structured clone (929788d)
- addon: data plane token refresh out of scope (7177820)
- addon: explicit worker spawn states (6cc31bb)
- addon: grant identity from picker selection (94ac29a)
- addon: inherit permissions policy from frame ancestry (7f20a28)
- addon: inject mv2 main world synchronously (d171cd3)
- addon: make browser-side session bookkeeping principal-aware (16b0600)
- addon: MV2 missing logger (28d46a4)
- addon: origin-scoped session ownership registry (1792cbf)
- addon: per-origin bridge device cache (924be19)
- addon: retry failed cleanup closes (c94257a)
- addon: theme-aware page action icons via prefers-color-scheme (c473784)
- addon: track one session token per open (eaeface)
- addon: wt transport failure state (8c24d62)
- bound data-plane queues and request deadlines (60ce0bd)
- build: libc and unix gating for macos/windows (34484a1)
- build: msi build (3425d25)
- cancel WS/WT transports when their session closes (16d5f7a)
- cleanup deadcode, fix some bugs (24fc0ee)
- daemon: add verbose info for report error (6cb6a3b)
- daemon: bind permissions to physical identity (b6f5751)
- daemon: close first-open notify lost wakeup (aae1b48)
- daemon: end wt session on full response queue (9629df1)
- daemon: fail closed on descriptor parse failure (fce79a8)
- daemon: first-class per-client sessions (426ad49)
- daemon: keep distinct no-serial devices separate (f9189f3)
- daemon: non-lossy report projection per collection (4cd0de3)
- daemon: refuse ambiguous 32-bit device ids (005bac3)
- daemon: serialize concurrent first open (fa72eed)
- daemon: size HID buffers from descriptor (2f7eb08)
- daemon: validate ws host header (b0f3454)
- daemon: windows named pipe first instance only once (a33ba91)
- daemon: windows short write (7134a3d)
- forwarder: authenticate daemon endpoint via peer creds (9aa6d97)
- harden MAIN-world trust boundary for picker and worker spawn (f85ff00)
- multi fields report (06d5568)
- packaging: repair macOS Homebrew install (#8) (2bbdee2)
- protocol: fatal oversized frames, strict ints (b5142d8)
- update chromium compat (deb745f)
v3.1.0
Features
- add daemon dump subcommand for device diagnostics (ff2e4fc)
- per frame setting (f026d18)
- WT reconnect logic (e052358)
Bug Fixes
- active unarm on shadow url fail (34b7512)
- cheaper way to init worker polyfill (ab9f340)
- dead reader cleanup (hotplug also cleans up, but only on removal (9ed85d8)
- don't hide devices on descriptor parse failure (c1adccf)
- error on feature truncation, serial frame handling, misc cleanup (9a38b00)
- iframe permission policy bypass (b5e0113)
- keep every frame's NM data port alive and fall back to NM on worker error (3e20591)
- keep SRI fixture byte-identical, out of prettier (4d7d9cd)
- missing mv2 background script (51dfd03)
- patched worker sync spawn (745ddc2)
- reject when max report size is zero (85414c2)
- shadow url now passthrough for page self worker, small race window (2c7d8a8)
- terminate worker bundles with a semicolon before injection (1e15423)
- worker polyfill & init on demand (d36ca82)
- worker polyfill race window (4cad0e6)
v3.0.1
Features
- add allowActivationlessRequestDevice per-site setting (ca70c1f)
- add WebTransport (in-page) as a fourth data plane mode (2325969)
- default data plane is WebTransport (worker), ws on Firefox < 114 (4609149)
- one fd per HID device via linux-native backend + cargo-fixup patch (d5e67f3)
- strict origin check (7488ccc)
- ui/ux rework (ede34ae)
Bug Fixes
- cfg-gate DeviceHandle construction for non-Linux (e0135bf)
- consent bypass (2725994)
- float info popovers, point arrow at info button (4e2e8fe)
- hoist block-scoped functions, move CI interpolations to env (628f104)
- macOS build (7037e09)
- macOS build warnings (e5966b4)
- malformed csp (7bf7e3f)
- trusted type edge cases (49b4dbd)
- trusted type lazy claim (c976d0f)
- trusted type readiness (1057cb9)
v3.0.0
Features
- add env that allowing write log to file (13f17e2)
- bypass sec-fetch-dest gated on server (d96eab8)
- collections prune (2fb614a)
- CSP pre-flight detection to skip doomed shadow worker spawn (b610751)
- daemon now print warnings when running as root (13127fd)
- data worker batch handler (c609413)
- default hardening is off (4e85ff8)
- default report level blocking is off (50b3391)
- default workerSpawnMode to blob on MV2 (f8d7018)
- fail fast to NM when header CSP blocks workers on MV3 (b6529c2)
- handle shadow-url edge cases (e88623b)
- i18n + a11y for picker, popup, settings (13b6104)
- in-page WT (e1f3729)
- isSecureContext check & allow requestDevice in console (8729d26)
- migrate storage to IndexedDB + per-key settings (2b151ae)
- move root daemon to abstract socket (01c1b2e)
- mv2 support (52c07bc)
- mv2 support (firefox 58+) (0297ea5)
- permission policy (d3cbec6)
- report check when write (1fe1678)
- report-level blocking (8de34a6)
- rewrite meta-tag CSP via StreamFilter, cache TT policy (3b70028)
- rich text i18n support (811f1e1)
- sec-fetch-dest check (99bf49d)
- security hardening (a434282)
- theme sync (6f221c0)
- TLV binary packing for DeviceInfo.collections (128f40a)
- trusted type now working properly (03e9488)
- WebTransport (9c4ff18)
- worker polyfill impl (21faed1)
- worker polyfill stub (c74f1bd)
- worker spawn fallback mode (blob + CSP rewrite) (404c429)
- wt in-page now fully handle hotpath (83cd2d0)
- WT without worker (3a36c92)
Bug Fixes
- 8 spec compliance fixes across daemon and polyfill (a8a64c2)
- add back gate for unix (0d5f156)
- better use strict handler (283c34c)
- clippy lint (ecbb3d6)
- constant-time WS auth compare (0aec2fb)
- cross platform build errors (5278bd7)
- CSP rewrite for blob mode + test fixes (a198736)
- current benchmark not parity with docs (partial fix) (341fcc2)
- data worker ack on init message (e2c4978)
- dataplane_mode per session instead of per device (17d86b7)
- event double fire (36e5ced)
- js/ts lint (c5c5f92)
- logger env (8b4c447)
- now the worker performance match benchmark.md (0d90e4b)
- origin check for sandbox iframe (7983ed4)
- page xss vulnerability (tt factory exposed) (995faaf)
- report level block list now work properly (792751a)
- report level blocking now match 1:1 with chromium source (c6607d4)
- requestDevice cancel now return empty array instead of throwing (5e6a47e)
- resolve all addons-linter warnings (0bbc4ed)
- review fixes for worker spawn fallback (4ed0a10)
- rust code smell (aa92690)
- settings behavior (dddd587)
- shadowdom picker consent bypass (a2fe259)
- some bugs (d42bce3)
- some more security hardening (274aec8)
- strict_min_version lint (c7e83c3)
- sync MV2 manifest and injector script lists with MV3 (04c3a1e)
- throw on success (6e9cccd)
- warning in wrong branch (6d5ed22)
- windows build error (cf2e1cc)
- wire protocol drift (4b1ba28)
- wrong path (5812e0e)
v2.2.0
Features
- bypass CSP (5f3e437)
- cheaper way for shadow url to work (78e489c)
- exclusionFilter (5a6a7b2)
- keyboard interaction for shadow dom device picker (35c2b49)
- oneshot filter (06520c9)
- remove ws control plane (c964326)
- revoke will close device in polyfill layer (1fe65e0)
- set default daemonAsNmHost to true on Windows (d842975)
- support for firefox 133 (ac24424)
- throw when invalid spec (353e0ab)
Bug Fixes
v2.1.1
Bug Fixes
- missing styling in dom picker (8409adf)
v2.1.0
Features
- background fetch resource (6b9005e)
- browser action (5836f33)
- chromium support (3f7f152)
- control permission check (e0230b5)
- hotplug handler for popup and device picker (c0bfbd0)
- match Chromium's HID blocklist exactly (da13dc9)
- notifications (dcfcc48)
- page action device picker (7ace840)
- test bridge (65c59b7)
- test no war (6a74114)
- user activation (db28087)
- visibility transition (e3e176e)
- window picker (a6fd6a2)
Bug Fixes
- add defense layer to ws (055ca88)
- cache (9c63c6c)
- critical promise leaks, panics, and spec event target (9e23f9b)
- custom element didnt work, back to plain class (e47558c)
- debug ce (226eac8)
- device picker custom element (c4c61c0)
- device picker live update (29eb053)
- device picker now show immediately (fb8310c)
- device template got deleted (94ff944)
- EventTarget on HID object (d8c7fd1)
- global context for chromium (87f882f)
- keep NM connection alive on malformed JSON frame (31db13c)
- lint warnings (ef19f54)
- maybe fix #2, added some more diagnostics log (b3b871b)
- order (3308296)
- page port auth (e59223a)
- picker icons (ab58929)
- picker popup (b92c32d)
- poison-recovery, hotplug cleanup, spec (5b988a1)
- render duplicated (07cd68a)
- render empty list instead (6805d3c)
- responsive (05dc326)
- stable deviceId (86c46ec)
- state leaks and concurrent-open races (5ad7cec)
- test page (9a67961)
- transitionend (14c7573)
- wait for next frame to trigger transition (18ed436)
- ws control can open device now - intended behavior (9adf5bf)
v2.0.0
Features
- actual daemon-as-nm-host (8c2e69a)
- adaptive batching (1209587)
- control plane (6cec6bd)
- control worker (f1b416f)
- daemon as nm host (feea187)
- daemon-nm-host wrapper (40cb39e)
- daemon,nm,linux: use XDG_RUNTIME_DIR for normal user (7364de9)
- data plane switcher (ad3420f)
- dynamic buffer size (4287cdb)
- fire-and-forget for nm data plane (f390fd5)
- limit to group permission (951119b)
- log level per-site (38698d2)
- move collections parser to daemon (ab0f066)
- multi tab support (d23f5a5)
- nm host now act as a thin forwarder (33d0f43)
- NM only with message channel & direct port (63bdb04)
- numberic dev id (7e2e024)
- origin gate (b672c73)
- packed message (9e30d3f)
- popup dataplane toggle (959680c)
- remove bridge ws (eb98d4e)
- remove device hash, use deviceId instead (a7ad348)
- remove perf logging (b2ac4f1)
- remove SAB (9cc391d)
- sab toggle live (34eac6c)
- settings store (9962fb0)
- status code (3b90097)
- strict permission for user daemon (e332004)
- update logger (8e3a19c)
- use native base64 function (90f2dd3)
- worker ws (d3807e6)
Bug Fixes
- add back collections normalizer (c3fcb14)
- audit fixes (3ac81a0)
- close the correct device (2b59345)
- control ws spawn even when using control nm (7f46382)
- device counter & saved device info (2f624e9)
- devid u32 fix (2cdb2a5)
- do not wait for hot path on nm data plane (3b9aa22)
- event construct (c3f7f4b)
- event constructor (ac8dce9)
- event not arrive (ca1e3e3)
- event target (a71cd0c)
- faf (2cf02c6)
- hotplug bypassed blocklist (5608d42)
- input report event (de0d9d6)
- leftover (bd6452c)
- macos build (f04620a)
- nm data plane + daemon collections normalizer (f3c7fc4)
- nm error propagation (e6a2dd1)
- packed message (f15f5e4)
- reference error (206f70b)
- remove direct port as it is not supported by firefox (31e0cd5)
- remove predictable token fallback (92982b2)
- remove task scheduler (c001516)
- rename to match format
/^\w+(\.\w+)*$/)for (ca150f7) - sab size (ab33cca)
- saved device in popup (21f3ca6)
- security (d573713)
- settings change bugs (4c5ec1f)
- settings save & worker tdz (1cb919b)
- settings sync, life cycle management (6d0654c)
- site setting for data plane (8754ab9)
- split async (dd6bd7b)
- truncated byte (d5fa14f)
- wrong message type (bd75412)
- ws control open device (e8e9d04)
- ws dataplane (6c40af0)