test(mv3): prove content-script isolated-world compatibility - #61
Draft
seonghobae wants to merge 15 commits into
Draft
test(mv3): prove content-script isolated-world compatibility#61seonghobae wants to merge 15 commits into
seonghobae wants to merge 15 commits into
Conversation
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Plus Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This was referenced Aug 16, 2026
Preserve the exact isolated-world tree after proving it already contains the current update-migration prerequisite semantics. Add the repaired #60 head as ancestry only; no predecessor checks or reviews transfer.
Use the exact repaired #60 tree as the descendant baseline and preserve only the isolated-world page fixture and regression test at this step. This removes stale child-tree deletions before merging the two overlapping isolated-world files.
Rebuild the isolated-world lane on the exact current PR #60 tree while preserving only its page/content-script sentinel contract, test, and changelog evidence. Keep the current update-migration/history/bookmark behavior and ChromeDriver cleanup resilience unchanged. No predecessor check or review evidence transfers.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Partial implementation of #27.
Buyer-visible gap
The pinned Chromium fixture proved content-script injection, but issue #27 also requires isolated-world behavior. Injection alone does not prove that extension JavaScript globals remain separated from the page main world.
Live dependency / stack state
This Draft is stacked on current exact PR #60 head
56a15071d2ca77ba38ee59ce518de262eb2f8f36, transitively on #59/#56/#43. Current exact contributor head ise3ef1b99ad952a8c2835299f992a6db595a7212a.Fresh ancestry is ahead 7 / behind 0, with merge base exactly equal to the live #60 head. Relative to #60 the current semantic delta is limited to
CHANGELOG.md,tests/fixtures/mv3_basic/content_script.js,tests/fixtures/mv3_basic/page.html, andtests/test_mv3_isolated_world_contract.py. No prerequisite check, review, status, or predecessor result is transferred to this child.Keep Draft while #60/#59/#56/#43 remain active.
TDD / stack-reconciliation RCA
e81cdbd9b31a62227698bd3d824fd901551061f0added a fail-first repository contract requiring a page-main-world sentinel plus a distinct content-script-world sentinel. CI run31434443638, job93605281379, checked out that exact head and failed becausepage.htmlandcontent_script.jslacked those isolation contracts. That is the intended RED.d9bfadb6aa7ea0798c23bdebf205ad57554d1b18. A fresh compare exposed that this unchanged stale child tree would regress two prerequisite files:service_worker.jsandtests/test_mv3_downloads_contract.py, including the currentconflictAction: "uniquify"download race fix. That intermediate alignment was therefore rejected as evidence.e3ef1b99ad952a8c2835299f992a6db595a7212anow differs from live test(mv3): prove extension update migration in real Chromium #60 only in the four intended isolated-world files listed above.Implemented boundary
The controlled fixture now:
window.originweaveWorldSentinel = "page"in page/main-world JavaScript;"extension"inside the Manifest V3 content script;content-scriptcompatibility surface as ready only when the page still observes"page"while the content script independently observes"extension";uniquifydownload semantics; andIf page and extension JavaScript worlds collapse, the page's repeated sentinel publication becomes
"extension"and the compatibility gate fails rather than reporting success.Current exact-head evidence
On unchanged exact head
e3ef1b99ad952a8c2835299f992a6db595a7212aagainst unchanged prerequisite56a15071d2ca77ba38ee59ce518de262eb2f8f36:31923941267: success;31923940936: success against the pinned real-Chromium fixture;No predecessor, prerequisite, intermediate-reconciliation, queued, skipped, cancelled, synthetic-merge, stale, status-only, or model-only evidence is promoted as current proof. The Draft remains dependency-blocked rather than verification-blocked.
Scope boundary
Compatibility evidence only. This does not expose arbitrary page JavaScript, add a browser adapter, create Agent authority, weaken content trust, alter workflows, or claim all Chrome isolated-world semantics. It proves one deterministic main-world/content-script separation contract in the pinned real Chromium fixture.
This scheduled actor does not merge, self-approve, alter workflows, add secrets, weaken checks, tag, or publish.