Skip to content

Change executeTool() inputObject type from object to any - #251

Merged
domfarolino merged 4 commits into
webmachinelearning:mainfrom
beaufortfrancois:any-inputObject
Sep 10, 2026
Merged

Change executeTool() inputObject type from object to any#251
domfarolino merged 4 commits into
webmachinelearning:mainfrom
beaufortfrancois:any-inputObject

Conversation

@beaufortfrancois

@beaufortfrancois beaufortfrancois commented Aug 20, 2026

Copy link
Copy Markdown
Collaborator

Following Blink IDL bindings folks feedback in https://chromium-review.googlesource.com/c/chromium/src/+/8250826, we're changing executeTool() inputObject type from object to any with special handling after #246.


Preview | Diff

@beaufortfrancois

Copy link
Copy Markdown
Collaborator Author

@domfarolino If that looks good to you, I'll merge https://chromium-review.googlesource.com/c/chromium/src/+/8250826

Comment thread index.bs
Comment thread index.bs Outdated
Comment thread index.bs Outdated
emecii added a commit to emecii/webmcp that referenced this pull request Sep 6, 2026
Two normative defects in algorithms that were introduced or partially
fixed by earlier changes.

`imperative execute steps` reads "If |inputObject| [=Object type|is not
an Object=] is false", which inverts the intended condition: an Object
input fails and a JSON scalar passes. The trailing "is false" is a
leftover; PR webmachinelearning#251 writes the same construct without it.

`notify documents of a tool change` and `getTools()` read HTML's
[=Document/inclusive descendant navigables=] off a traversable navigable.
HTML defines that operation for a Document (data-dfn-for=Document) and
its own callers route through the traversable's active document. This
completes the fix started in webmachinelearning#244, which corrected the same line from
"descendant navigables" to "inclusive descendant navigables" but left
the receiver wrong. `perform an observation` already does this
correctly.
@beaufortfrancois

Copy link
Copy Markdown
Collaborator Author

@domfarolino I've updated this PR based on the latest patchset uploaded in https://chromium-review.googlesource.com/c/chromium/src/+/8250826

Comment thread index.bs Outdated
@domfarolino
domfarolino merged commit 97da8f5 into webmachinelearning:main Sep 10, 2026
2 checks passed
github-actions Bot added a commit that referenced this pull request Sep 10, 2026
SHA: 97da8f5
Reason: push, by domfarolino

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Sep 10, 2026
This CL updates ModelContext.executeTool() to accept an optional `any
inputObject` parameter instead of `DOMString inputArguments`,
aligning with the latest WebMCP specification changes.

The input object is validated and serialized to a JSON string in Blink
before being passed over Mojo IPC to the target tool execution context.
Any serialization errors (e.g. circular structures, non-serializable
types, or toJSON returning undefined) reject the returned promise with a
TypeError.

Spec PRs:
webmachinelearning/webmcp#246
webmachinelearning/webmcp#251

Bug: 489045948
Change-Id: I95cc00e20a84134cf5f289e689441587200555f0
beckysiegel pushed a commit to chromium/chromium that referenced this pull request Sep 10, 2026
This CL updates ModelContext.executeTool() to accept an optional `any
inputObject` parameter instead of `DOMString inputArguments`,
aligning with the latest WebMCP specification changes.

The input object is validated and serialized to a JSON string in Blink
before being passed over Mojo IPC to the target tool execution context.
Any serialization errors (e.g. circular structures, non-serializable
types, or toJSON returning undefined) reject the returned promise with a
TypeError.

Spec PRs:
webmachinelearning/webmcp#246
webmachinelearning/webmcp#251

Bug: 489045948
Change-Id: I95cc00e20a84134cf5f289e689441587200555f0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8250826
Reviewed-by: Dominic Farolino <dom@chromium.org>
Commit-Queue: Fr <beaufort.francois@gmail.com>
Cr-Commit-Position: refs/heads/main@{#1695589}
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Sep 10, 2026
This CL updates ModelContext.executeTool() to accept an optional `any
inputObject` parameter instead of `DOMString inputArguments`,
aligning with the latest WebMCP specification changes.

The input object is validated and serialized to a JSON string in Blink
before being passed over Mojo IPC to the target tool execution context.
Any serialization errors (e.g. circular structures, non-serializable
types, or toJSON returning undefined) reject the returned promise with a
TypeError.

Spec PRs:
webmachinelearning/webmcp#246
webmachinelearning/webmcp#251

Bug: 489045948
Change-Id: I95cc00e20a84134cf5f289e689441587200555f0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8250826
Reviewed-by: Dominic Farolino <dom@chromium.org>
Commit-Queue: Fr <beaufort.francois@gmail.com>
Cr-Commit-Position: refs/heads/main@{#1695589}
chromium-wpt-export-bot pushed a commit to web-platform-tests/wpt that referenced this pull request Sep 11, 2026
This CL updates ModelContext.executeTool() to accept an optional `any
inputObject` parameter instead of `DOMString inputArguments`,
aligning with the latest WebMCP specification changes.

The input object is validated and serialized to a JSON string in Blink
before being passed over Mojo IPC to the target tool execution context.
Any serialization errors (e.g. circular structures, non-serializable
types, or toJSON returning undefined) reject the returned promise with a
TypeError.

Spec PRs:
webmachinelearning/webmcp#246
webmachinelearning/webmcp#251

Bug: 489045948
Change-Id: I95cc00e20a84134cf5f289e689441587200555f0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/8250826
Reviewed-by: Dominic Farolino <dom@chromium.org>
Commit-Queue: Fr <beaufort.francois@gmail.com>
Cr-Commit-Position: refs/heads/main@{#1695589}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants