Revert "[WebMCP] Expose RegisteredTool.inputSchema as an object" - #62111
Community-TC (pull_request)
Collect results for all tests affected by a pull request in firefox.
Details
View task in Taskcluster | View logs in Taskcluster | View task group in Taskcluster
Task Status
Started: 2026-08-21T11:47:49.794Z
Resolved: 2026-08-21T11:52:49.099Z
Task Execution Time: 4 minutes, 59 seconds, 305 milliseconds
Task Status: completed
Reason Resolved: completed
TaskId: cOs3tdcfTQOeeZ2glFO1QQ
RunId: 0
Artifacts
- public/logs/live_backing.log
- public/logs/live.log
- public/results/checkrun.md
- public/results/wpt_report.json.gz
- public/results/wpt_screenshot.txt.gz
WPT Command: python3 ./wpt run --channel=nightly --no-fail-on-unexpected --log-wptreport=../artifacts/wpt_report.json --log-wptscreenshot=../artifacts/wpt_screenshot.txt --affected base_head --log-mach-level=info --log-mach=- -y --no-pause --no-restart-on-unexpected --install-fonts --verify-log-full --no-headless --binary=/home/test/build/firefox/firefox firefox
[taskcluster 2026-08-21 11:47:49.856Z] Task ID: cOs3tdcfTQOeeZ2glFO1QQ
[taskcluster 2026-08-21 11:47:49.856Z] Worker ID: 7917238176964773077
[taskcluster 2026-08-21 11:47:49.856Z] Worker Group: us-east1-c
[taskcluster 2026-08-21 11:47:49.856Z] Worker Node Type: projects/757942385826/machineTypes/n2-standard-4
[taskcluster 2026-08-21 11:47:49.856Z] Worker Pool: proj-wpt/ci
[taskcluster 2026-08-21 11:47:49.856Z] Worker Version: 46.1.0
[taskcluster 2026-08-21 11:47:49.856Z] Public IP: 34.139.249.46
[taskcluster 2026-08-21 11:47:49.856Z] Hostname: proj-wpt-ci-gb-02ti8tlkejdrsmhcuwa
[taskcluster 2026-08-21 11:47:50.851Z] === Task Starting ===
+ '[' '' ']'
+ '[' -d /etc/profile.d ']'
+ for i in /etc/profile.d/*.sh
+ '[' -r /etc/profile.d/01-locale-fix.sh ']'
+ . /etc/profile.d/01-locale-fix.sh
+++ /usr/bin/locale-check C.UTF-8
++ eval
+ for i in /etc/profile.d/*.sh
+ '[' -r /etc/profile.d/apps-bin-path.sh ']'
+ . /etc/profile.d/apps-bin-path.sh
...(474 lines hidden)...
1:18.90 TEST_START: /webmcp/declarative/getTools-declarative-schema.https.html
1:18.91 INFO Closing window 5baa2dd6-b158-41fc-a9e2-6cafb8da3137
1:19.07 TEST_END: Test OK. Subtests passed 0/1. Unexpected 1
FAIL WebMCP: getTools() retrieves declarative schema at registration time - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
1:19.07 TEST_START: /webmcp/declarative/no-frame-documents.https.html
1:19.07 INFO Closing window 12047da2-46ba-465e-89b0-b4cbabfa9607
1:19.25 TEST_END: Test OK. Subtests passed 0/4. Unexpected 4
FAIL Declarative tool in document without active frame is not registered - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"FAIL Declarative tool in DOMParser document is not registered - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"FAIL Declarative tool with name only in document without active frame is not registered - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"FAIL Declarative tool in iframe removed after registration does not crash on attribute modification - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
1:19.25 TEST_START: /webmcp/declarative/opaque-origin-tools.https.html
1:19.25 INFO Closing window cb730248-2721-48a9-82d5-4b2002d70c9e
1:19.48 TEST_END: Test OK. Subtests passed 0/2. Unexpected 2
FAIL An opaque origin document can register but not execute its own declarative tools - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"FAIL executeTool() rejects synchronously for opaque origins - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
1:19.48 TEST_START: /webmcp/declarative/select-multiple-events.https.html
1:19.48 INFO Closing window b92dc10b-c7a9-4c26-ad8a-6d269c3d67bc
1:19.64 TEST_END: Test OK. Subtests passed 0/1. Unexpected 1
FAIL executeTool() on a <select multiple> dispatches input and change events - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
1:19.65 TEST_START: /webmcp/declarative/toolchange-on-attribute-mutation.https.html
1:19.65 INFO Closing window 7706169a-5570-4049-a085-c5ee56cb21db
1:19.83 TEST_END: Test OK. Subtests passed 0/1. Unexpected 1
FAIL Test that mutating or removing form attributes (toolname, tooldescription, tooltitle, toolautosubmit) fires toolchange and updates getTools() correctly - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
1:19.83 TEST_START: /webmcp/declarative/toolchange-on-control-add-remove.https.html
1:19.83 INFO Closing window ea09a456-0608-420f-b5f0-6a88b503f3f4
1:20.04 TEST_END: Test OK. Subtests passed 0/1. Unexpected 1
FAIL Test that toolchange event fires when controls are added or removed - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
1:20.04 TEST_START: /webmcp/declarative/unregister-during-executeTool.https.html
1:20.05 INFO Closing window 7cca9068-4294-4f27-b665-4d6c86a167eb
1:20.25 TEST_END: Test OK. Subtests passed 0/2. Unexpected 2
FAIL Pending executeTool() Promise resolves successfully when target declarative tool is unregistered via DOM removal - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"FAIL Pending executeTool() Promise resolves successfully when target declarative tool is unregistered via attribute removal - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
1:20.25 TEST_START: /webmcp/imperative/executeTool-caller-navigate-abort.https.html
1:20.25 INFO Closing window 9f52bc92-b92f-4bfe-8f03-6cd4ba4fb0bd
1:20.48 TEST_END: Test OK. Subtests passed 0/2. Unexpected 2
FAIL executeTool() aborts target signal when the invoker document (same-origin) navigates away - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"FAIL executeTool() aborts target signal when the invoker document (cross-origin) navigates away - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"
1:20.48 TEST_START: /webmcp/imperative/executeTool-signal-cross-origin.https.html
1:20.49 INFO Closing window 0ca4fa34-0015-4962-923e-fdd9c5b5a7cc
1:20.73 TEST_END: Test OK. Subtests passed 0/2. Unexpected 2
FAIL caller abort in parent document propagates to options.signal in cross-origin iframe tool - promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"FAIL caller abort in cross-origin iframe propagates to options.signal in parent document tool - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"
1:20.73 TEST_START: /webmcp/imperative/executeTool-target-navigation.https.html
1:20.74 INFO Closing window 83809399-97b2-4e5f-b305-958aaa7020c7
1:20.94 TEST_END: Test OK. Subtests passed 0/1. Unexpected 1
FAIL executeTool() rejects when target document navigates away - promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"
1:20.94 TEST_START: /webmcp/imperative/executeTool-unauthorized-origin.https.html
1:20.95 INFO Closing window 30f7de9b-e872-433e-8d9a-ba4af8981d5a
1:22.16 TEST_END: Test OK. Subtests passed 0/1. Unexpected 1
FAIL executeTool() rejects when parent frame attempts unauthorized execution of cross-origin iframe tool - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
1:22.16 TEST_START: /webmcp/imperative/exposedTo-cross-origin-child.https.html
1:22.16 INFO Closing window 758402ef-963b-401b-b2d6-6c724a43caf6
1:22.39 pid:2372 JavaScript error: https://www1.web-platform.test:8443/webmcp/imperative/resources/iframe-register-tool.html, line 123: TypeError: can't access property "addEventListener", document.modelContext is undefined
1:31.58 pid:2372 console.warn: BackupService: "There was an error while trying to get the Document's directory" [Exception... "Component returned failure code: 0x80004005 (NS_ERROR_FAILURE) [nsIProperties.get]" nsresult: "0x80004005 (NS_ERROR_FAILURE)" location: "JS frame :: resource:///modules/backup/BackupService.sys.mjs :: get docsDirFolderPath :: line 1299" data: no]
1:31.58 pid:2372 JavaScript error: resource:///modules/backup/BackupService.sys.mjs, line 4429: NotAllowedError: PathUtils.join: PathUtils does not support empty paths
mem avail: 13671 of 15806 MiB (86.49%), swap free: 0 of 0 MiB ( 0.00%)
1:46.42 pid:2372 console.error: services.settings:
1:46.42 pid:2372 Message: EmptyDatabaseError: "main/nimbus-desktop-experiments" has not been synced yet
1:46.42 pid:2372 Stack:
1:46.43 pid:2372 EmptyDatabaseError@resource://services-settings/Database.sys.mjs:19:5
1:46.43 pid:2372 list@resource://services-settings/Database.sys.mjs:96:13
2:27.34 TEST_END: Test TIMEOUT, expected OK. Subtests passed 0/5. Unexpected 5
FAIL Parent exposes tool to cross-origin child - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"FAIL Cross-origin child exposes tool to parent - promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"FAIL Parent exposes tool to origin that is neither its own nor its iframe's - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"FAIL Iframe exposes tool to origin that is neither its own nor its parent's - promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"TIMEOUT Cross-origin iframe without permissions policy does not receive toolchange event even if exposed to it - Test timed outTIMEOUT /webmcp/imperative/exposedTo-cross-origin-child.https.html
2:27.34 TEST_START: /webmcp/imperative/exposedTo-defaults-cross-origin.https.html
2:27.34 INFO Closing window 9eedac58-ec58-450e-8005-f7c934d2abf7
2:27.65 TEST_END: Test OK. Subtests passed 0/4. Unexpected 4
FAIL Parent tool with no exposedTo array is not visible to cross-origin iframe - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"FAIL Parent tool with empty exposedTo array is not visible to cross-origin iframe - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"FAIL Cross-origin iframe tool with default exposure is not visible to parent - promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"FAIL Cross-origin iframe tool with empty exposedTo array is not visible to parent - promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"
2:27.65 TEST_START: /webmcp/imperative/exposedTo-defaults-same-origin.https.html
2:27.66 INFO Closing window fa320570-1a38-49f0-aa38-98166853b9a1
2:28.04 TEST_END: Test OK. Subtests passed 0/4. Unexpected 4
FAIL Parent tool with missing `exposedTo` array is visible to same-origin iframe - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"FAIL Parent tool with empty `exposedTo` array is visible to same-origin iframe - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"FAIL Same-origin iframe tool with default exposure is visible to parent - promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"FAIL Same-origin iframe tool with empty exposedTo array is visible to parent - promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"
2:28.04 TEST_START: /webmcp/imperative/exposedTo-multiple-children.https.html
2:28.06 INFO Closing window 2cd8f3dd-1317-4bc0-b369-a1aa15630a51
2:28.75 pid:2372 JavaScript error: https://www2.not-web-platform.test:8443/webmcp/imperative/resources/iframe-register-tool.html, line 123: TypeError: can't access property "addEventListener", document.modelContext is undefined
mem avail: 13673 of 15806 MiB (86.51%), swap free: 0 of 0 MiB ( 0.00%)
3:33.59 TEST_END: Test TIMEOUT, expected OK. Subtests passed 0/1. Unexpected 1
TIMEOUT Multi-origin setup with mixed exposure lists - Test timed outTIMEOUT /webmcp/imperative/exposedTo-multiple-children.https.html
3:33.59 TEST_START: /webmcp/imperative/exposedTo-window-open.https.html
3:33.59 INFO Closing window b0f9fff4-ba53-4216-88ce-5b099a8c7e59
3:33.80 TEST_END: Test OK. Subtests passed 0/1. Unexpected 1
FAIL Tools are scoped to a frame tree, and are not exposed across opener boundaries. - promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"
3:33.80 TEST_START: /webmcp/imperative/getTools-filtering.https.html
3:33.81 INFO Closing window f1d7f31a-8dc1-465b-a937-855608a487d3
3:34.05 TEST_END: Test OK. Subtests passed 0/2. Unexpected 2
FAIL getTools() correctly filters returned tools by fromOrigins origins while preserving same-origin tools - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"FAIL getTools() rejects with SecurityError if an insecure origin is supplied in fromOrigins - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
3:34.05 TEST_START: /webmcp/imperative/getTools-imperative-schema.https.html
3:34.05 INFO Closing window b5caa1ae-aeda-4db4-a7e7-96dd12c2f367
3:34.29 TEST_END: Test OK. Subtests passed 0/1. Unexpected 1
FAIL Test that getTools() returns the correct inputSchema for an imperative tool - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"
3:34.29 TEST_START: /webmcp/imperative/register-tool-title.https.html
3:34.30 INFO Closing window 42d29c99-7b12-4397-bcc8-108fcd9b40d2
3:34.57 TEST_END: Test OK. Subtests passed 0/3. Unexpected 3
FAIL Tool title is preserved when provided - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"FAIL Missing tool title in registration is exposed as empty string - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"FAIL Tool title with unpaired surrogate is fixed up by USVString - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"
3:34.57 TEST_START: /webmcp/imperative/unregister-during-executeTool.https.html
3:34.57 INFO Closing window 223ee472-e385-40f0-8c9d-beb950803450
3:34.88 TEST_END: Test OK. Subtests passed 0/2. Unexpected 2
FAIL Pending executeTool() Promise resolves successfully when the target cross-origin tool is unregistered mid-execution - promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"FAIL Pending executeTool() Promise resolves successfully when target same-document tool is unregistered mid-execution - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"
3:34.88 INFO No more tests
3:34.88 pid:2372 1787313162774 Marionette INFO Stopped listening on port 32801
3:35.14 INFO Browser exited with return code 0
3:34.95 INFO Closing logging queue
3:34.95 INFO queue closed
3:35.15 SUITE_END
web-platform-test
~~~~~~~~~~~~~~~~~
Ran 72 checks (46 subtests, 26 tests)
Expected results: 24
Unexpected results: 48
test: 2 (2 timeout)
subtest: 46 (44 fail, 2 timeout)
Error Summary
-------------
/webmcp/declarative/executeTool-abort.https.html
FAIL executeTool signal successfully resets tool pseudo-classes - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
/webmcp/declarative/executeTool-respondWith-circular-object.https.html
FAIL Declarative tool executeTool() rejects when respondWith() receives a circular object - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
/webmcp/declarative/execute_tool_change_event.https.html
FAIL executeTool triggers input and change events - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
/webmcp/declarative/execute_tool_submit_from_js.https.html
FAIL executeTool resolves successfully when submit handler calls form.submit() - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
/webmcp/declarative/form_removal_submit_crash.https.html
FAIL Form removal on submit with respondWith does not crash the renderer - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
/webmcp/declarative/getTools-declarative-schema.https.html
FAIL WebMCP: getTools() retrieves declarative schema at registration time - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
/webmcp/declarative/no-frame-documents.https.html
FAIL Declarative tool in document without active frame is not registered - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
FAIL Declarative tool in DOMParser document is not registered - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
FAIL Declarative tool with name only in document without active frame is not registered - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
FAIL Declarative tool in iframe removed after registration does not crash on attribute modification - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
/webmcp/declarative/opaque-origin-tools.https.html
FAIL An opaque origin document can register but not execute its own declarative tools - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
FAIL executeTool() rejects synchronously for opaque origins - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
/webmcp/declarative/select-multiple-events.https.html
FAIL executeTool() on a <select multiple> dispatches input and change events - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
/webmcp/declarative/toolchange-on-attribute-mutation.https.html
FAIL Test that mutating or removing form attributes (toolname, tooldescription, tooltitle, toolautosubmit) fires toolchange and updates getTools() correctly - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
/webmcp/declarative/toolchange-on-control-add-remove.https.html
FAIL Test that toolchange event fires when controls are added or removed - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
/webmcp/declarative/unregister-during-executeTool.https.html
FAIL Pending executeTool() Promise resolves successfully when target declarative tool is unregistered via DOM removal - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
FAIL Pending executeTool() Promise resolves successfully when target declarative tool is unregistered via attribute removal - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
/webmcp/imperative/executeTool-caller-navigate-abort.https.html
FAIL executeTool() aborts target signal when the invoker document (same-origin) navigates away - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"
FAIL executeTool() aborts target signal when the invoker document (cross-origin) navigates away - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"
/webmcp/imperative/executeTool-signal-cross-origin.https.html
FAIL caller abort in parent document propagates to options.signal in cross-origin iframe tool - promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"
FAIL caller abort in cross-origin iframe propagates to options.signal in parent document tool - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"
/webmcp/imperative/executeTool-target-navigation.https.html
FAIL executeTool() rejects when target document navigates away - promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"
/webmcp/imperative/executeTool-unauthorized-origin.https.html
FAIL executeTool() rejects when parent frame attempts unauthorized execution of cross-origin iframe tool - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
/webmcp/imperative/exposedTo-cross-origin-child.https.html
FAIL Parent exposes tool to cross-origin child - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"
FAIL Cross-origin child exposes tool to parent - promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"
FAIL Parent exposes tool to origin that is neither its own nor its iframe's - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"
FAIL Iframe exposes tool to origin that is neither its own nor its parent's - promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"
TIMEOUT Cross-origin iframe without permissions policy does not receive toolchange event even if exposed to it - Test timed out
TIMEOUT /webmcp/imperative/exposedTo-cross-origin-child.https.html
/webmcp/imperative/exposedTo-defaults-cross-origin.https.html
FAIL Parent tool with no exposedTo array is not visible to cross-origin iframe - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"
FAIL Parent tool with empty exposedTo array is not visible to cross-origin iframe - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"
FAIL Cross-origin iframe tool with default exposure is not visible to parent - promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"
FAIL Cross-origin iframe tool with empty exposedTo array is not visible to parent - promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"
/webmcp/imperative/exposedTo-defaults-same-origin.https.html
FAIL Parent tool with missing `exposedTo` array is visible to same-origin iframe - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"
FAIL Parent tool with empty `exposedTo` array is visible to same-origin iframe - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"
FAIL Same-origin iframe tool with default exposure is visible to parent - promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"
FAIL Same-origin iframe tool with empty exposedTo array is visible to parent - promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"
/webmcp/imperative/exposedTo-multiple-children.https.html
TIMEOUT Multi-origin setup with mixed exposure lists - Test timed out
TIMEOUT /webmcp/imperative/exposedTo-multiple-children.https.html
/webmcp/imperative/exposedTo-window-open.https.html
FAIL Tools are scoped to a frame tree, and are not exposed across opener boundaries. - promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"
/webmcp/imperative/getTools-filtering.https.html
FAIL getTools() correctly filters returned tools by fromOrigins origins while preserving same-origin tools - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"
FAIL getTools() rejects with SecurityError if an insecure origin is supplied in fromOrigins - promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"
/webmcp/imperative/getTools-imperative-schema.https.html
FAIL Test that getTools() returns the correct inputSchema for an imperative tool - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"
/webmcp/imperative/register-tool-title.https.html
FAIL Tool title is preserved when provided - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"
FAIL Missing tool title in registration is exposed as empty string - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"
FAIL Tool title with unpaired surrogate is fixed up by USVString - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"
/webmcp/imperative/unregister-during-executeTool.https.html
FAIL Pending executeTool() Promise resolves successfully when the target cross-origin tool is unregistered mid-execution - promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"
FAIL Pending executeTool() Promise resolves successfully when target same-document tool is unregistered mid-execution - promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"
3:35.15 INFO Got 25 unexpected results, with 0 unexpected passes
3:35.16 wptserve INFO Stopped http server on 127.0.0.1:8000
3:35.16 wptserve INFO Stopped http server on 127.0.0.1:8002
3:35.16 wptserve INFO Stopped http server on 127.0.0.1:8001
3:35.16 wptserve INFO Stopped http server on 127.0.0.1:8003
3:35.17 wptserve INFO Stopped http server on 127.0.0.1:8444
3:35.17 wptserve INFO Stopped http server on 127.0.0.1:8443
3:35.18 wptserve INFO Stopped http server on 127.0.0.1:8445
3:35.19 wptserve INFO Stopped http server on 127.0.0.1:8446
3:35.19 wptserve INFO Stopped http server on 127.0.0.1:9000
3:35.19 wptserve INFO Stopped WebTransport over HTTP/3 server on 127.0.0.1:11000
3:35.52 wptserve INFO Close on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8889))
3:35.54 wptserve INFO Close on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8888))
3:35.58 INFO Removed font: Ahem.ttf
3:35.61 INFO Closing logging queue
3:35.61 INFO queue closed
3:35.61 INFO Tolerating 25 unexpected results
[taskcluster 2026-08-21 11:52:46.773Z] === Task Finished ===
[taskcluster 2026-08-21 11:52:47.943Z] Successful task run with exit code: 0 completed in 298.088 seconds