[wpt-sync] Sync PR 61137 - WebMCP: Remove the ModelContextTesting API
Categories
(Testing :: web-platform-tests, task, P4)
Tracking
(firefox154 fixed)
| Tracking | Status | |
|---|---|---|
| firefox154 | --- | fixed |
People
(Reporter: wpt-sync, Unassigned)
References
()
Details
(Whiteboard: [wptsync downstream])
Sync web-platform-tests PR 61137 into mozilla-central (this bug is closed when the sync is complete).
PR: https://github.com/web-platform-tests/wpt/pull/61137
Details from upstream follow.
Dominic Farolino <dom@chromium.org> wrote:
WebMCP: Remove the ModelContextTesting API
This CL removes the ModelContextTesting API. It's a reland of https://crrev.com/c/7895790, which was reverted in
https://crrev.com/c/7959699. The CL was reverted due to the
virtual/webmcp/inspector-protocol/webmcp/log-tool-calls.jstiming out
on overloaded bots.That test originally asserted that the modelContextTesting API could
abort a long-running (10 second!) tool. Since aborting a tool call for
the production modelContext API is still in progress (see
https://crbug.com/481899636), any CL replacing usages of
modelContextTesting with modelContext has to accept that the
long-running tool will run to completion, instead of being aborted
correctly. On particularly busy bots, the 10-second tool could exceed
the bot's timeout window, and fail with a timeout.This CL adjusts the 10-second tool to a 50-ms tool, so that it runs
quickly. This is kind of fudging that particular inspector test, but the
timeout will be reverted back to its long 10-second timeout once
https://crrev.com/c/8025300 lands, implementing tool abort support for
the production modelContext API.R=beaufort.francois@gmail.com, nasko
Bug: 515272366
Change-Id: I695ad7479d1b90de3d1edb705e71532e4b160957Reviewed-on: https://chromium-review.googlesource.com/8062045
WPT-Export-Revision: 5d711a59710e851692d32cbee9ec77ac54457373
| Assignee | ||
Comment 1•8 days ago
|
||
Pushed to try (stability) https://treeherder.mozilla.org/#/jobs?repo=try&revision=ea8298f1980dd5f468bdac1a74c0e4573e220c74
| Assignee | ||
Comment 2•8 days ago
|
||
CI Results
Ran 9 Firefox configurations based on mozilla-central, and Firefox, Chrome, and Safari on GitHub CI
Total 43 tests and 1 subtests
Status Summary
Firefox
OK : 9[GitHub] 37[Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-linux2404-64-debug, Gecko-linux2404-64-opt, Gecko-windows11-32-25h2-debug, Gecko-windows11-32-25h2-opt, Gecko-windows11-64-25h2-debug, Gecko-windows11-64-25h2-opt]
PASS : 6
FAIL : 11[GitHub] 57[Gecko-android-em-14-x86_64-debug-geckoview, Gecko-android-em-14-x86_64-lite-opt-geckoview, Gecko-android-em-14-x86_64-opt-geckoview, Gecko-linux2404-64-debug, Gecko-linux2404-64-opt, Gecko-windows11-32-25h2-debug, Gecko-windows11-32-25h2-opt, Gecko-windows11-64-25h2-debug, Gecko-windows11-64-25h2-opt]
ERROR : 3
NOTRUN: 1
Chrome
OK : 9
PASS : 11
Safari
OK : 9
FAIL : 11
Links
Gecko CI (Treeherder)
GitHub PR Head
GitHub PR Base
Details
New Tests That Don't Pass
- /webmcp/imperative/exposedTo-cross-origin-child.https.html [wpt.fyi]:
SKIP - /webmcp/imperative/exposedTo-multiple-children.https.html [wpt.fyi]:
SKIP - /webmcp/imperative/permissions-policy.https.html [wpt.fyi]:
SKIP - /webmcp/declarative/document-domain-enabled-declarative.https.html [wpt.fyi]
- Declarative tool registration is blocked when document.domain is enabled:
FAIL
- Declarative tool registration is blocked when document.domain is enabled:
- /webmcp/declarative/duplicate-tool-name.https.html [wpt.fyi]:
ERROR- Test that duplicate declarative tools with different descriptions do not crash and only the first is registered:
FAIL - Test that duplicate declarative tools with identical descriptions do not crash and only the first is registered:
NOTRUN
- Test that duplicate declarative tools with different descriptions do not crash and only the first is registered:
- /webmcp/declarative/execute_tool_change_event.https.html [wpt.fyi]
- executeTool triggers input and change events:
FAIL(Chrome:PASS, Safari:FAIL)
- executeTool triggers input and change events:
- /webmcp/declarative/execute_tool_submit_from_js.https.html [wpt.fyi]
- executeTool resolves successfully when submit handler calls form.submit():
FAIL(Chrome:PASS, Safari:FAIL)
- executeTool resolves successfully when submit handler calls form.submit():
- /webmcp/declarative/form_removal_submit_crash.https.html [wpt.fyi]
- Form removal on submit with respondWith does not crash the renderer:
FAIL(Chrome:PASS, Safari:FAIL)
- Form removal on submit with respondWith does not crash the renderer:
- /webmcp/declarative/getTools-declarative-schema.https.html [wpt.fyi]
- Test that getTools() returns the correct inputSchema for a declarative tool:
FAIL
- Test that getTools() returns the correct inputSchema for a declarative tool:
- /webmcp/declarative/select-multiple-events.https.html [wpt.fyi]
- executeTool() on a <select multiple> dispatches input and change events:
FAIL(Chrome:PASS, Safari:FAIL)
- executeTool() on a <select multiple> dispatches input and change events:
- /webmcp/declarative/toolchange-on-attribute-mutation.https.html [wpt.fyi]
- Test that mutating or removing form attributes (toolname, tooldescription, tooltitle, toolautosubmit) fires toolchange and updates getTools() correctly:
FAIL(Chrome:PASS, Safari:FAIL)
- Test that mutating or removing form attributes (toolname, tooldescription, tooltitle, toolautosubmit) fires toolchange and updates getTools() correctly:
- /webmcp/declarative/toolchange-on-control-add-remove.https.html [wpt.fyi]
- Test that toolchange event fires when controls are added or removed:
FAIL(Chrome:PASS, Safari:FAIL)
- Test that toolchange event fires when controls are added or removed:
- /webmcp/declarative/toolchange-on-name-change.https.html [wpt.fyi]
- Test that toolchange event fires on various mutations of form controls:
FAIL
- Test that toolchange event fires on various mutations of form controls:
- /webmcp/imperative/detached-frame-executeTool.https.html [wpt.fyi]:
ERROR- executeTool() throws
InvalidStateErrorin detached frame:FAIL
- executeTool() throws
- /webmcp/imperative/detached-frame-getTools.https.html [wpt.fyi]
- getTools() throws
InvalidStateErrorin detached frame:FAIL
- getTools() throws
- /webmcp/imperative/detached-frame-registerTool.https.html [wpt.fyi]
- Regardless of whether Navigator's modelContext object has been allocatedits getter always returns null after the document has been detached:
FAIL - registerTool() throws
InvalidStateErrorin detached frame:FAIL
- Regardless of whether Navigator's modelContext object has been allocatedits getter always returns null after the document has been detached:
- /webmcp/imperative/document-domain-enabled.https.html [wpt.fyi]
- modelContext.registerTool throws SecurityError when document.domain is enabled:
FAIL - modelContext.getTools rejects with SecurityError when document.domain is enabled:
FAIL - modelContext.executeTool rejects with SecurityError when document.domain is enabled:
FAIL
- modelContext.registerTool throws SecurityError when document.domain is enabled:
- /webmcp/imperative/executeTool-abort.https.html [wpt.fyi]
- executeTool() rejects with AbortError when signal is aborted:
FAIL
- executeTool() rejects with AbortError when signal is aborted:
- /webmcp/imperative/executeTool-across-trees.https.html [wpt.fyi]
- executeTool() rejects when the tool is hosted in another frame tree:
FAIL
- executeTool() rejects when the tool is hosted in another frame tree:
- /webmcp/imperative/executeTool-caller-navigate-abort.https.html [wpt.fyi]
- executeTool() aborts target signal when the invoker document (same-origin) navigates away:
FAIL - executeTool() aborts target signal when the invoker document (cross-origin) navigates away:
FAIL
- executeTool() aborts target signal when the invoker document (same-origin) navigates away:
- /webmcp/imperative/executeTool-invalid-dictionary.https.html [wpt.fyi]
- executeTool() rejects with TypeError when the required 'origin' dictionary member is omitted:
FAIL(Chrome:PASS, Safari:FAIL) - executeTool() rejects with UnknownError for invalid JSON arguments:
FAIL(Chrome:PASS, Safari:FAIL) - executeTool() rejects with UnknownError when a non-existent tool object is supplied:
FAIL(Chrome:PASS, Safari:FAIL)
- executeTool() rejects with TypeError when the required 'origin' dictionary member is omitted:
- /webmcp/imperative/executeTool-target-detachment.https.html [wpt.fyi]
- executeTool() rejects when target frame is detached before execution:
FAIL - executeTool() rejects when target frame is detached mid-execution:
FAIL
- executeTool() rejects when target frame is detached before execution:
- /webmcp/imperative/executeTool-target-navigation.https.html [wpt.fyi]
- executeTool() rejects when target document navigates away:
FAIL
- executeTool() rejects when target document navigates away:
- /webmcp/imperative/executeTool-unauthorized-origin.https.html [wpt.fyi]
- executeTool() rejects when parent frame attempts unauthorized execution of cross-origin iframe tool:
FAIL
- executeTool() rejects when parent frame attempts unauthorized execution of cross-origin iframe tool:
- /webmcp/imperative/exposedTo-defaults-cross-origin.https.html [wpt.fyi]
- Parent tool with no exposedTo array is not visible to cross-origin iframe:
FAIL - Parent tool with empty exposedTo array is not visible to cross-origin iframe:
FAIL - Cross-origin iframe tool with default exposure is not visible to parent:
FAIL - Cross-origin iframe tool with empty exposedTo array is not visible to parent:
FAIL
- Parent tool with no exposedTo array is not visible to cross-origin iframe:
- /webmcp/imperative/exposedTo-defaults-same-origin.https.html [wpt.fyi]
- Parent tool with missing
exposedToarray is visible to same-origin iframe:FAIL - Parent tool with empty
exposedToarray is visible to same-origin iframe:FAIL - Same-origin iframe tool with default exposure is visible to parent:
FAIL - Same-origin iframe tool with empty exposedTo array is visible to parent:
FAIL
- Parent tool with missing
- /webmcp/imperative/exposedTo-invalid-origins.https.html [wpt.fyi]
- registerTool() throws SecurityError for invalid or non-potentially-trustworthy origins in exposedTo:
FAIL - registerTool() does not throw for invalid exposedTo, if aborted signal is passed in:
FAIL
- registerTool() throws SecurityError for invalid or non-potentially-trustworthy origins in exposedTo:
- /webmcp/imperative/exposedTo-window-open.https.html [wpt.fyi]
- Tools are scoped to a frame tree, and are not exposed across opener boundaries.:
FAIL
- Tools are scoped to a frame tree, and are not exposed across opener boundaries.:
- /webmcp/imperative/getTools-filtering.https.html [wpt.fyi]
- getTools() correctly filters returned tools by fromOrigins origins while preserving same-origin tools:
FAIL - getTools() rejects with SecurityError if an insecure origin is supplied in fromOrigins:
FAIL
- getTools() correctly filters returned tools by fromOrigins origins while preserving same-origin tools:
- /webmcp/imperative/getTools-imperative-schema.https.html [wpt.fyi]
- Test that getTools() returns the correct inputSchema for an imperative tool:
FAIL(Chrome:PASS, Safari:FAIL)
- Test that getTools() returns the correct inputSchema for an imperative tool:
- /webmcp/imperative/getTools.https.html [wpt.fyi]
- getTools should return all tools sorted in lexicographical order:
FAIL
- getTools should return all tools sorted in lexicographical order:
- /webmcp/imperative/initial-about-blank-shared-tool.https.html [wpt.fyi]
- tools registered with the initial about:blank Document do not survive navigation:
FAIL(Chrome:PASS, Safari:FAIL)
- tools registered with the initial about:blank Document do not survive navigation:
- /webmcp/imperative/model_context.https.html [wpt.fyi]
- document.modelContext instanceof ModelContext:
FAIL
- document.modelContext instanceof ModelContext:
- /webmcp/imperative/opaque-origin-tools.https.html [wpt.fyi]:
ERROR- An opaque origin document can register but not execute its own tools:
FAIL
- An opaque origin document can register but not execute its own tools:
- /webmcp/imperative/register-tool-title.https.html [wpt.fyi]
- Tool title is preserved when provided:
FAIL - Missing tool title in registration is exposed as empty string:
FAIL - Tool title with unpaired surrogate is fixed up by USVString:
FAIL
- Tool title is preserved when provided:
- /webmcp/imperative/register_tool_name_validation.https.html [wpt.fyi]
- Valid tool names are accepted.:
FAIL - Invalid tool names throw InvalidStateError.:
FAIL
- Valid tool names are accepted.:
- /webmcp/imperative/register_tool_no_schema.https.html [wpt.fyi]
- register tool with only required params:
FAIL
- register tool with only required params:
- /webmcp/imperative/register_tool_with_empty_annotation.https.html [wpt.fyi]
- register tool with empty annotations:
FAIL
- register tool with empty annotations:
- /webmcp/imperative/register_tool_with_schema.https.html [wpt.fyi]
- register and unregister script tool:
FAIL - registerTool succeeds when inputSchema.toJSON() returns 'undefined':
FAIL
- register and unregister script tool:
- /webmcp/imperative/same-origin-iframe-registerTool-regression.https.html [wpt.fyi]
- registerTool() does not throw in connected same-origin iframe navigated away of about:blank:
FAIL
- registerTool() does not throw in connected same-origin iframe navigated away of about:blank:
- /webmcp/imperative/unregister-during-executeTool.https.html [wpt.fyi]
- Pending executeTool() Promise is rejected when the target cross-origin tool is unregistered:
FAIL
- Pending executeTool() Promise is rejected when the target cross-origin tool is unregistered:
Tests Disabled in Gecko Infrastructure
Comment 4•5 days ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/f471fc39764f
https://hg.mozilla.org/mozilla-central/rev/653423f72da5
Description
•