Web pages: browsers are made at once, so none outlives its view (M-12)
make_browsers creates each browser synchronously and adopts it in the same call, so no view waits on a browser: it leaves before creation (skipped) or has a browser to close. The late-close branch in on_after_created is gone. webprobe drops 5 views before the pump and 10 within 27 ms; webview.sh wants all 35 freed before the hold. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
c5cb153f72
commit
0d4dd64640
10 files changed
+50
-24
No files matched your search
@@ -65,11 +65,12 @@ probe=
|
||||
out=$(cat "$work/out")
|
||||
for want in "probe: value=你好a" "probe: focused=text" "probe: zoom=1.25" "probe: stayed" \
|
||||
"probe: outside=false" "probe: network=refused" "probe: udp=silent" "probe: rtc=undefined" "probe: main failed" "probe: hash loaded" "probe: missing failed" \
|
||||
"probe: closed 20"; do
|
||||
"probe: closed 20" "probe: dropped 5 unmade, 10 early"; do
|
||||
grep -qxF "$want" <<<"$out" || fail "expected '$want', got: $out"
|
||||
done
|
||||
grep -qE '^probe: fg=rgba\([0-9]+, [0-9]+, [0-9]+, ' <<<"$out" || fail "no theme token: $out"
|
||||
freed=$(grep -c "a page's memory is freed" "$work/err" || true)
|
||||
[ "$freed" -ge 20 ] || fail "only $freed of 20 closed pages freed their memory"
|
||||
# Freed before the hold: 20 closed, 5 unmade, 10 early.
|
||||
freed=$(awk "/probe: hold/ { exit } /a page's memory is freed/ { n++ } END { print n + 0 }" "$work/err")
|
||||
[ "$freed" -ge 35 ] || fail "only $freed of 35 closed pages freed their memory"
|
||||
! grep -q "panicked" "$work/err" || fail "panics: $(grep -m3 panicked "$work/err")"
|
||||
echo "ok: webview (marker share $share, $freed pages freed)"
|
||||
Reference in new issue
Block a user