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

4 lines
1.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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`.