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.
This commit is contained in:
Sucukdeluxe
2026-08-20 13:45:02 +02:00
parent f3001828a0
commit ff1593be81
4 changed files with 61 additions and 5 deletions
+4 -1
View File
@@ -55,7 +55,10 @@
<div class="header-spacer" aria-hidden="true"></div>
<div class="header-cluster header-utilities">
<div class="upload-speed-sparkline" id="uploadSpeedSparkline" title="Aktuelle Upload-Geschwindigkeit" aria-label="Aktuelle Upload-Geschwindigkeit">
<canvas id="uploadSpeedCanvas" width="232" height="44" aria-hidden="true"></canvas>
<span class="upload-speed-chart" aria-hidden="true">
<span class="upload-speed-baseline"></span>
<canvas id="uploadSpeedCanvas" width="232" height="44"></canvas>
</span>
<strong id="uploadSpeedValue">0 B/s</strong>
</div>
<button class="header-update-button" id="headerUpdateBtn" title="Nach Aktualisierungen suchen" aria-label="Nach Aktualisierungen suchen" data-tooltip="Nach Aktualisierungen suchen">
+21 -1
View File
@@ -1960,7 +1960,27 @@ select.hs-input { max-width: none; width: auto; min-width: 140px; }
transition: opacity .16s ease;
}
.upload-speed-chart {
position: relative;
min-width: 0;
height: 22px;
display: block;
}
.upload-speed-baseline {
position: absolute;
left: 0;
right: 0;
bottom: 2px;
height: 2px;
border-radius: 999px;
background: var(--success);
pointer-events: none;
}
.upload-speed-sparkline canvas {
position: relative;
z-index: 1;
width: 100%;
height: 22px;
display: block;
@@ -4053,7 +4073,7 @@ input[type="checkbox"] {
justify-content: flex-end;
}
.upload-speed-sparkline canvas {
.upload-speed-chart {
display: none;
}