fix(web): wipe background-image too — the widget's black void is a CSS backdrop gradient, not a color

The 15:34 take's box interior is the widget's OWN full-canvas opaque paint — a
black void with wide content strips at the top/bottom and a right-edge bar —
arriving AFTER the first-second blank-transparent dumps. A background-color-only
!important wipe (b4bba4b) can't touch it because CSS gradients/backdrops are
background-IMAGE, not background-color.

OBS's fix for this exact symptom is background-image:none (obsproject/obs-studio#6659:
"set the CSS for html and body to background: none !important"). Injection now wipes
background-image:none!important on html,body,html * alongside the color wipe; HTML
overlay art (<img>/DOM/CSS shapes) survives — that is browser-source semantics.

Also re-arms WidgetDumpRemaining=5 ~30s after nav so the next take dumps the real
document INSIDE the recording window (the previous dumps proved blank at +1s and
missed the later backdrop paint).

9/9 WebView2Manager tests, 0 warnings.
This commit is contained in:
2026-09-10 15:42:26 -07:00
parent b4bba4bf68
commit 0f72c53aa5
4 changed files with 57 additions and 39 deletions
+1
View File
@@ -121,6 +121,7 @@ public sealed class WebView2ManagerTests
var script = WebView2Manager.TransparentBackgroundScript;
Assert.Contains("background-color:transparent!important", script);
Assert.Contains("background-image:none!important", script);
Assert.Contains("html,body,html *", script);
Assert.Contains("document.createElement('style')", script);
Assert.DoesNotContain(".style.background=", script);