Files
ElyOffice/tasks/reviews/M-12-r2.md
T
ZacharyZhang-NYandClaude Opus 5.5 0d4dd64640 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>
2026-10-10 13:47:45 -04:00

1.1 KiB
Raw Blame History

FAIL

crates/ely-web-content/examples/webprobe.rs:193 — R1's regression-coverage defect remains: the 0–27 ms timers do not ensure a view is dropped after browser creation is submitted but before on_after_created. In review copies on both Windows and WSL, restoring asynchronous creation and unconditional callback adoption (the original M-12 bug) still satisfies the new release assertion: 30/30 surfaces freed before hold. When the actual WebView::Drop and deferred close run deterministically between submission and the creation callback, that same mutant frees only 20/30; the current synchronous implementation frees 30/30. Thus the original PERF-08 leak can return without this regression probe detecting it. Retain a deterministic lifecycle regression covering that ordering and verify that it rejects the original leaking implementation. Evidence: .work/m12-r2/windows-async-result.log, .work/m12-r2/linux-async-result.log, .work/m12-r2/windows-async-forced-result.log, .work/m12-r2/linux-async-forced-result.log; probe method and cleanup are recorded in .work/m12-r2/evidence.log.