[PromptAPI] Revise tool types for `Tool use` IDL [chromium/src : main]

38 views
Skip to first unread message

Frank Li (Gerrit)

unread,
Jan 9, 2026, 8:36:45 PM (7 days ago) Jan 9
to Mike Wasserman, Jingyun Liu, Sushanth Rajasankar, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org
Attention needed from Jingyun Liu and Mike Wasserman

Frank Li added 1 comment

Patchset-level comments
File-level comment, Patchset 1 (Latest):
Frank Li . resolved

This CL is ready for the review.
Thanks!

Open in Gerrit

Related details

Attention is currently required from:
  • Jingyun Liu
  • Mike Wasserman
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: Ia7b5a70ffa2525197711a5dbabac17904bbe4f8d
Gerrit-Change-Number: 7427977
Gerrit-PatchSet: 1
Gerrit-Owner: Frank Li <fra...@microsoft.com>
Gerrit-Reviewer: Jingyun Liu <jin...@google.com>
Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
Gerrit-CC: Kentaro Hara <har...@chromium.org>
Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
Gerrit-CC: Sushanth Rajasankar <Sush...@microsoft.com>
Gerrit-Attention: Mike Wasserman <m...@chromium.org>
Gerrit-Attention: Jingyun Liu <jin...@google.com>
Gerrit-Comment-Date: Sat, 10 Jan 2026 01:36:35 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Jingyun Liu (Gerrit)

unread,
Jan 12, 2026, 1:16:52 PM (4 days ago) Jan 12
to Frank Li, Chromium LUCI CQ, AyeAye, Mike Wasserman, Sushanth Rajasankar, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org
Attention needed from Frank Li and Mike Wasserman

Jingyun Liu added 2 comments

File third_party/blink/renderer/modules/ai/language_model_create_options.idl
Line 33, Patchset 4 (Latest):enum LanguageModelMessageRole { "system", "user", "assistant" };
Jingyun Liu . unresolved

Maybe I misremembered, but I thought we wanted to add the tool roles to match huggingface API, which uses "assistant" for tool-call, and "tool" for tool-response? (I don't have a strong opinion on this, since ultimately it's up to the model specific impl to convert them into text prompt)

Just a clarifying qq: Without the tool roles, we will always require tool response content in "user" role, and tool call content in "assistant" role, correct?

Line 92, Patchset 4 (Latest):interface LanguageModelToolSuccess {
[CallWith=ExecutionContext, RaisesException] constructor(LanguageModelToolSuccessInit init);
readonly attribute DOMString callID;
readonly attribute DOMString name;
readonly attribute FrozenArray<LanguageModelToolResultContent> result;
};

dictionary LanguageModelToolSuccessInit {
required DOMString callID;
required DOMString name;
required sequence<LanguageModelToolResultContent> result;
};

// Failed tool execution result.
[
Exposed(Window AIPromptAPI, Worker AIPromptAPIForWorkers),
RuntimeEnabled=AIPromptAPI,
SecureContext
]
interface LanguageModelToolError {
[CallWith=ExecutionContext, RaisesException] constructor(LanguageModelToolErrorInit init);
readonly attribute DOMString callID;
readonly attribute DOMString name;
readonly attribute DOMString errorMessage;
};
Jingyun Liu . unresolved

Thank you for discovering and fixing the IDL union issue!

Making ToolCall an interface LG. For ToolResponse, have we considered using a single type to hold the state? e.g:
```
dictionary LanguageModelToolResponse {
required DOMString callID;
required DOMString name;
LanguageModelToolResultStatus status = "success";
  // Populated if status is "success".  If populated when Status is "error" then this field is ignored.
sequence<LanguageModelToolResultContent> result;
  // Populated if status is "error". If populated when Status is "success" then this field is ignored.
DOMString errorMessage;
};

enum LanguageModelToolResultStatus { "success", "error" };
```

Rationale:

  • Semantic Equivalence to the Model: From the perspective of the LLM, a "success" and an "error" are functionally identical: they are both formatted as a "tool response".
  • Simplified Developer Ergonomics: have a single type for constructing tool response and minimize branching logic.

