Skip to content

Revert "[WebMCP] Expose RegisteredTool.inputSchema as an object" - #62111

Merged
chromium-wpt-export-bot merged 1 commit into
masterfrom
chromium-export-dc7edb81a8
Aug 21, 2026
Merged

Revert "[WebMCP] Expose RegisteredTool.inputSchema as an object"#62111
chromium-wpt-export-bot merged 1 commit into
masterfrom
chromium-export-dc7edb81a8

Revert "[WebMCP] Expose RegisteredTool.inputSchema as an object"

06b162d
Select commit
Loading
Failed to load commit list.
Community-TC Integration / wpt-firefox-nightly-results-without-changes succeeded Aug 21, 2026 in 4m 49s

Community-TC (pull_request)

Collect results for all tests affected by a pull request in firefox but without the changes in the PR.

Details

View task in Taskcluster | View logs in Taskcluster | View task group in Taskcluster

Task Status

Started: 2026-08-21T11:47:34.077Z
Resolved: 2026-08-21T11:52:22.858Z
Task Execution Time: 4 minutes, 48 seconds, 781 milliseconds
Task Status: completed
Reason Resolved: completed
TaskId: aM60mFe6Q4ucj02UnSZtxw
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 task_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:34.132Z] Task ID: aM60mFe6Q4ucj02UnSZtxw
[taskcluster 2026-08-21 11:47:34.132Z] Worker ID: 7777762313777808639
[taskcluster 2026-08-21 11:47:34.132Z] Worker Group: us-central1-b
[taskcluster 2026-08-21 11:47:34.132Z] Worker Node Type: projects/757942385826/machineTypes/n2-standard-4
[taskcluster 2026-08-21 11:47:34.132Z] Worker Pool: proj-wpt/ci
[taskcluster 2026-08-21 11:47:34.132Z] Worker Version: 46.1.0
[taskcluster 2026-08-21 11:47:34.132Z] Public IP: 34.135.176.64
[taskcluster 2026-08-21 11:47:34.132Z] Hostname: proj-wpt-ci-ocw3gq8aqdagu-jtmoczwa

[taskcluster 2026-08-21 11:47:35.201Z] === 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:14.09 TEST_START: /webmcp/declarative/getTools-declarative-schema.https.html
 1:14.10 INFO Closing window 6bea8853-3e79-432e-b417-fa53df1b5044
 1:14.28 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:14.28 TEST_START: /webmcp/declarative/no-frame-documents.https.html
 1:14.28 INFO Closing window 23aeee94-7747-4835-b5ab-328ca4c44c0f
 1:14.50 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:14.50 TEST_START: /webmcp/declarative/opaque-origin-tools.https.html
 1:14.50 INFO Closing window 5c38b2f7-596a-4ddd-b061-f9eb3360f9ce
 1:14.75 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:14.75 TEST_START: /webmcp/declarative/select-multiple-events.https.html
 1:14.76 INFO Closing window 369d7d51-71e7-4941-a945-831b223a91a1
 1:14.94 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:14.94 TEST_START: /webmcp/declarative/toolchange-on-attribute-mutation.https.html
 1:14.94 INFO Closing window ae5d93a3-d6e6-4601-b672-724c791c6a9a
 1:15.18 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:15.18 TEST_START: /webmcp/declarative/toolchange-on-control-add-remove.https.html
 1:15.18 INFO Closing window 1940dd12-eba1-42e5-abca-618f538a33e6
 1:15.39 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:15.39 TEST_START: /webmcp/declarative/unregister-during-executeTool.https.html
 1:15.40 INFO Closing window 2b9b1260-45a9-4725-8f96-846c9f54170e
 1:15.59 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:15.59 TEST_START: /webmcp/imperative/executeTool-caller-navigate-abort.https.html
 1:15.60 INFO Closing window ab37e728-1e02-4d7c-beeb-0d4a19b863c2
 1:15.88 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:15.88 TEST_START: /webmcp/imperative/executeTool-signal-cross-origin.https.html
 1:15.88 INFO Closing window 50e02e66-2ea2-4e44-af17-e8d4804bffaa
 1:16.13 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:16.13 TEST_START: /webmcp/imperative/executeTool-target-navigation.https.html
 1:16.14 INFO Closing window daa95827-207c-4365-aac0-d327652f9f4d
 1:16.38 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:16.38 TEST_START: /webmcp/imperative/executeTool-unauthorized-origin.https.html
 1:16.39 INFO Closing window 64085f2e-0bd8-4e5f-a501-bb7bbff337aa
 1:17.61 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:17.61 TEST_START: /webmcp/imperative/exposedTo-cross-origin-child.https.html
 1:17.61 INFO Closing window cfc444da-a776-464c-9e63-eb41d5acbdbf
 1:17.87 pid:2374 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:26.54 pid:2374 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:26.54 pid:2374 JavaScript error: resource:///modules/backup/BackupService.sys.mjs, line 4429: NotAllowedError: PathUtils.join: PathUtils does not support empty paths
 1:40.47 pid:2374 console.error: services.settings:
 1:40.47 pid:2374   Message: EmptyDatabaseError: "main/nimbus-desktop-experiments" has not been synced yet
 1:40.47 pid:2374   Stack:
 1:40.47 pid:2374     EmptyDatabaseError@resource://services-settings/Database.sys.mjs:19:5
 1:40.47 pid:2374 list@resource://services-settings/Database.sys.mjs:96:13
