From ef1fdc89c3f7fd8dea2764f7e2a60091d1b13fb1 Mon Sep 17 00:00:00 2001 From: KoalaDev <6156589+Shik3i@users.noreply.github.com> Date: Fri, 14 Aug 2026 07:53:45 +0200 Subject: [PATCH] test: prove the frame lifecycle fixes against the real extension The evidence for the frame-observation fixes was a reimplementation of the logic measured in a browser console, not the shipped code. Two extension specs now cover the observable behaviour end to end: a player frame that swaps its document, and the same one level deeper. The nested case fails against the pre-fix content.js and passes now. The top-level case already passed before the fix, so that fix removed dead observer registrations without changing what a user could see; recorded here so the distinction is not lost. Also adds bench-finder.mjs, which measures the extracted shipped finder instead of a transcription of it. Co-Authored-By: Claude Opus 5 --- tests/e2e/README.md | 15 ++++ tests/e2e/bench-finder.mjs | 76 +++++++++++++++++++ tests/e2e/detection.spec.mjs | 1 + tests/e2e/extension.spec.mjs | 56 ++++++++++++++ .../fixtures/pages/frames/outer-frame.html | 7 ++ .../fixtures/pages/frames/player-frame-2.html | 7 ++ tests/e2e/fixtures/pages/nested-frame.html | 6 ++ tests/e2e/fixtures/pages/reloading-frame.html | 9 +++ 8 files changed, 177 insertions(+) create mode 100644 tests/e2e/bench-finder.mjs create mode 100644 tests/e2e/fixtures/pages/frames/outer-frame.html create mode 100644 tests/e2e/fixtures/pages/frames/player-frame-2.html create mode 100644 tests/e2e/fixtures/pages/nested-frame.html create mode 100644 tests/e2e/fixtures/pages/reloading-frame.html diff --git a/tests/e2e/README.md b/tests/e2e/README.md index b15a2c1..a8dc951 100644 --- a/tests/e2e/README.md +++ b/tests/e2e/README.md @@ -50,6 +50,21 @@ reads as a broken fixture instead of a scoring regression. | `background-loop.html` | Silent looping hero must lose despite being the largest | | `multi-player.html` | Between equal players, the playing one wins | | `sourceless.html` | A large `