From ff1593be813bb3c4c6574c84814a342d0a355184 Mon Sep 17 00:00:00 2001 From: Sucukdeluxe <259325684+Sucukdeluxe@users.noreply.github.com> Date: Thu, 20 Aug 2026 13:45:02 +0200 Subject: [PATCH] fix: gate native window reveal on renderer load Keep BrowserWindow hidden until both ready-to-show and did-finish-load are complete, preventing the incomplete header from reaching the screen. Render a static upload-speed baseline beneath the transparent canvas so the zero line exists independently of renderer timers. Add regression coverage for both reveal event orders, load failures, and the script-independent header baseline. --- lib/startup-renderer.js | 21 +++++++++++++++++++-- renderer/index.html | 5 ++++- renderer/styles.css | 22 +++++++++++++++++++++- tests/startup-renderer.test.js | 18 +++++++++++++++++- 4 files changed, 61 insertions(+), 5 deletions(-) diff --git a/lib/startup-renderer.js b/lib/startup-renderer.js index e6dff20..a49801b 100644 --- a/lib/startup-renderer.js +++ b/lib/startup-renderer.js @@ -15,14 +15,31 @@ function createStartupQuery(config, version) { function createStartupWindow(BrowserWindow, options) { const window = new BrowserWindow({ ...options, show: false }); - window.once('ready-to-show', () => { + let nativePaintReady = false; + let rendererLoadFinished = false; + let revealed = false; + const reveal = () => { + if (revealed || !nativePaintReady || !rendererLoadFinished) return; + revealed = true; window.show(); + }; + window.once('ready-to-show', () => { + nativePaintReady = true; + reveal(); + }); + window.webContents.once('did-finish-load', () => { + rendererLoadFinished = true; + reveal(); }); return { window, load(target, onLoadError, options) { - return window.loadFile(target, options).catch(onLoadError); + return window.loadFile(target, options).catch((error) => { + rendererLoadFinished = true; + reveal(); + return onLoadError(error); + }); } }; } diff --git a/renderer/index.html b/renderer/index.html index 537a915..1a97fb3 100644 --- a/renderer/index.html +++ b/renderer/index.html @@ -55,7 +55,10 @@
- + 0 B/s