fix(desktop): stop Windows silent freeze when window is occluded (#83420) - #83540
fix(desktop): stop Windows silent freeze when window is occluded (#83420)#83540HexLab98 wants to merge 2 commits into
Conversation
Idle chat windows were returning to Chromium's occluded-window path, which on Windows can park the browser main thread on a WaitableEvent with no wake (NousResearch#83420). Restore the Windows-only occlusion opt-out and pulse unthrottle on show/restore/focus, without bringing back process-wide timer opt-outs.
Regression coverage for NousResearch#83420: win32-only Chromium switches and the show/restore/focus wake pulse that restarts idle throttling safely.
|
suggesting changes
Please read and merge the existing comma-separated value, de-duplicate Security evidence:
Not checked:
Signed: GPT-5.6-sol-xhigh in Codex |
|
Windows 11 reporter of #83420 here — I can run the manual occlusion test from your test plan (minimize/fully cover ≥30s, restore, first taskbar click) on the exact build, with renderer logging + a crash dump if it still stalls. Say the word once the requested change lands. |
|
Just checking in on #83540 — any ETA on the requested change (merging the |
Windows 11 test result: freeze reproduces on this PR (head
|
|
Thanks @HexLab98 for the careful work here — the platform-scoped helper, the
Merging this would close #83420 without fixing it (and add a flag-clobbering regression), so we're keeping the issue open for the deeper scheduler-level investigation. If a future fix wants the occlusion opt-out as defense-in-depth alongside a real fix for the wedged task runner, the helper structure here is a good starting point and we'd welcome a follow-up that merges the |
Summary
disable-backgrounding-occluded-windows+CalculateNativeWinOcclusion) so an idle minimized/covered Hermes window cannot stall the UI task runner with no error.setBackgroundThrottling(false)on chat-windowshow/restore/focusso a return from occlusion can wake the scheduler even if it wedged while hidden.disable-background-timer-throttlingor a staticbackgroundThrottling: false(those caused the idle ~20% CPU burn).Fixes #83420
Test plan
cd apps/desktop && npx vitest run electron/stream-throttle.test.ts electron/windows-occlusion-flags.test.ts