Electron 43.2.0
Electron 43.2.0 has been released — a feature-packed update that introduces a native WebSocket client, along with important fixes for GPU handling, keyboard shortcuts, and window management. This release brings the framework closer to parity with modern browser APIs for desktop app developers.
New: net.WebSocket API
The headline feature in Electron 43.2.0 is the addition of net.WebSocket, a WHATWG-compatible WebSocket client for the main process. Unlike the browser-based WebSocket API, this implementation routes through Chromium's network stack directly, giving developers more control over WebSocket connections from the Node.js side of their Electron apps.
This is particularly useful for apps that need to maintain persistent connections to APIs, real-time data streams, or chat services directly from the main process without workarounds. The API mirrors the standard WebSocket interface, so migration is straightforward.
Key Fixes
- GPU handling: Fixed
app.disableHardwareAcceleration()not fully disabling GPU hardware usage on Windows — a regression that started in Electron 38. Apps that rely on software rendering now work correctly again - Keyboard shortcuts: Fixed
globalShortcutnot working on GNOME Wayland by enabling Chromium'sGlobalShortcutsPortalPreferredTriggerfeature by default on Linux - Crash fix: Resolved a crash when showing Linux message boxes while another Linux UI implementation was active
- Window throttling: Fixed a window being incorrectly marked hidden and background-throttled on macOS when covered by a transparent or click-through window
- Autofill performance: Eliminated unnecessary autofill popup creation for fields without datalist suggestions, reducing input latency on macOS
- Print API: Fixed
webContents.print()returning "Invalid printer settings" when print options are provided
Upgrade Notes
Electron 43.2.0 is a stable release. To upgrade your project:
npm install electron@latest
No breaking changes are introduced in this release. The net.WebSocket API is additive and does not affect existing WebSocket usage. Check the full release notes on GitHub for additional details.