Files
sousa-gecko/testing/web-platform/tests/webmcp/imperative/initial-about-blank-shared-tool.https.html
T
Dominic Farolino 11893e0338 Bug 2053430 [wpt PR 61137] - WebMCP: Remove the ModelContextTesting API, a=testonly
Automatic update from web-platform-tests
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.js` timing 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: I695ad7479d1b90de3d1edb705e71532e4b160957
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8062045
Reviewed-by: Fr <beaufort.francois@gmail.com>
Reviewed-by: Dave Tapuska <dtapuska@chromium.org>
Commit-Queue: Dominic Farolino <dom@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1658818}

--

wpt-commits: ed76dd926b0ca18aafb188452f9ccf746be8bff4
wpt-pr: 61137
2026-07-12 11:57:32 +00:00

36 lines
1.3 KiB
HTML

<!DOCTYPE html>
<meta charset="utf-8">
<link rel="author" href="mailto:dom@chromium.org">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<body>
<script>
promise_test(async t => {
const iframe = document.createElement('iframe');
iframe.src = '/';
document.body.append(iframe);
// Register a tool with the initial about:blank Document [1].
//
// [1]: https://html.spec.whatwg.org/#is-initial-about:blank.
iframe.contentWindow.document.modelContext.registerTool({
name: "default-tool",
description: "default desc",
execute: async () => "hello"
});
assert_equals(iframe.contentDocument.URL, "about:blank");
let tools = await iframe.contentWindow.document.modelContext.getTools();
assert_equals(tools.length, 1);
assert_equals(tools[0].name, "default-tool");
// Wait for the iframe navigation to complete.
await new Promise(resolve => iframe.onload = resolve);
assert_not_equals(iframe.contentDocument.URL, "about:blank");
// Note that the tool still incorrectly persists, even though we've navigated
// away from the initial about:blank Document.
tools = await iframe.contentWindow.document.modelContext.getTools();
assert_array_equals(tools, []);
}, "tools registered with the initial about:blank Document do not survive navigation");
</script>
</body>