mem avail: 13692 of 15806 MiB (86.63%), swap free:    0 of    0 MiB ( 0.00%)
 2:22.81 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:22.81 TEST_START: /webmcp/imperative/exposedTo-defaults-cross-origin.https.html
 2:22.81 INFO Closing window b91a2d65-0396-47d0-afa6-f636f260c88b
 2:23.08 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:23.08 TEST_START: /webmcp/imperative/exposedTo-defaults-same-origin.https.html
 2:23.09 INFO Closing window df4fd078-f8b9-49ab-9be3-cac0ba7372d4
 2:23.35 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:23.35 TEST_START: /webmcp/imperative/exposedTo-multiple-children.https.html
 2:23.35 INFO Closing window 26ef6edd-1a02-411d-9965-c3b3f9f68d9d
 2:23.77 pid:2374 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: 13697 of 15806 MiB (86.66%), swap free:    0 of    0 MiB ( 0.00%)
 3:28.68 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:28.68 TEST_START: /webmcp/imperative/exposedTo-window-open.https.html
 3:28.68 INFO Closing window a18b2cf2-d8d1-4d76-9ea8-4c1e40f2582d
 3:28.91 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:28.91 TEST_START: /webmcp/imperative/getTools-filtering.https.html
 3:28.91 INFO Closing window ef5ca078-d044-4e41-83ff-a9855ffe3b89
 3:29.17 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:29.17 TEST_START: /webmcp/imperative/getTools-imperative-schema.https.html
 3:29.18 INFO Closing window 0a07fa33-2d5e-41d4-9b97-1f8101a9e58a
 3:29.45 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:29.45 TEST_START: /webmcp/imperative/register-tool-title.https.html
 3:29.46 INFO Closing window a333fbfc-0efc-43a8-8ab0-27f2c1a13a42
 3:29.73 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:29.73 TEST_START: /webmcp/imperative/unregister-during-executeTool.https.html
 3:29.78 INFO Closing window 1323e0b0-3657-4dab-a459-2b8bbd900bce
 3:30.03 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:30.03 INFO No more tests
 3:30.04 pid:2374 1787313136377	Marionette	INFO	Stopped listening on port 49363
 3:30.30 INFO Browser exited with return code 0
 3:30.10 INFO Closing logging queue
 3:30.10 INFO queue closed
 3:30.31 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:30.31 INFO Got 25 unexpected results, with 0 unexpected passes
 3:30.31 wptserve INFO Stopped http server on 127.0.0.1:8002
 3:30.31 wptserve INFO Stopped http server on 127.0.0.1:8001
 3:30.31 wptserve INFO Stopped http server on 127.0.0.1:8000
 3:30.31 wptserve INFO Stopped http server on 127.0.0.1:8003
 3:30.32 wptserve INFO Stopped http server on 127.0.0.1:8443
 3:30.33 wptserve INFO Stopped http server on 127.0.0.1:8444
 3:30.34 wptserve INFO Stopped http server on 127.0.0.1:8445
 3:30.34 wptserve INFO Stopped http server on 127.0.0.1:8446
 3:30.34 wptserve INFO Stopped http server on 127.0.0.1:9000
 3:30.34 wptserve INFO Stopped WebTransport over HTTP/3 server on 127.0.0.1:11000
 3:30.82 wptserve INFO Close on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8888))
 3:30.82 wptserve INFO Close on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8889))
 3:30.87 INFO Removed font: Ahem.ttf
 3:30.90 INFO Closing logging queue
 3:30.90 INFO queue closed
 3:30.90 INFO Tolerating 25 unexpected results
[taskcluster 2026-08-21 11:52:20.274Z] === Task Finished ===
[taskcluster 2026-08-21 11:52:21.660Z] Successful task run with exit code: 0 completed in 287.529 seconds