Add a browser-side WebMCP.invokeTool handler in //content [chromium/src : main]

1 view
Skip to first unread message

Philip Pfaffe (Gerrit)

unread,
May 8, 2026, 3:21:05 AMMay 8
to Alex Rudenko, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
Attention needed from Alex Rudenko

Philip Pfaffe added 1 comment

File content/browser/devtools/protocol/webmcp_handler.cc
Line 66, Patchset 2 (Latest): FrameTreeNode* frame_tree_node =
Alex Rudenko . unresolved

could this cross the CDP target boundary and reach an OOPIF?

Philip Pfaffe

I suppose so. Would you expect that to be problematic? We'd call a tool in the wrong frame, assuming that new frame declares a tool by that name and schema. Same for same-process frames though.

Open in Gerrit

Related details

Attention is currently required from:
  • Alex Rudenko
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: Ic50b950cc6dc49534993c6af223232af7405b08e
Gerrit-Change-Number: 7827877
Gerrit-PatchSet: 2
Gerrit-Owner: Philip Pfaffe <pfa...@chromium.org>
Gerrit-Reviewer: Alex Rudenko <alexr...@chromium.org>
Gerrit-Reviewer: Philip Pfaffe <pfa...@chromium.org>
Gerrit-Attention: Alex Rudenko <alexr...@chromium.org>
Gerrit-Comment-Date: Fri, 08 May 2026 07:20:40 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Alex Rudenko <alexr...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Alex Rudenko (Gerrit)

unread,
May 8, 2026, 3:24:24 AMMay 8
to Philip Pfaffe, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
Attention needed from Philip Pfaffe

Alex Rudenko added 1 comment

