test(mv3): prove content-script isolated-world compatibility - #61
Draft
seonghobae wants to merge 4 commits into
Draft
test(mv3): prove content-script isolated-world compatibility#61seonghobae wants to merge 4 commits into
seonghobae wants to merge 4 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 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.
Dependency
This Draft remains stacked on PR #60 exact head
e696e19c9eaf3dedb104a5de4bdbd7970abf90d4, transitively on #59/#56/#43. It is not independently integrable before those prerequisites.TDD evidence
Exact test-only head
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 only becausepage.htmlandcontent_script.jslacked those isolation contracts. That is the intended RED; no predecessor success is reused.Current exact head is
c1705ad9fd2d96e620b89bb6e7ea1235063dcb6a.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"; andIf page and extension JavaScript worlds collapse, the page's repeated sentinel publication becomes
"extension"and the existing compatibility gate fails rather than reporting success.Exact-head proof
On unchanged exact head
c1705ad9fd2d96e620b89bb6e7ea1235063dcb6a:31434670642: success;31434670629, job93605998114: success against Chrome for Testing150.0.7871.129/ Chromium revisionr1639810;content-scriptsurface true on every initial/restart/update-migration pass; andNo predecessor-head result is transferred to this exact head.
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.
Keep Draft while #60/#59/#56/#43 remain active. This scheduled actor does not merge or self-approve.