2026-09-11
Features
- Switch to OpenJDK 25 for the main app #1216
- Switch to OpenJFX 27 for HTML printing #1216
- Switch to Apache Ivy for dependency management #1216
- Add LocalNetworkAccess detection examples #1441
- Add detailed printer crawling to the log files
printer.details.debug=true#830 - Add API to fetch app details
qz.api.getVersion({ details: true })#1497 - Linux: Prompt for CUPS install when missing #1393
- Linux: Add support for Firefox Flatpak #1476
- Linux: Improve dark/light mode handling #1509
- Linux: Improve desktop scale factor support #1509
- Theming: Switch to formdev/DarkLaf #1216
Fixes
- WebSocket: Suppress notifications for idle timeouts #691
- API: Harden
qz.websocket.isActive()#1458 - macOS: Fix XML parsing bug for when offline #1444
- Windows: Fix backwards compatibility issues with Windows 7 #435
- Support printers with leading spaces: #1464
- PDF: Fix printing of PDF annotations: #1481
Company Branded
- Add more provisioning options: https://qz.io/docs/company-branded#provisioning
- Add support for dark-mode "About" logos #1513
- Fix handling of unicode characters: #1469, #1511
- Fix
dist.minimal#1474 - Fix
security.wss.httpsonly#1482 - Improve
security.wss.alloworiginto support multiple origins #1477 - Clean up duplicate cert entries #1490
Maintenance
- Chrome: Remove browser modification for
qz:launch#1452 - Add regression tests for critical
META-INF/services#1453 - WebSocket: Increase default header size for incoming connections #1460
- HTML: Fix parsing of WebKit version #1437
Security
- Windows: Sign NSIS libraries #436
- Hardening: Add
security.print.tohosttoggle #1479 - Hardening: Guard against traversing into file junctions #1487
- Hardening: Add Basic Constraints to CA SSL cert #1492
- Hardening: Restrict URI launches to sane flags #1493
- Bump dependent libs, JDK
Full Changelog: v2.2.6...v2.3.0