Uh oh!
There was an error while loading. Please reload this page.
Spec the executeTool() API - #226
Conversation
This CL introduces the `executeTool()` method to the `ModelContext` interface in the WebMCP specification. This aligns the spec with the C++ implementation in Blink. Key changes: - Adds `executeTool()` and `ExecuteToolOptions` IDL definitions. - Specifies the `executeTool()` algorithm, detailing cross-document tool lookup, origin visibility checks, and asynchronous invocation in the target document`s realm. - Clarifies the execution callback arguments and JSON serialization. - Incorporates `AbortSignal` handling for tool cancellation, dispatching a `toolcancel` event in the target document. - Fires `toolactivated` event in the target document. - Updates IDL member access syntax to use idiomatic Bikeshed style. Small things Fix some things Don't serialize Object argument enforcement Add AbortSignal issue Small things
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
beaufortfrancois
left a comment
There was a problem hiding this comment.
We should update README as well: https://github.com/webmachinelearning/webmcp#discovering-and-running-tools
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
See https://crrev.com/c/8121241/comment/a263bec5_46b078a4/ and webmachinelearning/webmcp#226 (comment). With both Mason *and* François in agreement about this, we should migrate from DataError => NotSupportedError. R=masonf Bug: 489045948,536063275 Change-Id: I9e5fc78b082de179c016f8a16dc052744ee28513
See https://crrev.com/c/8121241/comment/a263bec5_46b078a4/ and webmachinelearning/webmcp#226 (comment). With both Mason *and* François in agreement about this, we should migrate from DataError => NotSupportedError. R=masonf Bug: 489045948,536063275 Change-Id: I9e5fc78b082de179c016f8a16dc052744ee28513 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8155899 Reviewed-by: Mason Freed <masonf@chromium.org> Commit-Queue: Dominic Farolino <dom@chromium.org> Cr-Commit-Position: refs/heads/main@{#1669154}
See https://crrev.com/c/8121241/comment/a263bec5_46b078a4/ and webmachinelearning/webmcp#226 (comment). With both Mason *and* François in agreement about this, we should migrate from DataError => NotSupportedError. R=masonf Bug: 489045948,536063275 Change-Id: I9e5fc78b082de179c016f8a16dc052744ee28513 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8155899 Reviewed-by: Mason Freed <masonf@chromium.org> Commit-Queue: Dominic Farolino <dom@chromium.org> Cr-Commit-Position: refs/heads/main@{#1669154}
See https://crrev.com/c/8121241/comment/a263bec5_46b078a4/ and webmachinelearning/webmcp#226 (comment). With both Mason *and* François in agreement about this, we should migrate from DataError => NotSupportedError. R=masonf Bug: 489045948,536063275 Change-Id: I9e5fc78b082de179c016f8a16dc052744ee28513 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8155899 Reviewed-by: Mason Freed <masonf@chromium.org> Commit-Queue: Dominic Farolino <dom@chromium.org> Cr-Commit-Position: refs/heads/main@{#1669154}
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
…SupportedError", a=testonly Automatic update from web-platform-tests WebMCP: Reject invalid origins with "NotSupportedError" See https://crrev.com/c/8121241/comment/a263bec5_46b078a4/ and webmachinelearning/webmcp#226 (comment). With both Mason *and* François in agreement about this, we should migrate from DataError => NotSupportedError. R=masonf Bug: 489045948,536063275 Change-Id: I9e5fc78b082de179c016f8a16dc052744ee28513 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8155899 Reviewed-by: Mason Freed <masonf@chromium.org> Commit-Queue: Dominic Farolino <dom@chromium.org> Cr-Commit-Position: refs/heads/main@{#1669154} -- wpt-commits: bcbf3234805101c41303f35a874913fc70b2d966 wpt-pr: 61564
domfarolino
commented
Aug 13, 2026
FYI most of the reviews for this PR happened while in draft mode, graciously by @beaufortfrancois. So I think everything is all addressed and ready to merge here, including the documentation changes in the explainer. (Note that related to this, Chromium recently got support for tools that keep executing after unregistration. The spec change for this will come after this PR, addressing #218.) |
Uh oh!
There was an error while loading. Please reload this page.
This PR specifies the
executeTool()API onModelContext.Closes#57.
Closes#117.
Closes#159.
Closes#160.
This PR also introduces the
AbortSignalmember toModelContextExecuteToolOptions, but it is not wired up to actually abort the tool owner's callback yet. That will be handled in a follow-up PR towards fixing #48.Preview | Diff