ready-to-show never fires for hidden windows with titleBarOverlay on Windows (regression in 44.4.x)
Preflight Checklist
- I have read the Contributing Guidelines for this project.
- I agree to follow the Code of Conduct that this project adheres to.
- I have searched the issue tracker for a bug report that matches the one I want to file, without success.
Electron Version
44.4.1
What operating system(s) are you using?
Windows
Operating System Version
Windows 11 (10.0.26200)
What arch are you using?
x64
Last Known Working Electron version
44.1.1
Does the issue also appear in Chromium / Google Chrome?
I don't know how to test
Expected Behavior
A BrowserWindow created with show: false emits ready-to-show after its first paint, so the window can be shown without a flash — this works on 44.1.1.
Actual Behavior
On 44.4.1 the event never fires, so an app that waits for ready-to-show to call show() stays invisible forever. The page itself loads normally (did-finish-load fires, the renderer is alive, CDP works). To end users the app appears not to start. This broke our released Windows build for every user.
Output of the testcase on both versions:
electron 44.1.1 / Chromium 152.0.7977.65: RESULT ready-to-show=true did-finish-load=true
electron 44.4.1 / Chromium 152.0.7977.78: RESULT ready-to-show=false did-finish-load=true
Testcase Gist URL
https://gist.github.com/huang-sh/eec4ca48656c393bd275dc605af55673
Additional Information
Bisecting the window options on 44.4.1:
- Removing
titleBarOverlaymakesready-to-showfire again — the overlay on an initially-hidden window is what suppresses it. backgroundThrottling: falseandwebviewTag: trueare not involved (both fire fine without the overlay).- Only verified on Windows; not tested on macOS/Linux.
Workaround we shipped: fall back to showing the window from did-finish-load after a short delay. Happy to test a fix build on short notice.
Source: electron/electron