[LNA] Run standard LNA check on WebSocket connections [chromium/src : main]

0 views
Skip to first unread message

Hubert Chao (Gerrit)

unread,
Aug 28, 2025, 3:55:06 PM (11 days ago) Aug 28
to Chris Thompson, Chromium LUCI CQ, chromium...@chromium.org, Hiroki Nakagawa, alexmo...@chromium.org, blink-work...@chromium.org, creis...@chromium.org, derinel+wat...@google.com, fenced-fra...@chromium.org, horo+...@chromium.org, ipc-securi...@chromium.org, kinuko+ser...@chromium.org, kinuko...@chromium.org, navigation...@chromium.org, net-r...@chromium.org, network-ser...@chromium.org, servicewor...@chromium.org, shimazu+se...@chromium.org, webauthn...@chromium.org
Attention needed from Chris Thompson

Hubert Chao voted Commit-Queue+1

Commit-Queue+1
Open in Gerrit

Related details

Attention is currently required from:
  • Chris Thompson
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
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: I86f8b891b6f52491aa9442152f2a711f559da83d
Gerrit-Change-Number: 6892234
Gerrit-PatchSet: 3
Gerrit-Owner: Hubert Chao <hc...@chromium.org>
Gerrit-Reviewer: Chris Thompson <cth...@chromium.org>
Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
Gerrit-CC: Hiroki Nakagawa <nhi...@chromium.org>
Gerrit-Attention: Chris Thompson <cth...@chromium.org>
Gerrit-Comment-Date: Thu, 28 Aug 2025 19:55:01 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Chris Thompson (Gerrit)

unread,
Aug 28, 2025, 5:01:10 PM (11 days ago) Aug 28
to Hubert Chao, Chromium LUCI CQ, chromium...@chromium.org, Hiroki Nakagawa, alexmo...@chromium.org, blink-work...@chromium.org, creis...@chromium.org, derinel+wat...@google.com, fenced-fra...@chromium.org, horo+...@chromium.org, ipc-securi...@chromium.org, kinuko+ser...@chromium.org, kinuko...@chromium.org, navigation...@chromium.org, net-r...@chromium.org, network-ser...@chromium.org, servicewor...@chromium.org, shimazu+se...@chromium.org, webauthn...@chromium.org
Attention needed from Hubert Chao

Chris Thompson voted and added 3 comments

Votes added by Chris Thompson

Code-Review+1

3 comments

Patchset-level comments
File-level comment, Patchset 3 (Latest):
Chris Thompson . resolved

overalL LGTM with a couple questions

File services/network/websocket.cc
Line 251, Patchset 3 (Latest): // Currently this function only does LNA checks, so if we're not doing those
// go ahead and return net::OK.
if (!base::FeatureList::IsEnabled(
features::kLocalNetworkAccessChecksWebSockets)) {
return net::OK;
}
Chris Thompson . unresolved

Do we lose UseCounter calls (via OnWebSocketConnectedToPrivateNetwork() below) if we early return here?

Line 258, Patchset 3 (Latest): PrivateNetworkAccessChecker checker(
request->url(),
/*target_ip_address_space*/ network::mojom::IPAddressSpace::kUnknown,
request->initiator(),
/*required_ip_address_space*/ network::mojom::IPAddressSpace::kUnknown,
impl_->client_security_state_.get(), impl_->options_);
Chris Thompson . unresolved

Maybe worth adding a comment here for why both target and required are kUnknown (i.e., there is no way for a site to specify a targetAddressSpace for websockets yet).

(Aside: I was trying to remind myself how we enforce the mixed content exceptions for .local and local IP address literals -- I thought we set the targetAddressSpace somewhere to track that? Or is that only in the spec [1] but not implemented yet?)

[1]: https://wicg.github.io/local-network-access/#fetching:~:text=space%20is%20null%3A-,If%20request%E2%80%99s%20URL%E2%80%99s%20host%20host%20is%20an%20IP%20address%20and,%E2%80%99s%20target%20IP%20address%20space%20property%20to%20%22local%22.,-NOTE%3A%20We

Open in Gerrit

Related details