Similar examples in chromium:

Open in Gerrit

Related details

Attention is currently required from:
  • Frank Li
  • Mike Wasserman
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ia7b5a70ffa2525197711a5dbabac17904bbe4f8d
    Gerrit-Change-Number: 7427977
    Gerrit-PatchSet: 4
    Gerrit-Owner: Frank Li <fra...@microsoft.com>
    Gerrit-Reviewer: Frank Li <fra...@microsoft.com>
    Gerrit-Reviewer: Jingyun Liu <jin...@google.com>
    Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
    Gerrit-CC: Kentaro Hara <har...@chromium.org>
    Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
    Gerrit-CC: Sushanth Rajasankar <Sush...@microsoft.com>
    Gerrit-Attention: Mike Wasserman <m...@chromium.org>
    Gerrit-Attention: Frank Li <fra...@microsoft.com>
    Gerrit-Comment-Date: Mon, 12 Jan 2026 18:16:41 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Frank Li (Gerrit)

    unread,
    Jan 12, 2026, 1:57:07 PM (4 days ago) Jan 12
    to Chromium LUCI CQ, AyeAye, Mike Wasserman, Jingyun Liu, Sushanth Rajasankar, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org
    Attention needed from Jingyun Liu and Mike Wasserman

    Frank Li added 2 comments

    File third_party/blink/renderer/modules/ai/language_model_create_options.idl
    Line 33, Patchset 4 (Latest):enum LanguageModelMessageRole { "system", "user", "assistant" };
    Jingyun Liu . resolved

    Maybe I misremembered, but I thought we wanted to add the tool roles to match huggingface API, which uses "assistant" for tool-call, and "tool" for tool-response? (I don't have a strong opinion on this, since ultimately it's up to the model specific impl to convert them into text prompt)

    Just a clarifying qq: Without the tool roles, we will always require tool response content in "user" role, and tool call content in "assistant" role, correct?

    Frank Li

    https://chromium-review.googlesource.com/c/chromium/src/+/7092943/15..18/third_party/blink/renderer/modules/ai/language_model_create_options.idl#b33

    Mike raised the concern (see above link) that existing roles should be sufficient.

    >... require tool response content in "user" role, and tool call content in "assistant" role, correct?

    I think so.

    Frank Li

    I feel like separate them is clearer/concise and type safe (enforced by binding generated code).

    Since we had them separated in the last edit, I thought there was no concern on this.
    @Mike/@Jingyun, please let me know if we need to change.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Jingyun Liu
    • Mike Wasserman
    Gerrit-Attention: Jingyun Liu <jin...@google.com>
    Gerrit-Comment-Date: Mon, 12 Jan 2026 18:56:55 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Jingyun Liu <jin...@google.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Mike Wasserman (Gerrit)

    unread,
    Jan 12, 2026, 8:10:51 PM (4 days ago) Jan 12
    to Frank Li, Chromium LUCI CQ, AyeAye, Jingyun Liu, Sushanth Rajasankar, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org
    Attention needed from Frank Li and Jingyun Liu

    Mike Wasserman voted and added 7 comments

    Votes added by Mike Wasserman

    Code-Review+1

    7 comments

    Patchset-level comments
    File-level comment, Patchset 4 (Latest):
    Mike Wasserman . resolved

    lgtm with mostly minor comments

    File third_party/blink/renderer/modules/ai/language_model_create_options.h
    Line 8, Patchset 4 (Latest):// This header exists to satisfy the bindings generator which expects
    Mike Wasserman . unresolved

    We could split the interfaces into separate idl files, but that shouldn't block this CL.

    File third_party/blink/renderer/modules/ai/language_model_create_options.idl
    Line 74, Patchset 4 (Latest): [CallWith=ExecutionContext, RaisesException] constructor(LanguageModelToolCallInit init);
    Mike Wasserman . unresolved

    Is the context needed? It doesn't seem to be used?

    Mike Wasserman

    One more bit of precedent is OpenAI's Responses API taking an arbitrary string for function responses, which may be "JSON, error codes, plain text, etc.": https://platform.openai.com/docs/guides/function-calling#incorporating-results-into-response

    Relatedly, that API suggests: "If your function has no return value (e.g. send_email), simply return a string that indicates success or failure. (e.g. "success")".

    My natural inclination is also to choose simplicity of a single type.

    Even so, it's fine to proceed with them separated if you have a strong preference for that design.

    File third_party/blink/renderer/modules/ai/language_model_tool_types_test.cc
    Line 49, Patchset 4 (Latest): EXPECT_TRUE(args_value->IsObject());
    Mike Wasserman . unresolved

    optional nit: check the value content if it's easy enough

    Line 72, Patchset 4 (Latest): EXPECT_TRUE(args_value.IsEmpty() || args_value->IsNull());
    Mike Wasserman . unresolved

    nit: Could this more specifically check just `IsNull`?

    Line 104, Patchset 4 (Latest): EXPECT_EQ(tool_success->result()[0]->type().AsString(), "text");
    Mike Wasserman . unresolved

    Is it easy to check the value here too?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Frank Li
    • Jingyun Liu
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: Ia7b5a70ffa2525197711a5dbabac17904bbe4f8d
    Gerrit-Change-Number: 7427977
    Gerrit-PatchSet: 4
    Gerrit-Owner: Frank Li <fra...@microsoft.com>
    Gerrit-Reviewer: Frank Li <fra...@microsoft.com>
    Gerrit-Reviewer: Jingyun Liu <jin...@google.com>
    Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
    Gerrit-CC: Kentaro Hara <har...@chromium.org>
    Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
    Gerrit-CC: Sushanth Rajasankar <Sush...@microsoft.com>
    Gerrit-Attention: Frank Li <fra...@microsoft.com>
    Gerrit-Attention: Jingyun Liu <jin...@google.com>
    Gerrit-Comment-Date: Tue, 13 Jan 2026 01:10:37 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Frank Li <fra...@microsoft.com>
    Comment-In-Reply-To: Jingyun Liu <jin...@google.com>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Frank Li (Gerrit)

    unread,
    Jan 12, 2026, 9:42:43 PM (4 days ago) Jan 12
    to Mike Wasserman, Chromium LUCI CQ, AyeAye, Jingyun Liu, Sushanth Rajasankar, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org
    Attention needed from Jingyun Liu

    Frank Li added 6 comments

    File third_party/blink/renderer/modules/ai/language_model_create_options.h
    Line 8, Patchset 4:// This header exists to satisfy the bindings generator which expects
    Mike Wasserman . resolved

    We could split the interfaces into separate idl files, but that shouldn't block this CL.

    Frank Li

    Acknowledged

    File third_party/blink/renderer/modules/ai/language_model_create_options.idl
    Line 74, Patchset 4: [CallWith=ExecutionContext, RaisesException] constructor(LanguageModelToolCallInit init);
    Mike Wasserman . resolved

    Is the context needed? It doesn't seem to be used?

    Frank Li

    Good catch!
    removed.

    Line 92, Patchset 4:interface LanguageModelToolSuccess {

    [CallWith=ExecutionContext, RaisesException] constructor(LanguageModelToolSuccessInit init);
    readonly attribute DOMString callID;
    readonly attribute DOMString name;
    readonly attribute FrozenArray<LanguageModelToolResultContent> result;
    };

    dictionary LanguageModelToolSuccessInit {
    required DOMString callID;
    required DOMString name;
    required sequence<LanguageModelToolResultContent> result;
    };

    // Failed tool execution result.
    [
    Exposed(Window AIPromptAPI, Worker AIPromptAPIForWorkers),
    RuntimeEnabled=AIPromptAPI,
    SecureContext
    ]
    interface LanguageModelToolError {
    [CallWith=ExecutionContext, RaisesException] constructor(LanguageModelToolErrorInit init);
    readonly attribute DOMString callID;
    readonly attribute DOMString name;
    readonly attribute DOMString errorMessage;
    };
    Jingyun Liu . resolved
    Frank Li

    I am going to stick with explicit types for success and error. Maybe you will change mind (or not) when I post the complete blink layer CL.

    - in renderer process:
    `
    LanguageModelPromptBuilder::ProcessEntry() {
    ...
    // Use binding generated code:
    // - to check if it is 'success' or 'error'
    // - to get the interfaces
    if (content_value->IsLanguageModelToolSuccess()) {
    tool_success = content_value->GetAsLanguageModelToolSuccess();
    ...
    } else if (content_value->IsLanguageModelToolError()) {
    tool_error = content_value->GetAsLanguageModelToolError();
    ...
    }
    ...
    }
    `
    - When we convert it to mojom for browser process to consume internally,
    it will be just a single field type of `mojo_base.mojom.Value tool_response;` in
    AILanguageModelPromptContent as you would like to see.
    File third_party/blink/renderer/modules/ai/language_model_tool_types_test.cc
    Line 49, Patchset 4: EXPECT_TRUE(args_value->IsObject());
    Mike Wasserman . resolved

    optional nit: check the value content if it's easy enough

    Frank Li

    Done

    Line 72, Patchset 4: EXPECT_TRUE(args_value.IsEmpty() || args_value->IsNull());
    Mike Wasserman . resolved

    nit: Could this more specifically check just `IsNull`?

    Frank Li

    Done

    Line 104, Patchset 4: EXPECT_EQ(tool_success->result()[0]->type().AsString(), "text");
    Mike Wasserman . resolved

    Is it easy to check the value here too?

    Frank Li

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Jingyun Liu
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Ia7b5a70ffa2525197711a5dbabac17904bbe4f8d
      Gerrit-Change-Number: 7427977
      Gerrit-PatchSet: 5
      Gerrit-Owner: Frank Li <fra...@microsoft.com>
      Gerrit-Reviewer: Frank Li <fra...@microsoft.com>
      Gerrit-Reviewer: Jingyun Liu <jin...@google.com>
      Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
      Gerrit-CC: Kentaro Hara <har...@chromium.org>
      Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
      Gerrit-CC: Sushanth Rajasankar <Sush...@microsoft.com>
      Gerrit-Attention: Jingyun Liu <jin...@google.com>
      Gerrit-Comment-Date: Tue, 13 Jan 2026 02:42:33 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Mike Wasserman <m...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Jingyun Liu (Gerrit)

      unread,
      Jan 13, 2026, 12:09:45 PM (3 days ago) Jan 13
      to Frank Li, Mike Wasserman, Chromium LUCI CQ, AyeAye, Sushanth Rajasankar, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org
      Attention needed from Frank Li

      Jingyun Liu added 1 comment

      File third_party/blink/renderer/modules/ai/language_model_create_options.idl
      Jingyun Liu

      Thank you for writing out the blink conversion code... The difference is probably smaller than I thought. Let's proceed with your design!

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Frank Li
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Ia7b5a70ffa2525197711a5dbabac17904bbe4f8d
      Gerrit-Change-Number: 7427977
      Gerrit-PatchSet: 5
      Gerrit-Owner: Frank Li <fra...@microsoft.com>
      Gerrit-Reviewer: Frank Li <fra...@microsoft.com>
      Gerrit-Reviewer: Jingyun Liu <jin...@google.com>
      Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
      Gerrit-CC: Kentaro Hara <har...@chromium.org>
      Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
      Gerrit-CC: Sushanth Rajasankar <Sush...@microsoft.com>
      Gerrit-Attention: Frank Li <fra...@microsoft.com>
      Gerrit-Comment-Date: Tue, 13 Jan 2026 17:09:35 +0000
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Frank Li (Gerrit)

      unread,
      Jan 13, 2026, 1:23:18 PM (3 days ago) Jan 13
      to Mike Wasserman, Chromium LUCI CQ, AyeAye, Jingyun Liu, Sushanth Rajasankar, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org
      Attention needed from Jingyun Liu

      Frank Li added 1 comment

      File third_party/blink/renderer/modules/ai/language_model_create_options.idl
      Frank Li

      Thanks @Jingyun for the CR and discussions.
      I am trying to satisfy the "Review-Enforcement" for this CL.
      It worked last time with @Mike's +1 but not this time.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Jingyun Liu
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Ia7b5a70ffa2525197711a5dbabac17904bbe4f8d
      Gerrit-Change-Number: 7427977
      Gerrit-PatchSet: 5
      Gerrit-Owner: Frank Li <fra...@microsoft.com>
      Gerrit-Reviewer: Frank Li <fra...@microsoft.com>
      Gerrit-Reviewer: Jingyun Liu <jin...@google.com>
      Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
      Gerrit-CC: Kentaro Hara <har...@chromium.org>
      Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
      Gerrit-CC: Sushanth Rajasankar <Sush...@microsoft.com>
      Gerrit-Attention: Jingyun Liu <jin...@google.com>
      Gerrit-Comment-Date: Tue, 13 Jan 2026 18:22:03 +0000
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Frank Li (Gerrit)

      unread,
      Jan 13, 2026, 1:32:16 PM (3 days ago) Jan 13
      to Steven Holte, Mike Wasserman, Chromium LUCI CQ, AyeAye, Jingyun Liu, Sushanth Rajasankar, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org
      Attention needed from Jingyun Liu and Steven Holte

      Frank Li added 1 comment

      Patchset-level comments
      File-level comment, Patchset 5 (Latest):
      Frank Li . resolved

      +@Steven to help me to get pass the "Review-Enforcement" due to re-auth issue in Microsoft workflow.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Jingyun Liu
      • Steven Holte
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Ia7b5a70ffa2525197711a5dbabac17904bbe4f8d
      Gerrit-Change-Number: 7427977
      Gerrit-PatchSet: 5
      Gerrit-Owner: Frank Li <fra...@microsoft.com>
      Gerrit-Reviewer: Frank Li <fra...@microsoft.com>
      Gerrit-Reviewer: Jingyun Liu <jin...@google.com>
      Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
      Gerrit-Reviewer: Steven Holte <ho...@chromium.org>
      Gerrit-CC: Kentaro Hara <har...@chromium.org>
      Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
      Gerrit-CC: Sushanth Rajasankar <Sush...@microsoft.com>
      Gerrit-Attention: Steven Holte <ho...@chromium.org>
      Gerrit-Attention: Jingyun Liu <jin...@google.com>
      Gerrit-Comment-Date: Tue, 13 Jan 2026 18:32:05 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Frank Li (Gerrit)

      unread,
      Jan 13, 2026, 1:58:14 PM (3 days ago) Jan 13
      to Steven Holte, Mike Wasserman, Chromium LUCI CQ, AyeAye, Jingyun Liu, Sushanth Rajasankar, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org
      Attention needed from Jingyun Liu and Steven Holte

      Frank Li voted Code-Review+1

      Code-Review+1
      Gerrit-Comment-Date: Tue, 13 Jan 2026 18:58:03 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Mike Wasserman (Gerrit)

      unread,
      Jan 13, 2026, 2:15:36 PM (3 days ago) Jan 13
      to Frank Li, Steven Holte, Chromium LUCI CQ, AyeAye, Jingyun Liu, Sushanth Rajasankar, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org
      Attention needed from Frank Li, Jingyun Liu and Steven Holte

      Mike Wasserman voted and added 1 comment

      Votes added by Mike Wasserman

      Code-Review+1

      1 comment

      Patchset-level comments
      Frank Li . resolved

      +@Steven to help me to get pass the "Review-Enforcement" due to re-auth issue in Microsoft workflow.

      Mike Wasserman

      Is the ReAuth issue something we can raise with Chromium's infra team?

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Frank Li
      • Jingyun Liu
      • Steven Holte
      Gerrit-Attention: Frank Li <fra...@microsoft.com>
      Gerrit-Attention: Jingyun Liu <jin...@google.com>
      Gerrit-Comment-Date: Tue, 13 Jan 2026 19:15:23 +0000
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Frank Li (Gerrit)

      unread,
      Jan 13, 2026, 2:24:22 PM (3 days ago) Jan 13
      to Evan Stade, Steven Holte, Mike Wasserman, Chromium LUCI CQ, AyeAye, Jingyun Liu, Sushanth Rajasankar, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org
      Attention needed from Jingyun Liu and Steven Holte

      Frank Li added 1 comment

      Patchset-level comments
      Frank Li . resolved

      Cc:
      + Evan Stade (evan...@microsoft.com) who had indicated a conversation with Google infra wrt re-auth. I think the plan is for Microsoft contributors to continue to use LUCI_BYPASS_REAUTH=1

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Jingyun Liu
      • Steven Holte
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedReview-Enforcement
      Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
      Gerrit-MessageType: comment
      Gerrit-Project: chromium/src
      Gerrit-Branch: main
      Gerrit-Change-Id: Ia7b5a70ffa2525197711a5dbabac17904bbe4f8d
      Gerrit-Change-Number: 7427977
      Gerrit-PatchSet: 5
      Gerrit-Owner: Frank Li <fra...@microsoft.com>
      Gerrit-Reviewer: Frank Li <fra...@microsoft.com>
      Gerrit-Reviewer: Jingyun Liu <jin...@google.com>
      Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
      Gerrit-Reviewer: Steven Holte <ho...@chromium.org>
      Gerrit-CC: Evan Stade <evan...@microsoft.com>
      Gerrit-CC: Kentaro Hara <har...@chromium.org>
      Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
      Gerrit-CC: Sushanth Rajasankar <Sush...@microsoft.com>
      Gerrit-Attention: Steven Holte <ho...@chromium.org>
      Gerrit-Attention: Jingyun Liu <jin...@google.com>
      Gerrit-Comment-Date: Tue, 13 Jan 2026 19:24:11 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Sushanth Rajasankar (Gerrit)

      unread,
      Jan 13, 2026, 2:36:28 PM (3 days ago) Jan 13
      to Frank Li, Evan Stade, Steven Holte, Mike Wasserman, Chromium LUCI CQ, AyeAye, Jingyun Liu, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org
      Attention needed from Frank Li, Jingyun Liu and Steven Holte

      Sushanth Rajasankar voted Code-Review+1

      Code-Review+1
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Frank Li
      • Jingyun Liu
      • Steven Holte
      Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: Ia7b5a70ffa2525197711a5dbabac17904bbe4f8d
        Gerrit-Change-Number: 7427977
        Gerrit-PatchSet: 5
        Gerrit-Owner: Frank Li <fra...@microsoft.com>
        Gerrit-Reviewer: Frank Li <fra...@microsoft.com>
        Gerrit-Reviewer: Jingyun Liu <jin...@google.com>
        Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
        Gerrit-Reviewer: Steven Holte <ho...@chromium.org>
        Gerrit-Reviewer: Sushanth Rajasankar <Sush...@microsoft.com>
        Gerrit-CC: Evan Stade <evan...@microsoft.com>
        Gerrit-CC: Kentaro Hara <har...@chromium.org>
        Gerrit-CC: Raphael Kubo da Costa <ku...@igalia.com>
        Gerrit-Attention: Steven Holte <ho...@chromium.org>
        Gerrit-Attention: Frank Li <fra...@microsoft.com>
        Gerrit-Attention: Jingyun Liu <jin...@google.com>
        Gerrit-Comment-Date: Tue, 13 Jan 2026 19:36:19 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        open
        diffy

        Sushanth Rajasankar (Gerrit)

        unread,
        Jan 13, 2026, 2:37:35 PM (3 days ago) Jan 13
        to Frank Li, Evan Stade, Steven Holte, Mike Wasserman, Chromium LUCI CQ, AyeAye, Jingyun Liu, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org
        Attention needed from Frank Li, Jingyun Liu and Steven Holte

        Sushanth Rajasankar voted Commit-Queue+2

        Commit-Queue+2
        Gerrit-Comment-Date: Tue, 13 Jan 2026 19:37:23 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        open
        diffy

        Chromium LUCI CQ (Gerrit)

        unread,
        Jan 13, 2026, 2:52:59 PM (3 days ago) Jan 13
        to Frank Li, Sushanth Rajasankar, Evan Stade, Steven Holte, Mike Wasserman, AyeAye, Jingyun Liu, chromium...@chromium.org, Kentaro Hara, Raphael Kubo da Costa, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org

        Chromium LUCI CQ submitted the change

        Change information

        Commit message:
        [PromptAPI] Revise tool types for `Tool use` IDL

        - Convert LanguageModelToolCall, LanguageModelToolSuccess, and
        LanguageModelToolError from dictionaries to ScriptWrappable
        interfaces to enable proper union type discrimination in the Prompt API.

        - Remove `tool-call` and `tool-response` from LanguageModelMessageRole
        per previous comment that `user` and `assistant` roles are sufficient.
        LanguageModelMessageType enum values of `tool-call` and `tool-response`
        can be used to represent the message content types.

        Test: blink_unittests --gtest_filter="LanguageModelToolTypeTest.*"

        NO_IFTTT=It is not added by this CL.
        Bug: 422803232
        Change-Id: Ia7b5a70ffa2525197711a5dbabac17904bbe4f8d
        Reviewed-by: Sushanth Rajasankar <Sush...@microsoft.com>
        Commit-Queue: Sushanth Rajasankar <Sush...@microsoft.com>
        Reviewed-by: Frank Li <fra...@microsoft.com>
        Reviewed-by: Mike Wasserman <m...@chromium.org>
        Cr-Commit-Position: refs/heads/main@{#1568603}
        Files:
        • M third_party/blink/renderer/bindings/generated_in_modules.gni
        • M third_party/blink/renderer/modules/BUILD.gn
        • M third_party/blink/renderer/modules/ai/BUILD.gn
        • M third_party/blink/renderer/modules/ai/language_model.cc
        • A third_party/blink/renderer/modules/ai/language_model_create_options.h
        • M third_party/blink/renderer/modules/ai/language_model_create_options.idl
        • A third_party/blink/renderer/modules/ai/language_model_tool_call.cc
        • A third_party/blink/renderer/modules/ai/language_model_tool_call.h
        • A third_party/blink/renderer/modules/ai/language_model_tool_error.cc
        • A third_party/blink/renderer/modules/ai/language_model_tool_error.h
        • A third_party/blink/renderer/modules/ai/language_model_tool_success.cc
        • A third_party/blink/renderer/modules/ai/language_model_tool_success.h
        • A third_party/blink/renderer/modules/ai/language_model_tool_types_test.cc
        • M third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
        Change size: L
        Delta: 14 files changed, 534 insertions(+), 17 deletions(-)
        Branch: refs/heads/main
        Submit Requirements:
        • requirement satisfiedCode-Review: +1 by Sushanth Rajasankar, +1 by Frank Li, +1 by Mike Wasserman
        Open in Gerrit
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: merged
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: Ia7b5a70ffa2525197711a5dbabac17904bbe4f8d
        Gerrit-Change-Number: 7427977
        Gerrit-PatchSet: 6
        Gerrit-Owner: Frank Li <fra...@microsoft.com>
        Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
        Gerrit-Reviewer: Frank Li <fra...@microsoft.com>
        Gerrit-Reviewer: Jingyun Liu <jin...@google.com>
        Gerrit-Reviewer: Mike Wasserman <m...@chromium.org>
        Gerrit-Reviewer: Steven Holte <ho...@chromium.org>
        Gerrit-Reviewer: Sushanth Rajasankar <Sush...@microsoft.com>
        open
        diffy
        satisfied_requirement
        Reply all
        Reply to author
        Forward
        0 new messages