Revert "[WebMCP] Expose RegisteredTool.inputSchema as an object" - #62111
Community-TC (pull_request)
Verify that all tests affected by a pull request are stable when executed in firefox.
Details
View task in Taskcluster | View logs in Taskcluster | View task group in Taskcluster
Task Status
Started: 2026-08-21T11:48:12.662Z
Resolved: 2026-08-21T12:16:48.921Z
Task Execution Time: 28 minutes, 36 seconds, 259 milliseconds
Task Status: completed
Reason Resolved: completed
TaskId: ERt-ijg1RDOXeP9ljo-xdg
RunId: 0
Artifacts
- public/logs/live_backing.log
- public/logs/live.log
- public/results/checkrun.md
WPT Command: python3 ./wpt run --channel=nightly --verify --verify-no-chaos-mode --verify-repeat-loop=0 --verify-repeat-restart=10 --github-checks-text-file=/home/test/artifacts/checkrun.md --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:48:12.747Z] Task ID: ERt-ijg1RDOXeP9ljo-xdg
[taskcluster 2026-08-21 11:48:12.747Z] Worker ID: 8910632338361517118
[taskcluster 2026-08-21 11:48:12.747Z] Worker Group: us-east4-b
[taskcluster 2026-08-21 11:48:12.747Z] Worker Node Type: projects/757942385826/machineTypes/n2-standard-4
[taskcluster 2026-08-21 11:48:12.747Z] Worker Pool: proj-wpt/ci
[taskcluster 2026-08-21 11:48:12.747Z] Worker Version: 46.1.0
[taskcluster 2026-08-21 11:48:12.747Z] Public IP: 136.107.97.42
[taskcluster 2026-08-21 11:48:12.747Z] Hostname: proj-wpt-ci-lnrxm8ezr-uylrb3adbf5a
b1e71f63927a - Started downloading
66587c81b81a - Started downloading
b1e71f63927a - Downloaded in 0.006 seconds
5b82b858ea7e - Started downloading
08c7e224535e - Started downloading
08c7e224535e - Downloaded in 0.008 seconds
32bbaaf98e4c - Started downloading
66587c81b81a - Downloaded in 0.199 seconds
4f4fb700ef54 - Started downloading
4f4fb700ef54 - Downloaded in 0.001 seconds
dd5257950bd4 - Started downloading
...(5039 lines hidden)...
24:57.21 wptserve INFO Stopped http server on 127.0.0.1:8001
24:57.21 wptserve INFO Stopped http server on 127.0.0.1:8002
24:57.23 wptserve INFO Stopped http server on 127.0.0.1:8003
24:57.23 wptserve INFO Stopped http server on 127.0.0.1:8000
24:57.23 wptserve INFO Stopped http server on 127.0.0.1:8445
24:57.23 wptserve INFO Stopped http server on 127.0.0.1:8443
24:57.23 wptserve INFO Stopped http server on 127.0.0.1:8444
24:57.23 wptserve INFO Stopped http server on 127.0.0.1:8446
24:57.23 wptserve INFO Stopped http server on 127.0.0.1:9000
24:57.23 wptserve INFO Stopped WebTransport over HTTP/3 server on 127.0.0.1:11000
24:57.52 wptserve INFO Close on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8888))
24:57.52 wptserve INFO Close on: (<AddressFamily.AF_INET: 2>, <SocketKind.SOCK_STREAM: 1>, 6, '', ('127.0.0.1', 8889))
24:57.57 INFO Removed font: Ahem.ttf
24:57.59 INFO Closing logging queue
24:57.59 INFO queue closed
24:57.62 INFO ::: Ran 10 of expected 10 iterations.
24:57.62 INFO ## All results ##
24:57.62 INFO ### /webmcp/imperative/cancel-reentrancy-crash.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |---------|---------|----------|
24:57.62 INFO | | PASS | |
24:57.62 INFO
24:57.62 INFO ### /webmcp/declarative/executeTool-abort.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |--------------------------------------------------------------|---------|------------------------------------------------------------------------------------------------------------------------------------------|
24:57.62 INFO | | OK | |
24:57.62 INFO | `executeTool signal successfully resets tool pseudo-classes` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/declarative/executeTool-respondWith-circular-object.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |----------------------------------------------------------------------------------------|---------|------------------------------------------------------------------------------------------------------------------------------------------|
24:57.62 INFO | | OK | |
24:57.62 INFO | `Declarative tool executeTool() rejects when respondWith() receives a circular object` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/declarative/execute_tool_change_event.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |------------------------------------------------|---------|------------------------------------------------------------------------------------------------------------------------------------------|
24:57.62 INFO | | OK | |
24:57.62 INFO | `executeTool triggers input and change events` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/declarative/execute_tool_submit_from_js.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |-----------------------------------------------------------------------------|---------|------------------------------------------------------------------------------------------------------------------------------------------|
24:57.62 INFO | | OK | |
24:57.62 INFO | `executeTool resolves successfully when submit handler calls form.submit()` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/declarative/form_removal_submit_crash.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |-----------------------------------------------------------------------|---------|------------------------------------------------------------------------------------------------------------------------------------------|
24:57.62 INFO | | OK | |
24:57.62 INFO | `Form removal on submit with respondWith does not crash the renderer` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/declarative/getTools-declarative-schema.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |------------------------------------------------------------------------|---------|------------------------------------------------------------------------------------------------------------------------------------------|
24:57.62 INFO | | OK | |
24:57.62 INFO | `WebMCP: getTools() retrieves declarative schema at registration time` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/declarative/no-frame-documents.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |--------------------------------------------------------------------------------------------------|---------|------------------------------------------------------------------------------------------------------------------------------------------|
24:57.62 INFO | | OK | |
24:57.62 INFO | `Declarative tool in document without active frame is not registered` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"` |
24:57.62 INFO | `Declarative tool in DOMParser document is not registered` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"` |
24:57.62 INFO | `Declarative tool with name only in document without active frame is not registered` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"` |
24:57.62 INFO | `Declarative tool in iframe removed after registration does not crash on attribute modification` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/declarative/opaque-origin-tools.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |------------------------------------------------------------------------------------|---------|------------------------------------------------------------------------------------------------------------------------------------------|
24:57.62 INFO | | OK | |
24:57.62 INFO | `An opaque origin document can register but not execute its own declarative tools` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"` |
24:57.62 INFO | `executeTool() rejects synchronously for opaque origins` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/declarative/select-multiple-events.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |---------------------------------------------------------------------------|---------|------------------------------------------------------------------------------------------------------------------------------------------|
24:57.62 INFO | | OK | |
24:57.62 INFO | `executeTool() on a <select multiple> dispatches input and change events` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/declarative/toolchange-on-attribute-mutation.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |-----------------------------------------------------------------------------------------------------------------------------------------------------------|---------|------------------------------------------------------------------------------------------------------------------------------------------|
24:57.62 INFO | | OK | |
24:57.62 INFO | `Test that mutating or removing form attributes (toolname, tooldescription, tooltitle, toolautosubmit) fires toolchange and updates getTools() correctly` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/declarative/toolchange-on-control-add-remove.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |-----------------------------------------------------------------------|---------|------------------------------------------------------------------------------------------------------------------------------------------|
24:57.62 INFO | | OK | |
24:57.62 INFO | `Test that toolchange event fires when controls are added or removed` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/declarative/unregister-during-executeTool.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |--------------------------------------------------------------------------------------------------------------------------|---------|------------------------------------------------------------------------------------------------------------------------------------------|
24:57.62 INFO | | OK | |
24:57.62 INFO | `Pending executeTool() Promise resolves successfully when target declarative tool is unregistered via DOM removal` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"` |
24:57.62 INFO | `Pending executeTool() Promise resolves successfully when target declarative tool is unregistered via attribute removal` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/imperative/executeTool-caller-navigate-abort.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |----------------------------------------------------------------------------------------------|---------|----------------------------------------------------------------------------------------------------------------------------------------------|
24:57.62 INFO | | OK | |
24:57.62 INFO | `executeTool() aborts target signal when the invoker document (same-origin) navigates away` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"` |
24:57.62 INFO | `executeTool() aborts target signal when the invoker document (cross-origin) navigates away` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/imperative/executeTool-signal-cross-origin.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |--------------------------------------------------------------------------------------------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------|
24:57.62 INFO | | OK | |
24:57.62 INFO | `caller abort in parent document propagates to options.signal in cross-origin iframe tool` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"` |
24:57.62 INFO | `caller abort in cross-origin iframe propagates to options.signal in parent document tool` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/imperative/executeTool-target-navigation.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |-------------------------------------------------------------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------|
24:57.62 INFO | | OK | |
24:57.62 INFO | `executeTool() rejects when target document navigates away` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/imperative/executeTool-unauthorized-origin.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |-------------------------------------------------------------------------------------------------------|---------|------------------------------------------------------------------------------------------------------------------------------------------|
24:57.62 INFO | | OK | |
24:57.62 INFO | `executeTool() rejects when parent frame attempts unauthorized execution of cross-origin iframe tool` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/imperative/exposedTo-cross-origin-child.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |----------------------------------------------------------------------------------------------------------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------|
24:57.62 INFO | | TIMEOUT | |
24:57.62 INFO | `Parent exposes tool to cross-origin child` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"` |
24:57.62 INFO | `Cross-origin child exposes tool to parent` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"` |
24:57.62 INFO | `Parent exposes tool to origin that is neither its own nor its iframe's` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"` |
24:57.62 INFO | `Iframe exposes tool to origin that is neither its own nor its parent's` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"` |
24:57.62 INFO | `Cross-origin iframe without permissions policy does not receive toolchange event even if exposed to it` | TIMEOUT | `Test timed out` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/imperative/exposedTo-defaults-cross-origin.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |--------------------------------------------------------------------------------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------|
24:57.62 INFO | | OK | |
24:57.62 INFO | `Parent tool with no exposedTo array is not visible to cross-origin iframe` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"` |
24:57.62 INFO | `Parent tool with empty exposedTo array is not visible to cross-origin iframe` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"` |
24:57.62 INFO | `Cross-origin iframe tool with default exposure is not visible to parent` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"` |
24:57.62 INFO | `Cross-origin iframe tool with empty exposedTo array is not visible to parent` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/imperative/exposedTo-defaults-same-origin.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |-----------------------------------------------------------------------------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------|
24:57.62 INFO | | OK | |
24:57.62 INFO | `Parent tool with missing exposedTo array is visible to same-origin iframe` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"` |
24:57.62 INFO | `Parent tool with empty exposedTo array is visible to same-origin iframe` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"` |
24:57.62 INFO | `Same-origin iframe tool with default exposure is visible to parent` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"` |
24:57.62 INFO | `Same-origin iframe tool with empty exposedTo array is visible to parent` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/imperative/exposedTo-multiple-children.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |------------------------------------------------|---------|------------------|
24:57.62 INFO | | TIMEOUT | |
24:57.62 INFO | `Multi-origin setup with mixed exposure lists` | TIMEOUT | `Test timed out` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/imperative/exposedTo-window-open.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |-----------------------------------------------------------------------------------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------|
24:57.62 INFO | | OK | |
24:57.62 INFO | `Tools are scoped to a frame tree, and are not exposed across opener boundaries.` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/imperative/getTools-filtering.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |---------------------------------------------------------------------------------------------------------|---------|----------------------------------------------------------------------------------------------------------------------------------------------|
24:57.62 INFO | | OK | |
24:57.62 INFO | `getTools() correctly filters returned tools by fromOrigins origins while preserving same-origin tools` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"` |
24:57.62 INFO | `getTools() rejects with SecurityError if an insecure origin is supplied in fromOrigins` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "getTools", document.modelContext is undefined"` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/imperative/getTools-imperative-schema.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |-------------------------------------------------------------------------------|---------|----------------------------------------------------------------------------------------------------------------------------------------------|
24:57.62 INFO | | OK | |
24:57.62 INFO | `Test that getTools() returns the correct inputSchema for an imperative tool` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/imperative/register-tool-title.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.62 INFO |-----------------------------------------------------------------|---------|----------------------------------------------------------------------------------------------------------------------------------------------|
24:57.62 INFO | | OK | |
24:57.62 INFO | `Tool title is preserved when provided` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"` |
24:57.62 INFO | `Missing tool title in registration is exposed as empty string` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"` |
24:57.62 INFO | `Tool title with unpaired surrogate is fixed up by USVString` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"` |
24:57.62 INFO
24:57.62 INFO ### /webmcp/imperative/unregister-during-executeTool.https.html ###
24:57.62 INFO | Subtest | Results | Messages |
24:57.63 INFO |-----------------------------------------------------------------------------------------------------------------------|---------|--------------------------------------------------------------------------------------------------------------------------------------------------|
24:57.63 INFO | | OK | |
24:57.63 INFO | `Pending executeTool() Promise resolves successfully when the target cross-origin tool is unregistered mid-execution` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "addEventListener", document.modelContext is undefined"` |
24:57.63 INFO | `Pending executeTool() Promise resolves successfully when target same-document tool is unregistered mid-execution` | FAIL | `promise_test: Unhandled rejection with value: object "TypeError: can't access property "registerTool", document.modelContext is undefined"` |
24:57.63 INFO
24:57.63 INFO ::: Running tests in a loop with restarts 10 times : PASS
24:57.63 INFO :::
24:57.63 INFO ::: Test verification PASS
24:57.63 INFO :::
[taskcluster 2026-08-21 12:16:47.806Z] === Task Finished ===
[taskcluster 2026-08-21 12:16:48.202Z] Successful task run with exit code: 0 completed in 1715.458 seconds