Attention is currently required from:
  • Hubert Chao
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I86f8b891b6f52491aa9442152f2a711f559da83d
    Gerrit-Change-Number: 6892234
    Gerrit-PatchSet: 3
    Gerrit-Owner: Hubert Chao <hc...@chromium.org>
    Gerrit-Reviewer: Chris Thompson <cth...@chromium.org>
    Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
    Gerrit-CC: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Attention: Hubert Chao <hc...@chromium.org>
    Gerrit-Comment-Date: Thu, 28 Aug 2025 21:00:57 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Hubert Chao (Gerrit)

    unread,
    Aug 28, 2025, 10:19:53 PM (11 days ago) Aug 28
    to Chris Thompson, Chromium LUCI CQ, chromium...@chromium.org, Hiroki Nakagawa, alexmo...@chromium.org, blink-work...@chromium.org, creis...@chromium.org, derinel+wat...@google.com, fenced-fra...@chromium.org, horo+...@chromium.org, ipc-securi...@chromium.org, kinuko+ser...@chromium.org, kinuko...@chromium.org, navigation...@chromium.org, net-r...@chromium.org, network-ser...@chromium.org, servicewor...@chromium.org, shimazu+se...@chromium.org, webauthn...@chromium.org
    Attention needed from Chris Thompson

    Hubert Chao added 2 comments

    File services/network/websocket.cc
    Line 251, Patchset 3: // Currently this function only does LNA checks, so if we're not doing those

    // go ahead and return net::OK.
    if (!base::FeatureList::IsEnabled(
    features::kLocalNetworkAccessChecksWebSockets)) {
    return net::OK;
    }
    Chris Thompson . resolved

    Do we lose UseCounter calls (via OnWebSocketConnectedToPrivateNetwork() below) if we early return here?

    Hubert Chao

    Yep; rearranged code to do use counters first.

    Line 258, Patchset 3: PrivateNetworkAccessChecker checker(

    request->url(),
    /*target_ip_address_space*/ network::mojom::IPAddressSpace::kUnknown,
    request->initiator(),
    /*required_ip_address_space*/ network::mojom::IPAddressSpace::kUnknown,
    impl_->client_security_state_.get(), impl_->options_);
    Chris Thompson . unresolved

    Maybe worth adding a comment here for why both target and required are kUnknown (i.e., there is no way for a site to specify a targetAddressSpace for websockets yet).

    (Aside: I was trying to remind myself how we enforce the mixed content exceptions for .local and local IP address literals -- I thought we set the targetAddressSpace somewhere to track that? Or is that only in the spec [1] but not implemented yet?)

    [1]: https://wicg.github.io/local-network-access/#fetching:~:text=space%20is%20null%3A-,If%20request%E2%80%99s%20URL%E2%80%99s%20host%20host%20is%20an%20IP%20address%20and,%E2%80%99s%20target%20IP%20address%20space%20property%20to%20%22local%22.,-NOTE%3A%20We

    Hubert Chao

    Maybe worth adding a comment here for why both target and required are kUnknown (i.e., there is no way for a site to specify a targetAddressSpace for websockets yet).

    Added comment for required.

    Question: what exactly is targetAddressSpace used for? I'm looking at this snippet of code in `services/network/private_network_access_checker.cc` and I realize that don't understand what it is doing:

    ```
    if (target_address_space_ != mojom::IPAddressSpace::kUnknown) {
    if (resource_address_space == target_address_space_) {
    return Result::kAllowedByTargetIpAddressSpace;
    }
        if (policy == mojom::PrivateNetworkRequestPolicy::kPreflightWarn) {
    return Result::kAllowedByPolicyPreflightWarn;
    }
        return Result::kBlockedByTargetIpAddressSpace;
    }
    ```

    the comment for `target_ip_address_space` in `services/network/public/mojom/url_request.mojom` doesn't help matters either, as it makes it seem like this is a complication for preflights

    https://source.chromium.org/chromium/chromium/src/+/main:services/network/public/mojom/url_request.mojom;l=538-568;bpv=1;bpt=1

    (a search for `target_ip_address_space` also makes me think this is preflights-complication)

    (Aside: I was trying to remind myself how we enforce the mixed content exceptions for .local and local IP address literals -- I thought we set the targetAddressSpace somewhere to track that? Or is that only in the spec [1] but not implemented yet?)

    I didn't touch anything around this, so I'm not sure. Is the worry that:

    • we get a local ip address literal/.local address
    • so we let the request bypass mixed content checks
    • but it actually ends up at a public IP address somehow
    • and so it passes the LNA check because the resource_ip_address_space == kPublic?

    I don't actually know how we check this, or if we even check this at all.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Chris Thompson
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I86f8b891b6f52491aa9442152f2a711f559da83d
    Gerrit-Change-Number: 6892234
    Gerrit-PatchSet: 3
    Gerrit-Owner: Hubert Chao <hc...@chromium.org>
    Gerrit-Reviewer: Chris Thompson <cth...@chromium.org>
    Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
    Gerrit-CC: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Attention: Chris Thompson <cth...@chromium.org>
    Gerrit-Comment-Date: Fri, 29 Aug 2025 02:19:48 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Chris Thompson <cth...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Chris Thompson (Gerrit)

    unread,
    Aug 29, 2025, 12:15:55 AM (11 days ago) Aug 29
    to Hubert Chao, Chromium LUCI CQ, chromium...@chromium.org, Hiroki Nakagawa, alexmo...@chromium.org, blink-work...@chromium.org, creis...@chromium.org, derinel+wat...@google.com, fenced-fra...@chromium.org, horo+...@chromium.org, ipc-securi...@chromium.org, kinuko+ser...@chromium.org, kinuko...@chromium.org, navigation...@chromium.org, net-r...@chromium.org, network-ser...@chromium.org, servicewor...@chromium.org, shimazu+se...@chromium.org, webauthn...@chromium.org
    Attention needed from Hubert Chao

    Chris Thompson voted and added 1 comment

    Votes added by Chris Thompson

    Code-Review+1

    1 comment

    File services/network/websocket.cc
    Chris Thompson

    Question: what exactly is targetAddressSpace used for?

    I'm also not sure what that bit of code is doing, but agreed that it seems to be preflights only. At this point in the code in CheckInternal() the `required_address_space` parameter should what is actually has the value that was plumbed through from the fetch() call if the targetAddressSpace option was set.

    Is the worry that: [...]

    Yeah the idea is to avoid allowing it to be a bypass of mixed content blocking by enforcing that the resource response was actually from the intended address space.

    (I can investigate this part more tomorrow.)

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Hubert Chao
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I86f8b891b6f52491aa9442152f2a711f559da83d
    Gerrit-Change-Number: 6892234
    Gerrit-PatchSet: 4
    Gerrit-Owner: Hubert Chao <hc...@chromium.org>
    Gerrit-Reviewer: Chris Thompson <cth...@chromium.org>
    Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
    Gerrit-CC: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Attention: Hubert Chao <hc...@chromium.org>
    Gerrit-Comment-Date: Fri, 29 Aug 2025 04:15:41 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    Comment-In-Reply-To: Hubert Chao <hc...@chromium.org>
    Comment-In-Reply-To: Chris Thompson <cth...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Hubert Chao (Gerrit)

    unread,
    Aug 29, 2025, 8:22:23 AM (10 days ago) Aug 29
    to Chris Thompson, Chromium LUCI CQ, chromium...@chromium.org, Hiroki Nakagawa, alexmo...@chromium.org, blink-work...@chromium.org, creis...@chromium.org, derinel+wat...@google.com, fenced-fra...@chromium.org, horo+...@chromium.org, ipc-securi...@chromium.org, kinuko+ser...@chromium.org, kinuko...@chromium.org, navigation...@chromium.org, net-r...@chromium.org, network-ser...@chromium.org, servicewor...@chromium.org, shimazu+se...@chromium.org, webauthn...@chromium.org
    Attention needed from Chris Thompson

    Hubert Chao added 1 comment

    File services/network/websocket.cc
    Hubert Chao

    Question: what exactly is targetAddressSpace used for?

    I'm also not sure what that bit of code is doing, but agreed that it seems to be preflights only. At this point in the code in CheckInternal() the `required_address_space` parameter should what is actually has the value that was plumbed through from the fetch() call if the targetAddressSpace option was set.

    I think I have a working theory (that apparently I thought about while I was sleeping last night): `target_ip_address_space` is what allows the CORS preflight request to pass LNA checks; otherwise the preflight request itself would be blocked.

    I'm not 100% sure about this, as I can't figure out where this is set; what I might do later is to try to delete `target_ip_address_space` from `network::ResourceRequest` and see what code falls out.

    Is the worry that: [...]

    Yeah the idea is to avoid allowing it to be a bypass of mixed content blocking by enforcing that the resource response was actually from the intended address space.

    (I can investigate this part more tomorrow.)

    SG

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Chris Thompson
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I86f8b891b6f52491aa9442152f2a711f559da83d
    Gerrit-Change-Number: 6892234
    Gerrit-PatchSet: 4
    Gerrit-Owner: Hubert Chao <hc...@chromium.org>
    Gerrit-Reviewer: Chris Thompson <cth...@chromium.org>
    Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
    Gerrit-CC: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Attention: Chris Thompson <cth...@chromium.org>
    Gerrit-Comment-Date: Fri, 29 Aug 2025 12:22:17 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Chris Thompson (Gerrit)

    unread,
    Aug 29, 2025, 1:21:47 PM (10 days ago) Aug 29
    to Hubert Chao, Chromium LUCI CQ, chromium...@chromium.org, Hiroki Nakagawa, alexmo...@chromium.org, blink-work...@chromium.org, creis...@chromium.org, derinel+wat...@google.com, fenced-fra...@chromium.org, horo+...@chromium.org, ipc-securi...@chromium.org, kinuko+ser...@chromium.org, kinuko...@chromium.org, navigation...@chromium.org, net-r...@chromium.org, network-ser...@chromium.org, servicewor...@chromium.org, shimazu+se...@chromium.org, webauthn...@chromium.org
    Attention needed from Hubert Chao

    Chris Thompson added 1 comment

    File services/network/websocket.cc
    Chris Thompson

    Digging into this: I think the only case that is potentially interesting is the `.local` exception, but it is of very limited use as a mixed content bypass because an attacker can't rely on having a .local domain resolve to a public address without already having a foothold on the local network (they don't recurse into public DNS). Filed crbug.com/441900736 to track that.

    (The fetch() targetAddressSpace option is already double checked in PrivateNetworkAccessChecker, and private IP literals definitionally always match.)

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Hubert Chao
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I86f8b891b6f52491aa9442152f2a711f559da83d
    Gerrit-Change-Number: 6892234
    Gerrit-PatchSet: 4
    Gerrit-Owner: Hubert Chao <hc...@chromium.org>
    Gerrit-Reviewer: Chris Thompson <cth...@chromium.org>
    Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
    Gerrit-CC: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Attention: Hubert Chao <hc...@chromium.org>
    Gerrit-Comment-Date: Fri, 29 Aug 2025 17:21:38 +0000
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Hubert Chao (Gerrit)

    unread,
    Sep 1, 2025, 3:08:22 PM (7 days ago) Sep 1
    to Chris Thompson, Chromium LUCI CQ, chromium...@chromium.org, Hiroki Nakagawa, alexmo...@chromium.org, blink-work...@chromium.org, creis...@chromium.org, derinel+wat...@google.com, fenced-fra...@chromium.org, horo+...@chromium.org, ipc-securi...@chromium.org, kinuko+ser...@chromium.org, kinuko...@chromium.org, navigation...@chromium.org, net-r...@chromium.org, network-ser...@chromium.org, servicewor...@chromium.org, shimazu+se...@chromium.org, webauthn...@chromium.org

    Hubert Chao added 1 comment

    File services/network/websocket.cc
    Line 258, Patchset 3: PrivateNetworkAccessChecker checker(
    request->url(),
    /*target_ip_address_space*/ network::mojom::IPAddressSpace::kUnknown,
    request->initiator(),
    /*required_ip_address_space*/ network::mojom::IPAddressSpace::kUnknown,
    impl_->client_security_state_.get(), impl_->options_);
    Chris Thompson . resolved
    Hubert Chao

    Digging into this: I think the only case that is potentially interesting is the `.local` exception, but it is of very limited use as a mixed content bypass because an attacker can't rely on having a .local domain resolve to a public address without already having a foothold on the local network (they don't recurse into public DNS). Filed crbug.com/441900736 to track that.

    SG.

    I added the comment about why `target_ip_address_space` is `kUnknown`, I think next week I'm going to try to start removing the preflight code so we don't get confused again.

    Open in Gerrit

    Related details

    Attention set is empty
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    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: I86f8b891b6f52491aa9442152f2a711f559da83d
    Gerrit-Change-Number: 6892234
    Gerrit-PatchSet: 5
    Gerrit-Owner: Hubert Chao <hc...@chromium.org>
    Gerrit-Reviewer: Chris Thompson <cth...@chromium.org>
    Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
    Gerrit-CC: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Comment-Date: Mon, 01 Sep 2025 19:08:17 +0000
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Hubert Chao (Gerrit)

    unread,
    Sep 1, 2025, 3:11:04 PM (7 days ago) Sep 1
    to Chromium IPC Reviews, Camille Lamy, Nina Satragno, Adam Rice, Chris Thompson, Chromium LUCI CQ, chromium...@chromium.org, Hiroki Nakagawa, alexmo...@chromium.org, blink-work...@chromium.org, creis...@chromium.org, derinel+wat...@google.com, fenced-fra...@chromium.org, horo+...@chromium.org, ipc-securi...@chromium.org, kinuko+ser...@chromium.org, kinuko...@chromium.org, navigation...@chromium.org, net-r...@chromium.org, network-ser...@chromium.org, servicewor...@chromium.org, shimazu+se...@chromium.org, webauthn...@chromium.org
    Attention needed from Adam Rice, Camille Lamy, Chromium IPC Reviews and Nina Satragno

    Hubert Chao added 1 comment

    Patchset-level comments
    File-level comment, Patchset 5 (Latest):
    Hubert Chao . resolved

    +ipc-security-review: network_context.mojom

    +ricea: services/network/, content/browser/websockets

    +clamy: content/

    +nsatragno: device/

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Adam Rice
    • Camille Lamy
    • Chromium IPC Reviews
    • Nina Satragno
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    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: I86f8b891b6f52491aa9442152f2a711f559da83d
    Gerrit-Change-Number: 6892234
    Gerrit-PatchSet: 5
    Gerrit-Owner: Hubert Chao <hc...@chromium.org>
    Gerrit-Reviewer: Adam Rice <ri...@chromium.org>
    Gerrit-Reviewer: Camille Lamy <cl...@chromium.org>
    Gerrit-Reviewer: Chris Thompson <cth...@chromium.org>
    Gerrit-Reviewer: Chromium IPC Reviews <chrome-ip...@google.com>
    Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
    Gerrit-Reviewer: Nina Satragno <nsat...@chromium.org>
    Gerrit-CC: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-Attention: Nina Satragno <nsat...@chromium.org>
    Gerrit-Attention: Camille Lamy <cl...@chromium.org>
    Gerrit-Attention: Chromium IPC Reviews <chrome-ip...@google.com>
    Gerrit-Attention: Adam Rice <ri...@chromium.org>
    Gerrit-Comment-Date: Mon, 01 Sep 2025 19:10:55 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    gwsq (Gerrit)

    unread,
    Sep 1, 2025, 3:15:23 PM (7 days ago) Sep 1
    to Hubert Chao, Chromium IPC Reviews, Dominic Farolino, Camille Lamy, Nina Satragno, Adam Rice, Chris Thompson, Chromium LUCI CQ, chromium...@chromium.org, Hiroki Nakagawa, alexmo...@chromium.org, blink-work...@chromium.org, creis...@chromium.org, derinel+wat...@google.com, fenced-fra...@chromium.org, horo+...@chromium.org, ipc-securi...@chromium.org, kinuko+ser...@chromium.org, kinuko...@chromium.org, navigation...@chromium.org, net-r...@chromium.org, network-ser...@chromium.org, servicewor...@chromium.org, shimazu+se...@chromium.org, webauthn...@chromium.org
    Attention needed from Adam Rice, Camille Lamy, Dominic Farolino and Nina Satragno

    Message from gwsq

    WARNING: gwsq was unable to find a reviewer who is not on vacation. As a fallback, gwsq is ignoring vacations and assigning d...@chromium.org.
    WARNING: gwsq was unable to find a reviewer who is not on vacation. As a fallback, gwsq is ignoring vacations and assigning d...@chromium.org.
    From googleclient/chrome/chromium_gwsq/ipc/config.gwsq:
    IPC: cl...@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): cl...@chromium.org, d...@chromium.org


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

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Adam Rice
    • Camille Lamy
    • Dominic Farolino
    • Nina Satragno
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    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: I86f8b891b6f52491aa9442152f2a711f559da83d
    Gerrit-Change-Number: 6892234
    Gerrit-PatchSet: 5
    Gerrit-Owner: Hubert Chao <hc...@chromium.org>
    Gerrit-Reviewer: Adam Rice <ri...@chromium.org>
    Gerrit-Reviewer: Camille Lamy <cl...@chromium.org>
    Gerrit-Reviewer: Chris Thompson <cth...@chromium.org>
    Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
    Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
    Gerrit-Reviewer: Nina Satragno <nsat...@chromium.org>
    Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
    Gerrit-CC: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-CC: gwsq
    Gerrit-Attention: Nina Satragno <nsat...@chromium.org>
    Gerrit-Attention: Camille Lamy <cl...@chromium.org>
    Gerrit-Attention: Adam Rice <ri...@chromium.org>
    Gerrit-Attention: Dominic Farolino <d...@chromium.org>
    Gerrit-Comment-Date: Mon, 01 Sep 2025 19:14:50 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Camille Lamy (Gerrit)

    unread,
    Sep 2, 2025, 8:45:38 AM (6 days ago) Sep 2
    to Hubert Chao, Chromium IPC Reviews, Dominic Farolino, Nina Satragno, Adam Rice, Chris Thompson, Chromium LUCI CQ, chromium...@chromium.org, Hiroki Nakagawa, alexmo...@chromium.org, blink-work...@chromium.org, creis...@chromium.org, derinel+wat...@google.com, fenced-fra...@chromium.org, horo+...@chromium.org, ipc-securi...@chromium.org, kinuko+ser...@chromium.org, kinuko...@chromium.org, navigation...@chromium.org, net-r...@chromium.org, network-ser...@chromium.org, servicewor...@chromium.org, shimazu+se...@chromium.org, webauthn...@chromium.org
    Attention needed from Adam Rice, Dominic Farolino, Hubert Chao and Nina Satragno

    Camille Lamy voted and added 1 comment

    Votes added by Camille Lamy

    Code-Review+1

    1 comment

    Patchset-level comments
    Camille Lamy . resolved

    Thanks! Lgtm

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Adam Rice
    • Dominic Farolino
    • Hubert Chao
    • Nina Satragno
    Gerrit-Attention: Hubert Chao <hc...@chromium.org>
    Gerrit-Attention: Adam Rice <ri...@chromium.org>
    Gerrit-Attention: Dominic Farolino <d...@chromium.org>
    Gerrit-Comment-Date: Tue, 02 Sep 2025 12:45:23 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Nina Satragno (Gerrit)

    unread,
    Sep 2, 2025, 11:11:34 AM (6 days ago) Sep 2
    to Hubert Chao, Camille Lamy, Chromium IPC Reviews, Dominic Farolino, Adam Rice, Chris Thompson, Chromium LUCI CQ, chromium...@chromium.org, Hiroki Nakagawa, alexmo...@chromium.org, blink-work...@chromium.org, creis...@chromium.org, derinel+wat...@google.com, fenced-fra...@chromium.org, horo+...@chromium.org, ipc-securi...@chromium.org, kinuko+ser...@chromium.org, kinuko...@chromium.org, navigation...@chromium.org, net-r...@chromium.org, network-ser...@chromium.org, servicewor...@chromium.org, shimazu+se...@chromium.org, webauthn...@chromium.org
    Attention needed from Adam Rice, Dominic Farolino and Hubert Chao

    Nina Satragno voted and added 1 comment

    Votes added by Nina Satragno

    Code-Review+1

    1 comment

    Patchset-level comments
    File-level comment, Patchset 5:
    Nina Satragno . resolved

    /device/fido lgtm

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Adam Rice
    • Dominic Farolino
    • Hubert Chao
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement satisfiedCode-Review
    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: I86f8b891b6f52491aa9442152f2a711f559da83d
    Gerrit-Change-Number: 6892234
    Gerrit-PatchSet: 6
    Gerrit-Owner: Hubert Chao <hc...@chromium.org>
    Gerrit-Reviewer: Adam Rice <ri...@chromium.org>
    Gerrit-Reviewer: Camille Lamy <cl...@chromium.org>
    Gerrit-Reviewer: Chris Thompson <cth...@chromium.org>
    Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
    Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
    Gerrit-Reviewer: Nina Satragno <nsat...@chromium.org>
    Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
    Gerrit-CC: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-CC: gwsq
    Gerrit-Attention: Hubert Chao <hc...@chromium.org>
    Gerrit-Attention: Adam Rice <ri...@chromium.org>
    Gerrit-Attention: Dominic Farolino <d...@chromium.org>
    Gerrit-Comment-Date: Tue, 02 Sep 2025 15:11:27 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Dominic Farolino (Gerrit)

    unread,
    Sep 2, 2025, 1:16:10 PM (6 days ago) Sep 2
    to Hubert Chao, Nina Satragno, Camille Lamy, Chromium IPC Reviews, Adam Rice, Chris Thompson, Chromium LUCI CQ, chromium...@chromium.org, Hiroki Nakagawa, alexmo...@chromium.org, blink-work...@chromium.org, creis...@chromium.org, derinel+wat...@google.com, fenced-fra...@chromium.org, horo+...@chromium.org, ipc-securi...@chromium.org, kinuko+ser...@chromium.org, kinuko...@chromium.org, navigation...@chromium.org, net-r...@chromium.org, network-ser...@chromium.org, servicewor...@chromium.org, shimazu+se...@chromium.org, webauthn...@chromium.org
    Attention needed from Adam Rice and Hubert Chao

    Dominic Farolino voted Code-Review+1

    Code-Review+1
    Open in Gerrit

    Related details

    Attention is currently required from:
    • Adam Rice
    • Hubert Chao
    Gerrit-Comment-Date: Tue, 02 Sep 2025 17:15:58 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Adam Rice (Gerrit)

    unread,
    Sep 4, 2025, 10:13:45 AM (4 days ago) Sep 4
    to Hubert Chao, Dominic Farolino, Nina Satragno, Camille Lamy, Chromium IPC Reviews, Chris Thompson, Chromium LUCI CQ, chromium...@chromium.org, Hiroki Nakagawa, alexmo...@chromium.org, blink-work...@chromium.org, creis...@chromium.org, derinel+wat...@google.com, fenced-fra...@chromium.org, horo+...@chromium.org, ipc-securi...@chromium.org, kinuko+ser...@chromium.org, kinuko...@chromium.org, navigation...@chromium.org, net-r...@chromium.org, network-ser...@chromium.org, servicewor...@chromium.org, shimazu+se...@chromium.org, webauthn...@chromium.org
    Attention needed from Hubert Chao

    Adam Rice voted and added 5 comments

    Votes added by Adam Rice

    Code-Review+1

    5 comments

    Patchset-level comments
    File-level comment, Patchset 8 (Latest):
    Adam Rice . resolved

    lgtm with nits

    File content/browser/websockets/websocket_connector_impl.h
    Line 80, Patchset 8 (Latest): network::mojom::ClientSecurityStatePtr client_security_state_;
    Adam Rice . unresolved

    This can probably be `const` too.

    File services/network/private_network_access_checker.cc
    Line 72, Patchset 8 (Latest): DCHECK_EQ(target_address_space_, mojom::IPAddressSpace::kUnknown) << url;
    Adam Rice . unresolved

    This looks like a cheap comparison, and so should be `CHECK()` according to https://chromium.googlesource.com/chromium/src/+/main/styleguide/c++/c++.md#check_dcheck_and-notreached

    File services/network/websocket.h
    Line 235, Patchset 8 (Latest): network::mojom::ClientSecurityStatePtr client_security_state_;
    Adam Rice . unresolved

    I think this isn't modified after construction and so should be const.

    File services/network/websocket.cc
    Line 271, Patchset 8 (Latest): /*target_ip_address_space*/ network::mojom::IPAddressSpace::kUnknown,
    Adam Rice . unresolved

    Nit: the standard format has an `=`, ie. `/*target_ip_address_space=*/`.

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Hubert Chao
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement is not satisfiedNo-Unresolved-Comments
    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: I86f8b891b6f52491aa9442152f2a711f559da83d
    Gerrit-Change-Number: 6892234
    Gerrit-PatchSet: 8
    Gerrit-Owner: Hubert Chao <hc...@chromium.org>
    Gerrit-Reviewer: Adam Rice <ri...@chromium.org>
    Gerrit-Reviewer: Camille Lamy <cl...@chromium.org>
    Gerrit-Reviewer: Chris Thompson <cth...@chromium.org>
    Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
    Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
    Gerrit-Reviewer: Nina Satragno <nsat...@chromium.org>
    Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
    Gerrit-CC: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-CC: gwsq
    Gerrit-Attention: Hubert Chao <hc...@chromium.org>
    Gerrit-Comment-Date: Thu, 04 Sep 2025 14:13:08 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Hubert Chao (Gerrit)

    unread,
    Sep 4, 2025, 11:06:43 AM (4 days ago) Sep 4
    to Adam Rice, Dominic Farolino, Nina Satragno, Camille Lamy, Chromium IPC Reviews, Chris Thompson, Chromium LUCI CQ, chromium...@chromium.org, Hiroki Nakagawa, alexmo...@chromium.org, blink-work...@chromium.org, creis...@chromium.org, derinel+wat...@google.com, fenced-fra...@chromium.org, horo+...@chromium.org, ipc-securi...@chromium.org, kinuko+ser...@chromium.org, kinuko...@chromium.org, navigation...@chromium.org, net-r...@chromium.org, network-ser...@chromium.org, servicewor...@chromium.org, shimazu+se...@chromium.org, webauthn...@chromium.org

    Hubert Chao added 4 comments

    File content/browser/websockets/websocket_connector_impl.h
    Line 80, Patchset 8: network::mojom::ClientSecurityStatePtr client_security_state_;
    Adam Rice . resolved

    This can probably be `const` too.

    Hubert Chao

    Done

    File services/network/private_network_access_checker.cc
    Line 72, Patchset 8: DCHECK_EQ(target_address_space_, mojom::IPAddressSpace::kUnknown) << url;
    Adam Rice . resolved

    This looks like a cheap comparison, and so should be `CHECK()` according to https://chromium.googlesource.com/chromium/src/+/main/styleguide/c++/c++.md#check_dcheck_and-notreached

    Hubert Chao

    Done

    File services/network/websocket.h
    Line 235, Patchset 8: network::mojom::ClientSecurityStatePtr client_security_state_;
    Adam Rice . resolved

    I think this isn't modified after construction and so should be const.

    Hubert Chao

    Done

    File services/network/websocket.cc
    Line 271, Patchset 8: /*target_ip_address_space*/ network::mojom::IPAddressSpace::kUnknown,
    Adam Rice . resolved

    Nit: the standard format has an `=`, ie. `/*target_ip_address_space=*/`.

    Hubert Chao

    Done

    Open in Gerrit

    Related details

    Attention set is empty
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    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: I86f8b891b6f52491aa9442152f2a711f559da83d
    Gerrit-Change-Number: 6892234
    Gerrit-PatchSet: 9
    Gerrit-Owner: Hubert Chao <hc...@chromium.org>
    Gerrit-Reviewer: Adam Rice <ri...@chromium.org>
    Gerrit-Reviewer: Camille Lamy <cl...@chromium.org>
    Gerrit-Reviewer: Chris Thompson <cth...@chromium.org>
    Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
    Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
    Gerrit-Reviewer: Nina Satragno <nsat...@chromium.org>
    Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
    Gerrit-CC: Hiroki Nakagawa <nhi...@chromium.org>
    Gerrit-CC: gwsq
    Gerrit-Comment-Date: Thu, 04 Sep 2025 15:06:33 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Adam Rice <ri...@chromium.org>
    satisfied_requirement
    open
    diffy

    Hubert Chao (Gerrit)

    unread,
    Sep 4, 2025, 11:06:57 AM (4 days ago) Sep 4
    to Adam Rice, Dominic Farolino, Nina Satragno, Camille Lamy, Chromium IPC Reviews, Chris Thompson, Chromium LUCI CQ, chromium...@chromium.org, Hiroki Nakagawa, alexmo...@chromium.org, blink-work...@chromium.org, creis...@chromium.org, derinel+wat...@google.com, fenced-fra...@chromium.org, horo+...@chromium.org, ipc-securi...@chromium.org, kinuko+ser...@chromium.org, kinuko...@chromium.org, navigation...@chromium.org, net-r...@chromium.org, network-ser...@chromium.org, servicewor...@chromium.org, shimazu+se...@chromium.org, webauthn...@chromium.org

    Hubert Chao voted Commit-Queue+2

    Commit-Queue+2
    Gerrit-Comment-Date: Thu, 04 Sep 2025 15:06:47 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    open
    diffy

    Chromium LUCI CQ (Gerrit)

    unread,
    Sep 4, 2025, 12:02:57 PM (4 days ago) Sep 4
    to Hubert Chao, Adam Rice, Dominic Farolino, Nina Satragno, Camille Lamy, Chromium IPC Reviews, Chris Thompson, chromium...@chromium.org, Hiroki Nakagawa, alexmo...@chromium.org, blink-work...@chromium.org, creis...@chromium.org, derinel+wat...@google.com, fenced-fra...@chromium.org, horo+...@chromium.org, ipc-securi...@chromium.org, kinuko+ser...@chromium.org, kinuko...@chromium.org, navigation...@chromium.org, net-r...@chromium.org, network-ser...@chromium.org, servicewor...@chromium.org, shimazu+se...@chromium.org, webauthn...@chromium.org

    Chromium LUCI CQ submitted the change with unreviewed changes

    Unreviewed changes

    8 is the latest approved patch-set.
    The change was submitted with unreviewed changes in the following files:

    ```
    The name of the file: services/network/private_network_access_checker.cc
    Insertions: 1, Deletions: 1.

    @@ -69,7 +69,7 @@
    // No client security state means PNA is implicitly disabled. A policy of
    // `kAllow` means PNA is explicitly disabled. In both cases, the target IP
    // address space should not be set on the request.
    - DCHECK_EQ(target_address_space_, mojom::IPAddressSpace::kUnknown) << url;
    + CHECK_EQ(target_address_space_, mojom::IPAddressSpace::kUnknown) << url;
    }
    }

    ```
    ```
    The name of the file: content/browser/websockets/websocket_connector_impl.h
    Insertions: 1, Deletions: 1.

    @@ -77,7 +77,7 @@
    const int frame_id_;
    const url::Origin origin_;
    const net::IsolationInfo isolation_info_;
    - network::mojom::ClientSecurityStatePtr client_security_state_;
    + const network::mojom::ClientSecurityStatePtr client_security_state_;
    };

    } // namespace content
    ```
    ```
    The name of the file: services/network/websocket.cc
    Insertions: 2, Deletions: 2.

    @@ -268,9 +268,9 @@
    // checks.
    PrivateNetworkAccessChecker checker(
    request->url(),
    - /*target_ip_address_space*/ network::mojom::IPAddressSpace::kUnknown,
    + /*target_ip_address_space=*/network::mojom::IPAddressSpace::kUnknown,
    request->initiator(),
    - /*required_ip_address_space*/ network::mojom::IPAddressSpace::kUnknown,
    + /*required_ip_address_space=*/network::mojom::IPAddressSpace::kUnknown,
    impl_->client_security_state_.get(), impl_->options_);

    PrivateNetworkAccessCheckResult check_result = checker.Check(info);
    ```
    ```
    The name of the file: services/network/websocket.h
    Insertions: 1, Deletions: 1.

    @@ -232,7 +232,7 @@
    // The web origin to use for the WebSocket.
    const url::Origin origin_;

    - network::mojom::ClientSecurityStatePtr client_security_state_;
    + const network::mojom::ClientSecurityStatePtr client_security_state_;

    // For 3rd-party cookie permission checking.
    net::SiteForCookies site_for_cookies_;
    ```

    Change information

    Commit message:
    [LNA] Run standard LNA check on WebSocket connections

    Change WebSocket::WebSocketEventHandler::OnURLRequestConnected to run a
    proper LNA check (as opposed to the previous CL's bad check of if the
    address space is kLocal or kLoopback).

    This requires threading the client security state through from all of
    the various places websockets can be created all the way through the
    network context into services/network/websocket.cc

    Change the basic test in chrome/browser/net/websocket_browsertest.cc to
    ensure that this works. Future CLs will add more tests with websockets
    being created in various workers (dedicated, shared, service).
    Bug: 421156866
    Change-Id: I86f8b891b6f52491aa9442152f2a711f559da83d
    Reviewed-by: Chris Thompson <cth...@chromium.org>
    Commit-Queue: Hubert Chao <hc...@chromium.org>
    Reviewed-by: Dominic Farolino <d...@chromium.org>
    Reviewed-by: Nina Satragno <nsat...@chromium.org>
    Reviewed-by: Adam Rice <ri...@chromium.org>
    Reviewed-by: Camille Lamy <cl...@chromium.org>
    Cr-Commit-Position: refs/heads/main@{#1510949}
    Files:
    • M chrome/browser/net/websocket_browsertest.cc
    • A chrome/test/data/websocket/connect_to_as_public_address.html
    • A chrome/test/data/websocket/connect_to_as_public_address.html.mock-http-headers
    • M content/browser/renderer_host/render_frame_host_impl.cc
    • M content/browser/service_worker/service_worker_host.cc
    • M content/browser/websockets/websocket_connector_impl.cc
    • M content/browser/websockets/websocket_connector_impl.h
    • M content/browser/worker_host/dedicated_worker_host.cc
    • M content/browser/worker_host/shared_worker_host.cc
    • M device/fido/cable/fido_tunnel_device.cc
    • M device/fido/cable/v2_authenticator.cc
    • M device/fido/cable/v2_test_util.cc
    • M device/fido/enclave/enclave_websocket_client.cc
    • M services/network/network_context.cc
    • M services/network/network_context.h
    • M services/network/private_network_access_checker.cc
    • M services/network/private_network_access_checker.h
    • M services/network/public/mojom/network_context.mojom
    • M services/network/test/test_network_context.h
    • M services/network/websocket.cc
    • M services/network/websocket.h
    • M services/network/websocket_factory.cc
    • M services/network/websocket_factory.h
    Change size: L
    Delta: 23 files changed, 216 insertions(+), 72 deletions(-)
    Branch: refs/heads/main
    Submit Requirements:
    • requirement satisfiedCode-Review: +1 by Nina Satragno, +1 by Chris Thompson, +1 by Adam Rice, +1 by Dominic Farolino, +1 by Camille Lamy
    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: I86f8b891b6f52491aa9442152f2a711f559da83d
    Gerrit-Change-Number: 6892234
    Gerrit-PatchSet: 10
    Gerrit-Owner: Hubert Chao <hc...@chromium.org>
    Gerrit-Reviewer: Adam Rice <ri...@chromium.org>
    Gerrit-Reviewer: Camille Lamy <cl...@chromium.org>
    Gerrit-Reviewer: Chris Thompson <cth...@chromium.org>
    Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
    Gerrit-Reviewer: Dominic Farolino <d...@chromium.org>
    Gerrit-Reviewer: Hubert Chao <hc...@chromium.org>
    Gerrit-Reviewer: Nina Satragno <nsat...@chromium.org>
    Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
    open
    diffy
    satisfied_requirement
    Reply all
    Reply to author
    Forward
    0 new messages