Document and test extension integration - #3
Draft
MiguelsPizza wants to merge 1 commit into
Draft
MiguelsPizza wants to merge 1 commit into
MiguelsPizza wants to merge 1 commit into
Conversation
This was referenced Sep 14, 2026
Merged
MiguelsPizza
force-pushed
the
alex/strict-polyfill
branch
from
September 14, 2026 15:30
63cc3f5 to
0a97a78
Compare
MiguelsPizza
force-pushed
the
alex/execute-tool
branch
from
September 14, 2026 15:30
32c354d to
49e0a43
Compare
MiguelsPizza
force-pushed
the
alex/strict-polyfill
branch
from
September 14, 2026 15:50
0a97a78 to
3b8266e
Compare
MiguelsPizza
force-pushed
the
alex/execute-tool
branch
2 times, most recently
from
September 14, 2026 21:43
a8d5c56 to
ad06f90
Compare
MiguelsPizza
force-pushed
the
alex/strict-polyfill
branch
2 times, most recently
from
September 14, 2026 21:48
5db059a to
ac50a41
Compare
MiguelsPizza
force-pushed
the
alex/execute-tool
branch
2 times, most recently
from
September 15, 2026 16:38
f757b99 to
f2e95de
Compare
MiguelsPizza
force-pushed
the
alex/strict-polyfill
branch
from
September 15, 2026 16:38
ac50a41 to
c02e55c
Compare
MiguelsPizza
force-pushed
the
alex/execute-tool
branch
from
September 15, 2026 17:12
f2e95de to
c9f718c
Compare
MiguelsPizza
force-pushed
the
alex/strict-polyfill
branch
from
September 15, 2026 17:12
c02e55c to
27e02b4
Compare
MiguelsPizza
force-pushed
the
alex/execute-tool
branch
from
September 15, 2026 17:16
c9f718c to
f361c09
Compare
MiguelsPizza
force-pushed
the
alex/strict-polyfill
branch
from
September 15, 2026 17:16
27e02b4 to
d123b25
Compare
Document MAIN-world installation, discovery and invocation through the browser's scripting API, and forwarding toolchange into the isolated world as a payload-free DOM event. The guide is explicit that those events are hints rather than an authorization boundary, since MAIN-world code shares the page's globals. The test builds an MV3 extension out of the guide's own JavaScript blocks and runs it against a real served page in Chromium and in stock Firefox over geckodriver, so the documented example cannot drift from working code. Assert the extraction itself, so editing the guide fails here rather than in a poll timeout. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
MiguelsPizza
force-pushed
the
alex/execute-tool
branch
from
September 15, 2026 17:17
f361c09 to
0cb2b89
Compare
MiguelsPizza
force-pushed
the
alex/strict-polyfill
branch
from
September 15, 2026 17:17
d123b25 to
6a94792
Compare
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.
WIP - currently having some AI's do reviews. Below is AI generated
this adds a guide for dropping the polyfill into an existing extension, on top of #2. It covers installing the built bundle as a MAIN-world content script at
document_start, discovering and invoking throughscripting.executeScriptso the browser carries results back without a page-message protocol, and forwardingtoolchangeinto the isolated world as a payload-free DOM event. The guide is explicit that those events are hints and never an authorization boundary, since MAIN-world code shares the page's globals.The test lifts the guide's two JavaScript blocks, wraps them in an MV3 extension, and runs it against a real served page in Chromium and in stock Firefox over geckodriver, covering discovery, execution, unregister and re-register, reload, and a non-matching origin. Firefox runs the same
chrome.scriptingcode through Selenium, because Playwright loads extensions only in Chromium. Extraction depends on the guide having exactly twojsblocks in that order plus two literal markers, so the test asserts the extraction itself: editing EXTENSIONS.md fails in a second with a message naming the file instead of timing out somewhere inside a 90-second extension run.All 102 browser tests and the package checks pass; WPT is unchanged from #2, same five expected failures. That closes the stack.