File content/browser/devtools/protocol/webmcp_handler.cc
Line 34, Patchset 2 (Latest): WebContentsObserver::Observe(host_ ? WebContents::FromRenderFrameHost(host_)
Alex Rudenko . unresolved

Could we observe/unobserve in enable/disable?

Open in Gerrit

Related details

Attention is currently required from:
  • Philip Pfaffe
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: Ic50b950cc6dc49534993c6af223232af7405b08e
Gerrit-Change-Number: 7827877
Gerrit-PatchSet: 2
Gerrit-Owner: Philip Pfaffe <pfa...@chromium.org>
Gerrit-Reviewer: Alex Rudenko <alexr...@chromium.org>
Gerrit-Reviewer: Philip Pfaffe <pfa...@chromium.org>
Gerrit-Attention: Philip Pfaffe <pfa...@chromium.org>
Gerrit-Comment-Date: Fri, 08 May 2026 07:24:05 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Philip Pfaffe (Gerrit)

unread,
May 11, 2026, 3:09:29 AM (14 days ago) May 11
to Alex Rudenko, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
Attention needed from Alex Rudenko

Philip Pfaffe added 5 comments

File content/browser/devtools/devtools_session.h
Line 254, Patchset 2: std::is_same<T, protocol::WebMCPHandler>,
Alex Rudenko . resolved

is it listed two times here?

Philip Pfaffe

Done

Line 254, Patchset 2: std::is_same<T, protocol::WebMCPHandler>,
Alex Rudenko . resolved

is it listed two times here?

Philip Pfaffe

Done

File content/browser/devtools/protocol/webmcp_handler.cc
Line 34, Patchset 2: WebContentsObserver::Observe(host_ ? WebContents::FromRenderFrameHost(host_)
Alex Rudenko . resolved

Could we observe/unobserve in enable/disable?

Philip Pfaffe

Done

Line 34, Patchset 2: WebContentsObserver::Observe(host_ ? WebContents::FromRenderFrameHost(host_)
Alex Rudenko . resolved

Could we observe/unobserve in enable/disable?

Philip Pfaffe

Done

File third_party/blink/public/mojom/frame/frame.mojom
Line 1088, Patchset 2: // Invokes a tool in the frame. Returns true if the tool was found and
Alex Rudenko . resolved
```suggestion
// Invokes a WebMCP tool in the frame. Returns true if the tool was found and
```
Philip Pfaffe

I think the name WebMCP isn't really used in the codebase, I'm calling it Script Tool now.

Open in Gerrit

Related details

Attention is currently required from:
  • Alex Rudenko
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: Ic50b950cc6dc49534993c6af223232af7405b08e
Gerrit-Change-Number: 7827877
Gerrit-PatchSet: 2
Gerrit-Owner: Philip Pfaffe <pfa...@chromium.org>
Gerrit-Reviewer: Alex Rudenko <alexr...@chromium.org>
Gerrit-Reviewer: Philip Pfaffe <pfa...@chromium.org>
Gerrit-Attention: Alex Rudenko <alexr...@chromium.org>
Gerrit-Comment-Date: Mon, 11 May 2026 07:09:13 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Alex Rudenko <alexr...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Alex Rudenko (Gerrit)

unread,
May 11, 2026, 3:14:26 AM (14 days ago) May 11
to Philip Pfaffe, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
Attention needed from Philip Pfaffe

Alex Rudenko added 1 comment

File content/browser/devtools/protocol/webmcp_handler.cc
Line 66, Patchset 2: FrameTreeNode* frame_tree_node =
Alex Rudenko . unresolved

could this cross the CDP target boundary and reach an OOPIF?

Philip Pfaffe

I suppose so. Would you expect that to be problematic? We'd call a tool in the wrong frame, assuming that new frame declares a tool by that name and schema. Same for same-process frames though.

Alex Rudenko

It would be problematic in extensions for instance where connecting to an OOPIF might not be allowed. Can we ensure that the frame_id belongs to the current CDP target?

Open in Gerrit

Related details

Attention is currently required from:
  • Philip Pfaffe
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: Ic50b950cc6dc49534993c6af223232af7405b08e
Gerrit-Change-Number: 7827877
Gerrit-PatchSet: 3
Gerrit-Owner: Philip Pfaffe <pfa...@chromium.org>
Gerrit-Reviewer: Alex Rudenko <alexr...@chromium.org>
Gerrit-Reviewer: Philip Pfaffe <pfa...@chromium.org>
Gerrit-Attention: Philip Pfaffe <pfa...@chromium.org>
Gerrit-Comment-Date: Mon, 11 May 2026 07:14:07 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Philip Pfaffe <pfa...@chromium.org>
Comment-In-Reply-To: Alex Rudenko <alexr...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Alex Rudenko (Gerrit)

unread,
May 11, 2026, 3:19:18 AM (14 days ago) May 11
to Philip Pfaffe, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
Attention needed from Philip Pfaffe

Alex Rudenko added 1 comment

File content/browser/devtools/protocol/webmcp_handler.cc
Line 84, Patchset 3 (Latest): base::JSONWriter::Write(*input, &input_arguments);
Alex Rudenko . unresolved

Does this work? I think the protocol types are usually (always? compatible with base types but I think the AI suggestion might be good?

AI-suggested:

`input` is of type `std::unique_ptr<protocol::DictionaryValue>` (which is based on `crdtp`), not a `base::Value`. Passing it to `base::JSONWriter::Write` will cause a compilation error.

You should either convert it to a `base::Value` first, or serialize it using `crdtp::json` similar to how it was done in the Blink implementation:
```cpp
std::vector<uint8_t> cbor;
input->AppendSerialized(&cbor);
crdtp::json::ConvertCBORToJSON(
crdtp::span<uint8_t>(cbor.data(), cbor.size()), &input_arguments);
```
Gerrit-Comment-Date: Mon, 11 May 2026 07:18:56 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Philip Pfaffe (Gerrit)

unread,
May 11, 2026, 3:55:17 AM (14 days ago) May 11
to Alex Rudenko, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
Attention needed from Alex Rudenko

Philip Pfaffe added 2 comments

File content/browser/devtools/protocol/webmcp_handler.cc
Line 66, Patchset 2: FrameTreeNode* frame_tree_node =
Alex Rudenko . unresolved

could this cross the CDP target boundary and reach an OOPIF?

Philip Pfaffe

I suppose so. Would you expect that to be problematic? We'd call a tool in the wrong frame, assuming that new frame declares a tool by that name and schema. Same for same-process frames though.

Alex Rudenko

It would be problematic in extensions for instance where connecting to an OOPIF might not be allowed. Can we ensure that the frame_id belongs to the current CDP target?

Philip Pfaffe

Ack. added a check below, is that the best way to check this?

Line 84, Patchset 3: base::JSONWriter::Write(*input, &input_arguments);
Alex Rudenko . resolved

Does this work? I think the protocol types are usually (always? compatible with base types but I think the AI suggestion might be good?

AI-suggested:

`input` is of type `std::unique_ptr<protocol::DictionaryValue>` (which is based on `crdtp`), not a `base::Value`. Passing it to `base::JSONWriter::Write` will cause a compilation error.

You should either convert it to a `base::Value` first, or serialize it using `crdtp::json` similar to how it was done in the Blink implementation:
```cpp
std::vector<uint8_t> cbor;
input->AppendSerialized(&cbor);
crdtp::json::ConvertCBORToJSON(
crdtp::span<uint8_t>(cbor.data(), cbor.size()), &input_arguments);
```
Philip Pfaffe

Done

Open in Gerrit

Related details

Attention is currently required from:
  • Alex Rudenko
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: Ic50b950cc6dc49534993c6af223232af7405b08e
Gerrit-Change-Number: 7827877
Gerrit-PatchSet: 4
Gerrit-Owner: Philip Pfaffe <pfa...@chromium.org>
Gerrit-Reviewer: Alex Rudenko <alexr...@chromium.org>
Gerrit-Reviewer: Philip Pfaffe <pfa...@chromium.org>
Gerrit-Attention: Alex Rudenko <alexr...@chromium.org>
Gerrit-Comment-Date: Mon, 11 May 2026 07:55:03 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Alex Rudenko (Gerrit)

unread,
May 11, 2026, 3:57:28 AM (14 days ago) May 11
to Philip Pfaffe, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
Attention needed from Philip Pfaffe

Alex Rudenko voted and added 1 comment

Votes added by Alex Rudenko

Code-Review+1

1 comment

File content/browser/devtools/protocol/webmcp_handler.cc
Line 66, Patchset 2: FrameTreeNode* frame_tree_node =
Alex Rudenko . resolved

could this cross the CDP target boundary and reach an OOPIF?

Philip Pfaffe

I suppose so. Would you expect that to be problematic? We'd call a tool in the wrong frame, assuming that new frame declares a tool by that name and schema. Same for same-process frames though.

Alex Rudenko

It would be problematic in extensions for instance where connecting to an OOPIF might not be allowed. Can we ensure that the frame_id belongs to the current CDP target?

Philip Pfaffe

Ack. added a check below, is that the best way to check this?

Alex Rudenko

This looks good to me, not sure if there is a better way.

Open in Gerrit

Related details

Attention is currently required from:
  • Philip Pfaffe
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not 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: Ic50b950cc6dc49534993c6af223232af7405b08e
    Gerrit-Change-Number: 7827877
    Gerrit-PatchSet: 4
    Gerrit-Owner: Philip Pfaffe <pfa...@chromium.org>
    Gerrit-Reviewer: Alex Rudenko <alexr...@chromium.org>
    Gerrit-Reviewer: Philip Pfaffe <pfa...@chromium.org>
    Gerrit-Attention: Philip Pfaffe <pfa...@chromium.org>
    Gerrit-Comment-Date: Mon, 11 May 2026 07:57:13 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Philip Pfaffe (Gerrit)

    unread,
    May 11, 2026, 4:39:49 AM (14 days ago) May 11
    to Daniel Cheng, Chromium IPC Reviews, Rakina Zata Amni, Alex Rudenko, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
    Attention needed from Chromium IPC Reviews, Daniel Cheng and Rakina Zata Amni

    Philip Pfaffe added 1 comment

    Patchset-level comments
    File-level comment, Patchset 4 (Latest):
    Philip Pfaffe . resolved

    Rakina: PTAL at fake_local_frame
    dcheng: PTAL at the local frame mojo changes

    Thanks!

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Chromium IPC Reviews
    • Daniel Cheng
    • Rakina Zata Amni
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not 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: Ic50b950cc6dc49534993c6af223232af7405b08e
    Gerrit-Change-Number: 7827877
    Gerrit-PatchSet: 4
    Gerrit-Owner: Philip Pfaffe <pfa...@chromium.org>
    Gerrit-Reviewer: Alex Rudenko <alexr...@chromium.org>
    Gerrit-Reviewer: Chromium IPC Reviews <chrome-ip...@google.com>
    Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
    Gerrit-Reviewer: Philip Pfaffe <pfa...@chromium.org>
    Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-Attention: Chromium IPC Reviews <chrome-ip...@google.com>
    Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
    Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-Comment-Date: Mon, 11 May 2026 08:39:32 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Philip Pfaffe (Gerrit)

    unread,
    May 11, 2026, 4:40:54 AM (14 days ago) May 11
    to Dominic Farolino, Daniel Cheng, Chromium IPC Reviews, Rakina Zata Amni, Alex Rudenko, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
    Attention needed from Chromium IPC Reviews, Daniel Cheng, Dominic Farolino and Rakina Zata Amni

    Philip Pfaffe added 1 comment

    Patchset-level comments
    Philip Pfaffe . resolved

    dom@: Any general thoughts on the approach? Any issues with drilling these extra holes for the inspector?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Chromium IPC Reviews
    • Daniel Cheng
    • Dominic Farolino
    • Rakina Zata Amni
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not 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: Ic50b950cc6dc49534993c6af223232af7405b08e
    Gerrit-Change-Number: 7827877
    Gerrit-PatchSet: 4
    Gerrit-Owner: Philip Pfaffe <pfa...@chromium.org>
    Gerrit-Reviewer: Alex Rudenko <alexr...@chromium.org>
    Gerrit-Reviewer: Chromium IPC Reviews <chrome-ip...@google.com>
    Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
    Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
    Gerrit-Reviewer: Philip Pfaffe <pfa...@chromium.org>
    Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-Attention: Dominic Farolino <d...@chromium.org>
    Gerrit-Attention: Chromium IPC Reviews <chrome-ip...@google.com>
    Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
    Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-Comment-Date: Mon, 11 May 2026 08:40:31 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    gwsq (Gerrit)

    unread,
    May 11, 2026, 4:45:15 AM (14 days ago) May 11
    to Philip Pfaffe, Chromium IPC Reviews, Antonio Sartori, Dominic Farolino, Daniel Cheng, Rakina Zata Amni, Alex Rudenko, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
    Attention needed from Antonio Sartori, Daniel Cheng, Dominic Farolino and Rakina Zata Amni

    Message from gwsq

    From googleclient/chrome/chromium_gwsq/ipc/config.gwsq:
    IPC: antonio...@chromium.org, dch...@chromium.org, d...@chromium.org

    📎 It looks like you’re making a possibly security-sensitive change! 📎 IPC security review isn’t a rubberstamp, so your friendly security reviewer will need a fair amount of context to review your CL effectively. Please review your CL description and code comments to make sure they provide context for someone unfamiliar with your project/area. Pay special attention to where data comes from and which processes it flows between (and their privilege levels). Feel free to point your security reviewer at design docs, bugs, or other links if you can’t reasonably make a self-contained CL description. (Also see https://cbea.ms/git-commit/).

    IPC reviewer(s): antonio...@chromium.org, dch...@chromium.org, d...@chromium.org


    Reviewer source(s):
    antonio...@chromium.org is from context(googleclient/chrome/chromium_gwsq/ipc/config.gwsq)

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Antonio Sartori
    • Daniel Cheng
    • Dominic Farolino
    • Rakina Zata Amni
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not 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: Ic50b950cc6dc49534993c6af223232af7405b08e
    Gerrit-Change-Number: 7827877
    Gerrit-PatchSet: 4
    Gerrit-Owner: Philip Pfaffe <pfa...@chromium.org>
    Gerrit-Reviewer: Alex Rudenko <alexr...@chromium.org>
    Gerrit-Reviewer: Antonio Sartori <antonio...@chromium.org>
    Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
    Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
    Gerrit-Reviewer: Philip Pfaffe <pfa...@chromium.org>
    Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
    Gerrit-CC: gwsq
    Gerrit-Attention: Dominic Farolino <d...@chromium.org>
    Gerrit-Attention: Antonio Sartori <antonio...@chromium.org>
    Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
    Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
    Gerrit-Comment-Date: Mon, 11 May 2026 08:44:45 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Daniel Cheng (Gerrit)

    unread,
    May 11, 2026, 4:51:58 PM (13 days ago) May 11
    to Philip Pfaffe, Chromium IPC Reviews, Antonio Sartori, Dominic Farolino, Daniel Cheng, Rakina Zata Amni, Alex Rudenko, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
    Attention needed from Antonio Sartori, Dominic Farolino, Philip Pfaffe and Rakina Zata Amni

    Daniel Cheng added 3 comments

    Patchset-level comments
    Daniel Cheng . unresolved

    This seems very similar to https://chromium-review.googlesource.com/c/chromium/src/+/7748304 in some ways. What's the difference and why do we need both?

    File content/browser/devtools/protocol/webmcp_handler.h
    Line 52, Patchset 4 (Latest): base::flat_set<base::UnguessableToken> initiated_invocations_;
    Daniel Cheng . unresolved

    Nit: unless you need ordering, please use absl::flat_hash_set.

    File third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc
    Line 991, Patchset 4 (Latest): if (auto* window = DomWindow()) {
    Daniel Cheng . unresolved

    This null check shouldn't be needed? At the very least, I hope we're not handling Mojo calls for detached frames.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Antonio Sartori
    • Dominic Farolino
    • Philip Pfaffe
    • Rakina Zata Amni
    Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • 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: Ic50b950cc6dc49534993c6af223232af7405b08e
      Gerrit-Change-Number: 7827877
      Gerrit-PatchSet: 4
      Gerrit-Owner: Philip Pfaffe <pfa...@chromium.org>
      Gerrit-Reviewer: Alex Rudenko <alexr...@chromium.org>
      Gerrit-Reviewer: Antonio Sartori <antonio...@chromium.org>
      Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
      Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
      Gerrit-Reviewer: Philip Pfaffe <pfa...@chromium.org>
      Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
      Gerrit-CC: gwsq
      Gerrit-Attention: Philip Pfaffe <pfa...@chromium.org>
      Gerrit-Attention: Dominic Farolino <d...@chromium.org>
      Gerrit-Attention: Antonio Sartori <antonio...@chromium.org>
      Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Comment-Date: Mon, 11 May 2026 20:51:47 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Philip Pfaffe (Gerrit)

      unread,
      May 12, 2026, 3:24:00 AM (13 days ago) May 12
      to Chromium IPC Reviews, Antonio Sartori, Dominic Farolino, Daniel Cheng, Rakina Zata Amni, Alex Rudenko, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
      Attention needed from Antonio Sartori, Daniel Cheng, Dominic Farolino and Rakina Zata Amni

      Philip Pfaffe added 1 comment

      Patchset-level comments
      Daniel Cheng . unresolved

      This seems very similar to https://chromium-review.googlesource.com/c/chromium/src/+/7748304 in some ways. What's the difference and why do we need both?

      Philip Pfaffe

      The only real difference is where the tool calls are coming from. In that CL they originate from actor in //chrome, this here is in //content. Other than that they do pretty much the same thing. This change is required because we can't have the cdp handler in //chrome or it wouldn't work in headless.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Antonio Sartori
      • Daniel Cheng
      • Dominic Farolino
      • Rakina Zata Amni
      Gerrit-Attention: Dominic Farolino <d...@chromium.org>
      Gerrit-Attention: Antonio Sartori <antonio...@chromium.org>
      Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
      Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Comment-Date: Tue, 12 May 2026 07:23:30 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Daniel Cheng <dch...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Philip Pfaffe (Gerrit)

      unread,
      May 12, 2026, 4:15:16 AM (13 days ago) May 12
      to Chromium IPC Reviews, Antonio Sartori, Dominic Farolino, Daniel Cheng, Rakina Zata Amni, Alex Rudenko, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
      Attention needed from Antonio Sartori, Daniel Cheng, Dominic Farolino and Rakina Zata Amni

      Philip Pfaffe added 2 comments

      File content/browser/devtools/protocol/webmcp_handler.h
      Line 52, Patchset 4: base::flat_set<base::UnguessableToken> initiated_invocations_;
      Daniel Cheng . resolved

      Nit: unless you need ordering, please use absl::flat_hash_set.

      Philip Pfaffe

      Done

      File third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc
      Line 991, Patchset 4: if (auto* window = DomWindow()) {
      Daniel Cheng . resolved

      This null check shouldn't be needed? At the very least, I hope we're not handling Mojo calls for detached frames.

      Philip Pfaffe

      Done

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Antonio Sartori
      • Daniel Cheng
      • Dominic Farolino
      • Rakina Zata Amni
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • 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: Ic50b950cc6dc49534993c6af223232af7405b08e
      Gerrit-Change-Number: 7827877
      Gerrit-PatchSet: 5
      Gerrit-Owner: Philip Pfaffe <pfa...@chromium.org>
      Gerrit-Reviewer: Alex Rudenko <alexr...@chromium.org>
      Gerrit-Reviewer: Antonio Sartori <antonio...@chromium.org>
      Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
      Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
      Gerrit-Reviewer: Philip Pfaffe <pfa...@chromium.org>
      Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
      Gerrit-CC: gwsq
      Gerrit-Attention: Dominic Farolino <d...@chromium.org>
      Gerrit-Attention: Antonio Sartori <antonio...@chromium.org>
      Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
      Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Comment-Date: Tue, 12 May 2026 08:14:58 +0000
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Antonio Sartori (Gerrit)

      unread,
      May 12, 2026, 8:01:16 AM (12 days ago) May 12
      to Philip Pfaffe, Chromium IPC Reviews, Dominic Farolino, Daniel Cheng, Rakina Zata Amni, Alex Rudenko, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
      Attention needed from Daniel Cheng, Dominic Farolino, Philip Pfaffe and Rakina Zata Amni

      Antonio Sartori added 2 comments

      File third_party/blink/public/mojom/frame/frame.mojom
      Line 1090, Patchset 5 (Latest): InvokeScriptToolForInspector(mojo_base.mojom.UnguessableToken invocation_id,
      string tool_name,
      string input_arguments) => (bool success);
      Antonio Sartori . unresolved

      is this formatted? I would have expected all parameters to have the same indentation level.

      Line 1097, Patchset 5 (Latest): mojo_base.mojom.UnguessableToken invocation_id) => (string? result);
      Antonio Sartori . unresolved

      are you using this result anywhere? The only invocation I see is discarding the result I believe. Also, if you are using it, do you need it to be optional? I think you are always returning a string (maybe empty).

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Daniel Cheng
      • Dominic Farolino
      • Philip Pfaffe
      • Rakina Zata Amni
      Gerrit-Attention: Philip Pfaffe <pfa...@chromium.org>
      Gerrit-Attention: Dominic Farolino <d...@chromium.org>
      Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
      Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Comment-Date: Tue, 12 May 2026 12:00:57 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Philip Pfaffe (Gerrit)

      unread,
      May 12, 2026, 8:59:48 AM (12 days ago) May 12
      to Chromium IPC Reviews, Antonio Sartori, Dominic Farolino, Daniel Cheng, Rakina Zata Amni, Alex Rudenko, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
      Attention needed from Antonio Sartori, Daniel Cheng, Dominic Farolino and Rakina Zata Amni

      Philip Pfaffe added 2 comments

      File third_party/blink/public/mojom/frame/frame.mojom
      Line 1090, Patchset 5: InvokeScriptToolForInspector(mojo_base.mojom.UnguessableToken invocation_id,

      string tool_name,
      string input_arguments) => (bool success);
      Antonio Sartori . unresolved

      is this formatted? I would have expected all parameters to have the same indentation level.

      Philip Pfaffe

      Yes. I don't think presumbmit would pass this otherwise, would it?

      Line 1097, Patchset 5: mojo_base.mojom.UnguessableToken invocation_id) => (string? result);
      Antonio Sartori . resolved

      are you using this result anywhere? The only invocation I see is discarding the result I believe. Also, if you are using it, do you need it to be optional? I think you are always returning a string (maybe empty).

      Philip Pfaffe

      I guess I'm not using it, I'll leave it out.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Antonio Sartori
      • Daniel Cheng
      • Dominic Farolino
      • Rakina Zata Amni
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • 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: Ic50b950cc6dc49534993c6af223232af7405b08e
      Gerrit-Change-Number: 7827877
      Gerrit-PatchSet: 6
      Gerrit-Owner: Philip Pfaffe <pfa...@chromium.org>
      Gerrit-Reviewer: Alex Rudenko <alexr...@chromium.org>
      Gerrit-Reviewer: Antonio Sartori <antonio...@chromium.org>
      Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
      Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
      Gerrit-Reviewer: Philip Pfaffe <pfa...@chromium.org>
      Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
      Gerrit-CC: gwsq
      Gerrit-Attention: Dominic Farolino <d...@chromium.org>
      Gerrit-Attention: Antonio Sartori <antonio...@chromium.org>
      Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
      Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Comment-Date: Tue, 12 May 2026 12:59:32 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Antonio Sartori <antonio...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Philip Pfaffe (Gerrit)

      unread,
      May 12, 2026, 9:13:48 AM (12 days ago) May 12
      to Chromium IPC Reviews, Antonio Sartori, Dominic Farolino, Daniel Cheng, Rakina Zata Amni, Alex Rudenko, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
      Attention needed from Antonio Sartori, Daniel Cheng, Dominic Farolino and Rakina Zata Amni

      Philip Pfaffe added 1 comment

      File third_party/blink/public/mojom/frame/frame.mojom
      Line 1090, Patchset 5: InvokeScriptToolForInspector(mojo_base.mojom.UnguessableToken invocation_id,
      string tool_name,
      string input_arguments) => (bool success);
      Antonio Sartori . resolved

      is this formatted? I would have expected all parameters to have the same indentation level.

      Philip Pfaffe

      Yes. I don't think presumbmit would pass this otherwise, would it?

      Philip Pfaffe

      Oh I suppose it wasn't. Formatted like you suggested. Formatting everything produces a huge diff.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Antonio Sartori
      • Daniel Cheng
      • Dominic Farolino
      • Rakina Zata Amni
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • 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: Ic50b950cc6dc49534993c6af223232af7405b08e
      Gerrit-Change-Number: 7827877
      Gerrit-PatchSet: 7
      Gerrit-Owner: Philip Pfaffe <pfa...@chromium.org>
      Gerrit-Reviewer: Alex Rudenko <alexr...@chromium.org>
      Gerrit-Reviewer: Antonio Sartori <antonio...@chromium.org>
      Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
      Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
      Gerrit-Reviewer: Philip Pfaffe <pfa...@chromium.org>
      Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
      Gerrit-CC: gwsq
      Gerrit-Attention: Dominic Farolino <d...@chromium.org>
      Gerrit-Attention: Antonio Sartori <antonio...@chromium.org>
      Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
      Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Comment-Date: Tue, 12 May 2026 13:13:29 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Philip Pfaffe <pfa...@chromium.org>
      Comment-In-Reply-To: Antonio Sartori <antonio...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Antonio Sartori (Gerrit)

      unread,
      May 12, 2026, 9:41:43 AM (12 days ago) May 12
      to Philip Pfaffe, Chromium IPC Reviews, Dominic Farolino, Daniel Cheng, Rakina Zata Amni, Alex Rudenko, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
      Attention needed from Daniel Cheng, Dominic Farolino, Philip Pfaffe and Rakina Zata Amni

      Antonio Sartori added 3 comments

      File third_party/blink/public/mojom/frame/frame.mojom
      Line 1095, Patchset 7 (Latest): // document, and requests the result of that invocation.
      Antonio Sartori . unresolved

      this is now outdated

      Line 1093, Patchset 7 (Latest):
      // Notifies the frame that a tool invocation resulted in a navigation to this
      // document, and requests the result of that invocation.
      Antonio Sartori . unresolved

      Now that I think about of this, this sounds kind of weird. What is the document supposed to do in response of this "notification"? This can will reach the renderer some time in the future, and the document might already have been renderer and interacted with...?

      I think I am missing the point of this call, but it might just be that I don't have enough context here.

      Line 1096, Patchset 7 (Latest): GetCrossDocumentScriptToolResultForInspector(
      Antonio Sartori . unresolved

      the name should also be updated, something like "Notify..."?

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Daniel Cheng
      • Dominic Farolino
      • Philip Pfaffe
      • Rakina Zata Amni
      Gerrit-Attention: Philip Pfaffe <pfa...@chromium.org>
      Gerrit-Attention: Dominic Farolino <d...@chromium.org>
      Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
      Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Comment-Date: Tue, 12 May 2026 13:41:27 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Philip Pfaffe (Gerrit)

      unread,
      May 12, 2026, 10:43:39 AM (12 days ago) May 12
      to Chromium IPC Reviews, Antonio Sartori, Dominic Farolino, Daniel Cheng, Rakina Zata Amni, Alex Rudenko, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
      Attention needed from Antonio Sartori, Daniel Cheng, Dominic Farolino and Rakina Zata Amni

      Philip Pfaffe added 1 comment

      File third_party/blink/public/mojom/frame/frame.mojom
      Line 1093, Patchset 7 (Latest):
      // Notifies the frame that a tool invocation resulted in a navigation to this
      // document, and requests the result of that invocation.
      Antonio Sartori . unresolved

      Now that I think about of this, this sounds kind of weird. What is the document supposed to do in response of this "notification"? This can will reach the renderer some time in the future, and the document might already have been renderer and interacted with...?

      I think I am missing the point of this call, but it might just be that I don't have enough context here.

      Philip Pfaffe

      At this point, the renderer doesn't really do anything with it except trigger the call to the devtools probe, at least that's the intended purpose. In practice it'll call the regular tool result retrieval on modelcontext the same way it would for a call from actor via //chrome's render frame: https://source.chromium.org/chromium/chromium/src/+/main:chrome/common/chrome_render_frame.mojom;drc=6250dbaff56fb8aad8ede90a7ec8e9a1a3c4dd05;l=152

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Antonio Sartori
      • Daniel Cheng
      • Dominic Farolino
      • Rakina Zata Amni
      Gerrit-Attention: Dominic Farolino <d...@chromium.org>
      Gerrit-Attention: Antonio Sartori <antonio...@chromium.org>
      Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
      Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Comment-Date: Tue, 12 May 2026 14:43:20 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Antonio Sartori <antonio...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Antonio Sartori (Gerrit)

      unread,
      May 13, 2026, 7:26:53 AM (11 days ago) May 13
      to Philip Pfaffe, Chromium IPC Reviews, Dominic Farolino, Daniel Cheng, Rakina Zata Amni, Alex Rudenko, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
      Attention needed from Daniel Cheng, Dominic Farolino, Philip Pfaffe and Rakina Zata Amni

      Antonio Sartori added 1 comment

      File third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc
      Line 986, Patchset 7 (Latest):void LocalFrameMojoHandler::InvokeScriptToolForInspector(
      Antonio Sartori . unresolved

      This seems like a wrapper around ModelContext::ExecuteTool, which already implements a mojo interface. Do we need this wrapper and the additional mojo messages on LocalFrame? Could we somehow reuse the existing ModelContext interface and call it directly?

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Daniel Cheng
      • Dominic Farolino
      • Philip Pfaffe
      • Rakina Zata Amni
      Gerrit-Attention: Philip Pfaffe <pfa...@chromium.org>
      Gerrit-Attention: Dominic Farolino <d...@chromium.org>
      Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
      Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Comment-Date: Wed, 13 May 2026 11:26:32 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Philip Pfaffe (Gerrit)

      unread,
      May 13, 2026, 9:54:58 AM (11 days ago) May 13
      to Chromium IPC Reviews, Antonio Sartori, Dominic Farolino, Daniel Cheng, Rakina Zata Amni, Alex Rudenko, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
      Attention needed from Antonio Sartori, Daniel Cheng, Dominic Farolino and Rakina Zata Amni

      Philip Pfaffe added 3 comments

      File third_party/blink/public/mojom/frame/frame.mojom
      Line 1095, Patchset 7: // document, and requests the result of that invocation.
      Antonio Sartori . resolved

      this is now outdated

      Philip Pfaffe

      Done

      Line 1096, Patchset 7: GetCrossDocumentScriptToolResultForInspector(
      Antonio Sartori . resolved

      the name should also be updated, something like "Notify..."?

      Philip Pfaffe

      Done

      File third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc
      Line 986, Patchset 7:void LocalFrameMojoHandler::InvokeScriptToolForInspector(
      Antonio Sartori . unresolved

      This seems like a wrapper around ModelContext::ExecuteTool, which already implements a mojo interface. Do we need this wrapper and the additional mojo messages on LocalFrame? Could we somehow reuse the existing ModelContext interface and call it directly?

      Philip Pfaffe

      The problem with that interface is that it only gets connected once the page accesses navigator.modelContext. We need to call the new IPC on navigation, at which point the interface is not yet connected.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Antonio Sartori
      • Daniel Cheng
      • Dominic Farolino
      • Rakina Zata Amni
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement is not satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • 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: Ic50b950cc6dc49534993c6af223232af7405b08e
      Gerrit-Change-Number: 7827877
      Gerrit-PatchSet: 8
      Gerrit-Owner: Philip Pfaffe <pfa...@chromium.org>
      Gerrit-Reviewer: Alex Rudenko <alexr...@chromium.org>
      Gerrit-Reviewer: Antonio Sartori <antonio...@chromium.org>
      Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
      Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
      Gerrit-Reviewer: Philip Pfaffe <pfa...@chromium.org>
      Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
      Gerrit-CC: gwsq
      Gerrit-Attention: Dominic Farolino <d...@chromium.org>
      Gerrit-Attention: Antonio Sartori <antonio...@chromium.org>
      Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
      Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Comment-Date: Wed, 13 May 2026 13:54:41 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Antonio Sartori <antonio...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Antonio Sartori (Gerrit)

      unread,
      May 13, 2026, 10:59:57 AM (11 days ago) May 13
      to Philip Pfaffe, Chromium IPC Reviews, Dominic Farolino, Daniel Cheng, Rakina Zata Amni, Alex Rudenko, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
      Attention needed from Daniel Cheng, Dominic Farolino, Philip Pfaffe and Rakina Zata Amni

      Antonio Sartori voted and added 3 comments

      Votes added by Antonio Sartori

      Code-Review+1

      3 comments

      Patchset-level comments
      File-level comment, Patchset 8 (Latest):
      Antonio Sartori . resolved

      mojo LGTM

      File third_party/blink/public/mojom/frame/frame.mojom

      // Notifies the frame that a tool invocation resulted in a navigation to this
      // document, and requests the result of that invocation.
      Antonio Sartori . unresolved

      Now that I think about of this, this sounds kind of weird. What is the document supposed to do in response of this "notification"? This can will reach the renderer some time in the future, and the document might already have been renderer and interacted with...?

      I think I am missing the point of this call, but it might just be that I don't have enough context here.

      Philip Pfaffe

      At this point, the renderer doesn't really do anything with it except trigger the call to the devtools probe, at least that's the intended purpose. In practice it'll call the regular tool result retrieval on modelcontext the same way it would for a call from actor via //chrome's render frame: https://source.chromium.org/chromium/chromium/src/+/main:chrome/common/chrome_render_frame.mojom;drc=6250dbaff56fb8aad8ede90a7ec8e9a1a3c4dd05;l=152

      Antonio Sartori

      Thanks. I think elaborating a bit in the comment could be helpful. I still don't have enough context to understand exactly why this is needed, but I think this is fine.

      File third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc
      Line 986, Patchset 7:void LocalFrameMojoHandler::InvokeScriptToolForInspector(
      Antonio Sartori . resolved

      This seems like a wrapper around ModelContext::ExecuteTool, which already implements a mojo interface. Do we need this wrapper and the additional mojo messages on LocalFrame? Could we somehow reuse the existing ModelContext interface and call it directly?

      Philip Pfaffe

      The problem with that interface is that it only gets connected once the page accesses navigator.modelContext. We need to call the new IPC on navigation, at which point the interface is not yet connected.

      Antonio Sartori

      Ok. I don't have the full picture here, so I'll defer to you. I think it would be beneficial from a code health pov to understand whether it's possible to deduplicate these mojo calls, but I don't think this is blocking, so LGTM.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Daniel Cheng
      • Dominic Farolino
      • Philip Pfaffe
      • Rakina Zata Amni
      Gerrit-Attention: Philip Pfaffe <pfa...@chromium.org>
      Gerrit-Attention: Dominic Farolino <d...@chromium.org>
      Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
      Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Comment-Date: Wed, 13 May 2026 14:59:35 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Alex Rudenko (Gerrit)

      unread,
      May 19, 2026, 4:59:27 PM (5 days ago) May 19
      to Philip Pfaffe, Code Review Nudger, Antonio Sartori, Chromium IPC Reviews, Dominic Farolino, Daniel Cheng, Rakina Zata Amni, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
      Attention needed from Daniel Cheng, Dominic Farolino, Philip Pfaffe and Rakina Zata Amni

      Alex Rudenko voted and added 1 comment

      Votes added by Alex Rudenko

      Code-Review+1

      1 comment

      Patchset-level comments
      Daniel Cheng . unresolved

      This seems very similar to https://chromium-review.googlesource.com/c/chromium/src/+/7748304 in some ways. What's the difference and why do we need both?

      Philip Pfaffe

      The only real difference is where the tool calls are coming from. In that CL they originate from actor in //chrome, this here is in //content. Other than that they do pretty much the same thing. This change is required because we can't have the cdp handler in //chrome or it wouldn't work in headless.

      Alex Rudenko

      Friendly ping, does @pfaffe's answer resolve the comment? This CL would fix the declarative tools not working for automation client so it would be great if we could land it. PTAL.

      Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
      Gerrit-CC: gwsq
      Gerrit-Attention: Philip Pfaffe <pfa...@chromium.org>
      Gerrit-Attention: Dominic Farolino <d...@chromium.org>
      Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
      Gerrit-Attention: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-Comment-Date: Tue, 19 May 2026 20:59:13 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      Comment-In-Reply-To: Philip Pfaffe <pfa...@chromium.org>
      Comment-In-Reply-To: Daniel Cheng <dch...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Rakina Zata Amni (Gerrit)

      unread,
      May 19, 2026, 7:19:52 PM (5 days ago) May 19
      to Philip Pfaffe, Code Review Nudger, Antonio Sartori, Chromium IPC Reviews, Dominic Farolino, Daniel Cheng, Alex Rudenko, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
      Attention needed from Daniel Cheng, Dominic Farolino and Philip Pfaffe

      Rakina Zata Amni voted Code-Review+1

      Code-Review+1
      Open in Gerrit

      Related details

      Attention is currently required from:
      • Daniel Cheng
      • Dominic Farolino
      • Philip Pfaffe
      Gerrit-Comment-Date: Tue, 19 May 2026 23:19:17 +0000
      Gerrit-HasComments: No
      Gerrit-Has-Labels: Yes
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Daniel Cheng (Gerrit)

      unread,
      May 21, 2026, 2:04:39 PM (3 days ago) May 21
      to Philip Pfaffe, Daniel Cheng, Alex Rudenko, Rakina Zata Amni, Code Review Nudger, Antonio Sartori, Chromium IPC Reviews, Dominic Farolino, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
      Attention needed from Dominic Farolino and Philip Pfaffe

      Daniel Cheng voted and added 2 comments

      Votes added by Daniel Cheng

      Code-Review+1

      2 comments

      Patchset-level comments
      Daniel Cheng . unresolved

      This seems very similar to https://chromium-review.googlesource.com/c/chromium/src/+/7748304 in some ways. What's the difference and why do we need both?

      Philip Pfaffe

      The only real difference is where the tool calls are coming from. In that CL they originate from actor in //chrome, this here is in //content. Other than that they do pretty much the same thing. This change is required because we can't have the cdp handler in //chrome or it wouldn't work in headless.

      Alex Rudenko

      Friendly ping, does @pfaffe's answer resolve the comment? This CL would fix the declarative tools not working for automation client so it would be great if we could land it. PTAL.

      Daniel Cheng

      The updated CL seems to have much less overlap so it's better from that perspective.

      But it still feels a bit weird and like we're possibly missing some pieces somewhere. Having `NotifyInspectorOfCrossDocumentScriptToolResult` still means we IPC twice to the renderer to notify of a cross-document tool result... but that still seems a bit redundant. It seems like maybe //content should expose the APIs that //chrome might need, or the IPC returning the `result` itself ought to be in //content, with some way for //content to pass it back to //chrome if that makes sense... it doesn't really make sense for both layers to do the work.

      File-level comment, Patchset 9 (Latest):
      Daniel Cheng . unresolved

      LGTM but I think maybe there's a bit more followup and investigation involved here. The interfaces, as written, don't quite make sense to me still.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Dominic Farolino
      • Philip Pfaffe
      Submit Requirements:
      • requirement satisfiedCode-Coverage
      • requirement satisfiedCode-Owners
      • requirement satisfiedCode-Review
      • requirement is not satisfiedNo-Unresolved-Comments
      • 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: Ic50b950cc6dc49534993c6af223232af7405b08e
      Gerrit-Change-Number: 7827877
      Gerrit-PatchSet: 9
      Gerrit-Owner: Philip Pfaffe <pfa...@chromium.org>
      Gerrit-Reviewer: Alex Rudenko <alexr...@chromium.org>
      Gerrit-Reviewer: Antonio Sartori <antonio...@chromium.org>
      Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
      Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
      Gerrit-Reviewer: Philip Pfaffe <pfa...@chromium.org>
      Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
      Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
      Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
      Gerrit-CC: gwsq
      Gerrit-Attention: Philip Pfaffe <pfa...@chromium.org>
      Gerrit-Attention: Dominic Farolino <d...@chromium.org>
      Gerrit-Comment-Date: Thu, 21 May 2026 18:04:30 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      Comment-In-Reply-To: Philip Pfaffe <pfa...@chromium.org>
      Comment-In-Reply-To: Alex Rudenko <alexr...@chromium.org>
      Comment-In-Reply-To: Daniel Cheng <dch...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Alex Rudenko (Gerrit)

      unread,
      May 22, 2026, 1:59:43 AM (3 days ago) May 22
      to Philip Pfaffe, Daniel Cheng, Rakina Zata Amni, Code Review Nudger, Antonio Sartori, Chromium IPC Reviews, Dominic Farolino, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
      Attention needed from Dominic Farolino and Philip Pfaffe

      Alex Rudenko voted and added 2 comments

      Votes added by Alex Rudenko

      Code-Review+1

      2 comments

      Patchset-level comments
      File-level comment, Patchset 4:
      Daniel Cheng . resolved

      This seems very similar to https://chromium-review.googlesource.com/c/chromium/src/+/7748304 in some ways. What's the difference and why do we need both?

      Philip Pfaffe

      The only real difference is where the tool calls are coming from. In that CL they originate from actor in //chrome, this here is in //content. Other than that they do pretty much the same thing. This change is required because we can't have the cdp handler in //chrome or it wouldn't work in headless.

      Alex Rudenko

      Friendly ping, does @pfaffe's answer resolve the comment? This CL would fix the declarative tools not working for automation client so it would be great if we could land it. PTAL.

      Daniel Cheng

      The updated CL seems to have much less overlap so it's better from that perspective.

      But it still feels a bit weird and like we're possibly missing some pieces somewhere. Having `NotifyInspectorOfCrossDocumentScriptToolResult` still means we IPC twice to the renderer to notify of a cross-document tool result... but that still seems a bit redundant. It seems like maybe //content should expose the APIs that //chrome might need, or the IPC returning the `result` itself ought to be in //content, with some way for //content to pass it back to //chrome if that makes sense... it doesn't really make sense for both layers to do the work.

      Alex Rudenko

      Thanks I filed http://crbug.com/515541906 In general, we do not want to have the CDP handle to invoke WebMCP in //chrome because it does not work in headless and that was agreed to be in scope for WebMCP as a platform feature. I believe there was interest in moving the feature logic that is currently in //chrome to //content but it requires additional work on the WebMCP end.

      Daniel Cheng . resolved

      LGTM but I think maybe there's a bit more followup and investigation involved here. The interfaces, as written, don't quite make sense to me still.

      Alex Rudenko
      Gerrit-Comment-Date: Fri, 22 May 2026 05:59:21 +0000
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Dominic Farolino (Gerrit)

      unread,
      May 22, 2026, 8:48:47 AM (2 days ago) May 22
      to Philip Pfaffe, Daniel Cheng, Alex Rudenko, Rakina Zata Amni, Code Review Nudger, Antonio Sartori, Chromium IPC Reviews, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
      Attention needed from Philip Pfaffe

      Dominic Farolino voted and added 2 comments

      Votes added by Dominic Farolino

      Code-Review+1

      2 comments

      Patchset-level comments
      File-level comment, Patchset 9 (Latest):
      Dominic Farolino . resolved

      Looking forward to the clean-up in https://crbug.com/515541906.

      File third_party/blink/public/mojom/frame/frame.mojom
      Line 1093, Patchset 7:
      // Notifies the frame that a tool invocation resulted in a navigation to this
      // document, and requests the result of that invocation.
      Antonio Sartori . resolved

      Now that I think about of this, this sounds kind of weird. What is the document supposed to do in response of this "notification"? This can will reach the renderer some time in the future, and the document might already have been renderer and interacted with...?

      I think I am missing the point of this call, but it might just be that I don't have enough context here.

      Philip Pfaffe

      At this point, the renderer doesn't really do anything with it except trigger the call to the devtools probe, at least that's the intended purpose. In practice it'll call the regular tool result retrieval on modelcontext the same way it would for a call from actor via //chrome's render frame: https://source.chromium.org/chromium/chromium/src/+/main:chrome/common/chrome_render_frame.mojom;drc=6250dbaff56fb8aad8ede90a7ec8e9a1a3c4dd05;l=152

      Antonio Sartori

      Thanks. I think elaborating a bit in the comment could be helpful. I still don't have enough context to understand exactly why this is needed, but I think this is fine.

      Dominic Farolino

      I agree with the need for more documentation here, but since pfaffe@ is out, for us to add it in this CL we'd end up changing the owner and probably alexrudenko@'s LGTM would be wiped, so I vote we add this in a follow-up CL that he can upload and own directly. Otherwise, LGTM.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Philip Pfaffe
      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: Ic50b950cc6dc49534993c6af223232af7405b08e
        Gerrit-Change-Number: 7827877
        Gerrit-PatchSet: 9
        Gerrit-Owner: Philip Pfaffe <pfa...@chromium.org>
        Gerrit-Reviewer: Alex Rudenko <alexr...@chromium.org>
        Gerrit-Reviewer: Antonio Sartori <antonio...@chromium.org>
        Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
        Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
        Gerrit-Reviewer: Philip Pfaffe <pfa...@chromium.org>
        Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
        Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
        Gerrit-CC: Code Review Nudger <android-build...@prod.google.com>
        Gerrit-CC: gwsq
        Gerrit-Attention: Philip Pfaffe <pfa...@chromium.org>
        Gerrit-Comment-Date: Fri, 22 May 2026 12:48:39 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        Comment-In-Reply-To: Philip Pfaffe <pfa...@chromium.org>
        Comment-In-Reply-To: Antonio Sartori <antonio...@chromium.org>
        satisfied_requirement
        open
        diffy

        Dominic Farolino (Gerrit)

        unread,
        May 22, 2026, 8:49:08 AM (2 days ago) May 22
        to Philip Pfaffe, Daniel Cheng, Alex Rudenko, Rakina Zata Amni, Code Review Nudger, Antonio Sartori, Chromium IPC Reviews, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
        Attention needed from Philip Pfaffe

        Dominic Farolino voted Commit-Queue+2

        Commit-Queue+2
        Gerrit-Comment-Date: Fri, 22 May 2026 12:48:59 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        open
        diffy

        Alex Rudenko (Gerrit)

        unread,
        May 22, 2026, 8:52:37 AM (2 days ago) May 22
        to Philip Pfaffe, Dominic Farolino, Daniel Cheng, Rakina Zata Amni, Code Review Nudger, Antonio Sartori, Chromium IPC Reviews, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
        Attention needed from Philip Pfaffe

        Alex Rudenko added 1 comment

        File third_party/blink/public/mojom/frame/frame.mojom
        Line 1093, Patchset 7:
        // Notifies the frame that a tool invocation resulted in a navigation to this
        // document, and requests the result of that invocation.
        Antonio Sartori . resolved

        Now that I think about of this, this sounds kind of weird. What is the document supposed to do in response of this "notification"? This can will reach the renderer some time in the future, and the document might already have been renderer and interacted with...?

        I think I am missing the point of this call, but it might just be that I don't have enough context here.

        Philip Pfaffe

        At this point, the renderer doesn't really do anything with it except trigger the call to the devtools probe, at least that's the intended purpose. In practice it'll call the regular tool result retrieval on modelcontext the same way it would for a call from actor via //chrome's render frame: https://source.chromium.org/chromium/chromium/src/+/main:chrome/common/chrome_render_frame.mojom;drc=6250dbaff56fb8aad8ede90a7ec8e9a1a3c4dd05;l=152

        Antonio Sartori

        Thanks. I think elaborating a bit in the comment could be helpful. I still don't have enough context to understand exactly why this is needed, but I think this is fine.

        Dominic Farolino

        I agree with the need for more documentation here, but since pfaffe@ is out, for us to add it in this CL we'd end up changing the owner and probably alexrudenko@'s LGTM would be wiped, so I vote we add this in a follow-up CL that he can upload and own directly. Otherwise, LGTM.

        Alex Rudenko

        Thanks for review. I will send a CL with the extended comment next week!

        Gerrit-Comment-Date: Fri, 22 May 2026 12:52:22 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Philip Pfaffe <pfa...@chromium.org>
        Comment-In-Reply-To: Dominic Farolino <d...@chromium.org>
        Comment-In-Reply-To: Antonio Sartori <antonio...@chromium.org>
        satisfied_requirement
        open
        diffy

        Alex Rudenko (Gerrit)

        unread,
        May 22, 2026, 9:57:10 AM (2 days ago) May 22
        to Philip Pfaffe, Dominic Farolino, Daniel Cheng, Rakina Zata Amni, Code Review Nudger, Antonio Sartori, Chromium IPC Reviews, Chromium LUCI CQ, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org
        Attention needed from Dominic Farolino and Philip Pfaffe

        Alex Rudenko voted Commit-Queue+2

        Commit-Queue+2
        Open in Gerrit

        Related details

        Attention is currently required from:
        • Dominic Farolino
        • Philip Pfaffe
        Gerrit-Attention: Dominic Farolino <d...@chromium.org>
        Gerrit-Comment-Date: Fri, 22 May 2026 13:56:56 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        open
        diffy

        Chromium LUCI CQ (Gerrit)

        unread,
        May 22, 2026, 11:06:26 AM (2 days ago) May 22
        to Philip Pfaffe, Dominic Farolino, Daniel Cheng, Alex Rudenko, Rakina Zata Amni, Code Review Nudger, Antonio Sartori, Chromium IPC Reviews, chromium...@chromium.org, devtools...@chromium.org, blink-re...@chromium.org, blink-revi...@chromium.org, blink-...@chromium.org, devtools-re...@chromium.org, ipc-securi...@chromium.org, kinuko...@chromium.org

        Chromium LUCI CQ submitted the change

        Unreviewed changes

        9 is the latest approved patch-set.
        No files were changed between the latest approved patch-set and the submitted one.

        Change information

        Commit message:
        Add a browser-side WebMCP.invokeTool handler in //content

        This allows us to detect cross-document results and trigger the event
        for them.
        Bug: 510269012
        Change-Id: Ic50b950cc6dc49534993c6af223232af7405b08e
        Reviewed-by: Antonio Sartori <antonio...@chromium.org>
        Reviewed-by: Alex Rudenko <alexr...@chromium.org>
        Reviewed-by: Rakina Zata Amni <rak...@chromium.org>
        Reviewed-by: Dominic Farolino <d...@chromium.org>
        Commit-Queue: Alex Rudenko <alexr...@chromium.org>
        Reviewed-by: Daniel Cheng <dch...@chromium.org>
        Cr-Commit-Position: refs/heads/main@{#1634960}
        Files:
        • M content/browser/BUILD.gn
        • M content/browser/devtools/BUILD.gn
        • M content/browser/devtools/devtools_session.cc
        • A content/browser/devtools/protocol/webmcp_handler.cc
        • A content/browser/devtools/protocol/webmcp_handler.h
        • M content/browser/devtools/protocol_config.json
        • M content/browser/devtools/render_frame_devtools_agent_host.cc
        • M content/public/test/fake_local_frame.cc
        • M content/public/test/fake_local_frame.h
        • M third_party/blink/public/mojom/frame/frame.mojom
        • M third_party/blink/renderer/core/frame/local_frame_mojo_handler.cc
        • M third_party/blink/renderer/core/frame/local_frame_mojo_handler.h
        • M third_party/blink/renderer/core/inspector/inspector_protocol_config.json
        • M third_party/blink/renderer/core/inspector/inspector_web_mcp_agent.cc
        • M third_party/blink/renderer/core/inspector/inspector_web_mcp_agent.h
        • A third_party/blink/web_tests/inspector-protocol/webmcp/invoke-tool-cross-document.js
        • A third_party/blink/web_tests/inspector-protocol/webmcp/resources/webmcp-response.html
        • A third_party/blink/web_tests/virtual/webmcp/inspector-protocol/webmcp/invoke-tool-cross-document-expected.txt
        Change size: L
        Delta: 18 files changed, 377 insertions(+), 50 deletions(-)
        Branch: refs/heads/main
        Submit Requirements:
        • requirement satisfiedCode-Review: +1 by Daniel Cheng, +1 by Alex Rudenko, +1 by Rakina Zata Amni, +1 by Dominic Farolino, +1 by Antonio Sartori
        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: Ic50b950cc6dc49534993c6af223232af7405b08e
        Gerrit-Change-Number: 7827877
        Gerrit-PatchSet: 11
        Gerrit-Owner: Philip Pfaffe <pfa...@chromium.org>
        Gerrit-Reviewer: Alex Rudenko <alexr...@chromium.org>
        Gerrit-Reviewer: Antonio Sartori <antonio...@chromium.org>
        Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
        Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
        Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
        Gerrit-Reviewer: Philip Pfaffe <pfa...@chromium.org>
        Gerrit-Reviewer: Rakina Zata Amni <rak...@chromium.org>
        Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
        open
        diffy
        satisfied_requirement
        Reply all
        Reply to author
        Forward
        0 new messages