[Blink/Network] Support origin targeting for secure exemptions [chromium/src : main]

0 views
Skip to first unread message

Daniel Cheng (Gerrit)

unread,
Mar 31, 2026, 7:37:03 PM (4 days ago) Mar 31
to Duncan Mercer, Chromium Cookie Reviews, Daniel Cheng, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, dullweb...@chromium.org, msrame...@chromium.org, network-ser...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org
Attention needed from Chromium Cookie Reviews and Duncan Mercer

Daniel Cheng added 6 comments

Patchset-level comments
File-level comment, Patchset 11 (Latest):
Daniel Cheng . resolved

While I am an OWNER for everything, it would be best to have a network services owner that's familiar with cookies review this as well. I don't quite know the motivation here; I've mostly left questions about plumbing and such below.

File services/network/cookie_settings.h
Line 236, Patchset 11 (Latest): std::set<std::string, std::less<>> secure_origin_cookies_allowed_origins_;
Daniel Cheng . unresolved

I know it's inconsistent, but it seems like this should probably be an `absl::flat_hash_set`.

File services/network/cookie_settings.cc
Line 496, Patchset 11 (Latest): secure_origin_cookies_allowed_origins_.insert(origin.Serialize());
Daniel Cheng . unresolved

Do we want to only allow tuple origins here?

(I feel like we could potentially get into trouble if we ever inserted an opaque origin into this set–they serialize as "null"–though maybe some other part of the system would make sure this works out OK)

File services/network/public/mojom/cookie_manager.mojom
Line 36, Patchset 11 (Latest): // Origins that unconditionally allow cookies from secure origins.
Daniel Cheng . unresolved

Similar question about opaque origins: do we want to allow them? Filter them? say they're not legal to pass here? something else?

File third_party/blink/renderer/platform/weborigin/scheme_registry.h
Line 122, Patchset 11 (Latest): static bool ShouldTreatURLAsFirstPartyWhenTopLevelEmbeddingSecure(
Daniel Cheng . unresolved

I know this is missing a comment, but can we add one to this with the changes?

File third_party/blink/renderer/platform/weborigin/scheme_registry.cc
Line 101, Patchset 11 (Latest): URLSchemesSet first_party_when_top_level_with_secure_embedded_origins;
Daniel Cheng . unresolved

It's a bit weird to have this here; this thing contains "origins" but everything else is schemes, including the class itself (which is a "scheme registry").

Open in Gerrit

Related details

Attention is currently required from:
  • Chromium Cookie Reviews
  • Duncan Mercer
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: I7fe2a00e631513c6ebcdb5fb996914f5b48a9447
Gerrit-Change-Number: 7689068
Gerrit-PatchSet: 11
Gerrit-Owner: Duncan Mercer <mer...@google.com>
Gerrit-Reviewer: Chromium Cookie Reviews <chromium-co...@google.com>
Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
Gerrit-Reviewer: Duncan Mercer <mer...@google.com>
Gerrit-Attention: Duncan Mercer <mer...@google.com>
Gerrit-Attention: Chromium Cookie Reviews <chromium-co...@google.com>
Gerrit-Comment-Date: Tue, 31 Mar 2026 23:36:52 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

gwsq (Gerrit)

unread,
Mar 31, 2026, 7:41:33 PM (4 days ago) Mar 31
to Duncan Mercer, Chromium Cookie Reviews, Dylan Cutler, Daniel Cheng, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, dullweb...@chromium.org, msrame...@chromium.org, network-ser...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org
Attention needed from Duncan Mercer and Dylan Cutler

Message from gwsq

Reviewer source(s):
dylan...@google.com is from context(chrome/net/cookies/reviewers.gwsq)

Open in Gerrit

Related details

Attention is currently required from:
  • Duncan Mercer
  • Dylan Cutler
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: I7fe2a00e631513c6ebcdb5fb996914f5b48a9447
Gerrit-Change-Number: 7689068
Gerrit-PatchSet: 11
Gerrit-Owner: Duncan Mercer <mer...@google.com>
Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
Gerrit-Reviewer: Duncan Mercer <mer...@google.com>
Gerrit-Reviewer: Dylan Cutler <dylan...@google.com>
Gerrit-CC: Chromium Cookie Reviews <chromium-co...@google.com>
Gerrit-CC: gwsq
Gerrit-Attention: Duncan Mercer <mer...@google.com>
Gerrit-Attention: Dylan Cutler <dylan...@google.com>
Gerrit-Comment-Date: Tue, 31 Mar 2026 23:41:25 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Lily Chen (Gerrit)

unread,
Mar 31, 2026, 11:58:31 PM (3 days ago) Mar 31
to Duncan Mercer, Lily Chen, Dylan Cutler, Chromium Cookie Reviews, Daniel Cheng, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, dullweb...@chromium.org, msrame...@chromium.org, network-ser...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org
Attention needed from Daniel Cheng and Duncan Mercer

Lily Chen added 4 comments

Patchset-level comments
Daniel Cheng . resolved

While I am an OWNER for everything, it would be best to have a network services owner that's familiar with cookies review this as well. I don't quite know the motivation here; I've mostly left questions about plumbing and such below.

Lily Chen

I can review for //net/cookies/OWNERS since Duncan and I have chatted about this change. It's a temporary workaround to make the Lens UI work.

File services/network/cookie_settings.cc
Line 206, Patchset 11 (Latest): const net::SiteForCookies& site_for_cookies) const {
Lily Chen . unresolved

This should probably pass the top level origin in addition to SiteForCookies. Then line 210 should be:

```
if (secure_origin_cookies_allowed_schemes_.contains(
top_level_origin.scheme()) && !site_for_cookies.IsNull) {
return true;
}
```

and the secure_origin_cookies_allowed_origins_ can directly check the origin.

(In general, converting a SiteForCookies to an Origin is a pretty cursed thing to do, because they contain different subsets of info and represent different concepts.)

Line 496, Patchset 11 (Latest): secure_origin_cookies_allowed_origins_.insert(origin.Serialize());
Daniel Cheng . unresolved

Do we want to only allow tuple origins here?

(I feel like we could potentially get into trouble if we ever inserted an opaque origin into this set–they serialize as "null"–though maybe some other part of the system would make sure this works out OK)

Lily Chen

+1. I think this should only allow tuple origins, which have a well defined serialization.

File third_party/blink/public/web/web_security_policy.h
Line 71, Patchset 11 (Latest): // Like RegisterURLSchemeAsFirstPartyWhenTopLevelEmbeddingSecure, but limits
// the exception to a specific URL on the top-level scheme.
Lily Chen . unresolved

This shouldn't claim to operate on a per-URL level if it actually operates on origins.

Open in Gerrit

Related details

Attention is currently required from:
  • Daniel Cheng
  • Duncan Mercer
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: I7fe2a00e631513c6ebcdb5fb996914f5b48a9447
Gerrit-Change-Number: 7689068
Gerrit-PatchSet: 11
Gerrit-Owner: Duncan Mercer <mer...@google.com>
Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
Gerrit-Reviewer: Duncan Mercer <mer...@google.com>
Gerrit-Reviewer: Lily Chen <chl...@chromium.org>
Gerrit-CC: Chromium Cookie Reviews <chromium-co...@google.com>
Gerrit-CC: Dylan Cutler <dylan...@google.com>
Gerrit-CC: gwsq
Gerrit-Attention: Duncan Mercer <mer...@google.com>
Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
Gerrit-Comment-Date: Wed, 01 Apr 2026 03:58:25 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Daniel Cheng <dch...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Duncan Mercer (Gerrit)

unread,
Apr 1, 2026, 4:59:51 PM (3 days ago) Apr 1
to Lily Chen, Dylan Cutler, Chromium Cookie Reviews, Daniel Cheng, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, dullweb...@chromium.org, msrame...@chromium.org, network-ser...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org
Attention needed from Daniel Cheng and Lily Chen

Duncan Mercer added 7 comments

File services/network/cookie_settings.h
Line 236, Patchset 11: std::set<std::string, std::less<>> secure_origin_cookies_allowed_origins_;
Daniel Cheng . resolved

I know it's inconsistent, but it seems like this should probably be an `absl::flat_hash_set`.

Duncan Mercer

Done

File services/network/cookie_settings.cc
Line 206, Patchset 11: const net::SiteForCookies& site_for_cookies) const {
Lily Chen . resolved

This should probably pass the top level origin in addition to SiteForCookies. Then line 210 should be:

```
if (secure_origin_cookies_allowed_schemes_.contains(
top_level_origin.scheme()) && !site_for_cookies.IsNull) {
return true;
}
```

and the secure_origin_cookies_allowed_origins_ can directly check the origin.

(In general, converting a SiteForCookies to an Origin is a pretty cursed thing to do, because they contain different subsets of info and represent different concepts.)

Duncan Mercer

Done

Line 496, Patchset 11: secure_origin_cookies_allowed_origins_.insert(origin.Serialize());
Daniel Cheng . resolved

Do we want to only allow tuple origins here?

(I feel like we could potentially get into trouble if we ever inserted an opaque origin into this set–they serialize as "null"–though maybe some other part of the system would make sure this works out OK)

Lily Chen

+1. I think this should only allow tuple origins, which have a well defined serialization.

Duncan Mercer

Done

File services/network/public/mojom/cookie_manager.mojom
Line 36, Patchset 11: // Origins that unconditionally allow cookies from secure origins.
Daniel Cheng . resolved

Similar question about opaque origins: do we want to allow them? Filter them? say they're not legal to pass here? something else?

Duncan Mercer

Added a comment. I added logic to ignore them.

File third_party/blink/public/web/web_security_policy.h
Line 71, Patchset 11: // Like RegisterURLSchemeAsFirstPartyWhenTopLevelEmbeddingSecure, but limits

// the exception to a specific URL on the top-level scheme.
Lily Chen . resolved

This shouldn't claim to operate on a per-URL level if it actually operates on origins.

Duncan Mercer

I clarified the comment. Please lmk if you wanted me to change the function or parameters as well.

File third_party/blink/renderer/platform/weborigin/scheme_registry.h
Line 122, Patchset 11: static bool ShouldTreatURLAsFirstPartyWhenTopLevelEmbeddingSecure(
Daniel Cheng . resolved

I know this is missing a comment, but can we add one to this with the changes?

Duncan Mercer

Done

File third_party/blink/renderer/platform/weborigin/scheme_registry.cc
Line 101, Patchset 11: URLSchemesSet first_party_when_top_level_with_secure_embedded_origins;
Daniel Cheng . unresolved

It's a bit weird to have this here; this thing contains "origins" but everything else is schemes, including the class itself (which is a "scheme registry").

Duncan Mercer

Ah, true. I think theres two options that we could do instead:

1) Keep it in SchemeRegistry. This would allow us to reuse the existing plumbing since this is a temporary exception that should be cleaned up by end of Q2 once Lens moves completely to <webview>.
2) Create a new OriginRegistry. Define a new singleton in for origin-based policy overrides very similar to this scheme one. It might be a bit overkill for this temporary exception though.

Lmk which you think is best

Open in Gerrit

Related details

Attention is currently required from:
  • Daniel Cheng
  • Lily Chen
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: I7fe2a00e631513c6ebcdb5fb996914f5b48a9447
Gerrit-Change-Number: 7689068
Gerrit-PatchSet: 12
Gerrit-Owner: Duncan Mercer <mer...@google.com>
Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
Gerrit-Reviewer: Duncan Mercer <mer...@google.com>
Gerrit-Reviewer: Lily Chen <chl...@chromium.org>
Gerrit-CC: Chromium Cookie Reviews <chromium-co...@google.com>
Gerrit-CC: Dylan Cutler <dylan...@google.com>
Gerrit-CC: gwsq
Gerrit-Attention: Lily Chen <chl...@chromium.org>
Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
Gerrit-Comment-Date: Wed, 01 Apr 2026 20:59:42 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
Comment-In-Reply-To: Lily Chen <chl...@chromium.org>
Comment-In-Reply-To: Daniel Cheng <dch...@chromium.org>
satisfied_requirement
unsatisfied_requirement
open
diffy

Lily Chen (Gerrit)

unread,
Apr 2, 2026, 11:34:00 AM (2 days ago) Apr 2
to Duncan Mercer, Lily Chen, Dylan Cutler, Chromium Cookie Reviews, Daniel Cheng, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, jdh+wa...@chromium.org, njeunje+...@chromium.org, liu+wa...@chromium.org, svend+w...@chromium.org, ortuno+w...@chromium.org, amaliev+...@chromium.org, dullweb...@chromium.org, msrame...@chromium.org, network-ser...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org
Attention needed from Daniel Cheng and Duncan Mercer

Lily Chen added 6 comments

Commit Message
Line 9, Patchset 14 (Latest):This change updates WebSecurityPolicy to support origin targeting for secure embedder exceptions by allowing specific scheme and host pairs instead of applying globally to a scheme. It also migrates secure cookie exemptions in CookieManager and CookieSettings from scheme/host-based registration to url::Origin-based registration, enabling precise unscoped exemptions for secure origins like chrome-untrusted://lens.
Lily Chen . unresolved

Can you specify that this affects exemptions for third-party cookie blocking and SameSite cookies (as opposed to affecting the cookie origin itself, for example)? It's currently unclear from the context provided in this description.

Line 9, Patchset 14 (Latest):This change updates WebSecurityPolicy to support origin targeting for secure embedder exceptions by allowing specific scheme and host pairs instead of applying globally to a scheme. It also migrates secure cookie exemptions in CookieManager and CookieSettings from scheme/host-based registration to url::Origin-based registration, enabling precise unscoped exemptions for secure origins like chrome-untrusted://lens.
Lily Chen . unresolved

nit: wrap description to 72 chars.

File components/content_settings/core/browser/cookie_settings.cc
Line 260, Patchset 14 (Latest): return top_level_origin.scheme() == kChromeUIScheme &&
Lily Chen . unresolved

This should also check !site_for_cookies.IsNull(), to avoid changing behavior.

File components/content_settings/core/common/cookie_settings_base.h
Line 368, Patchset 14 (Latest): // This currently returns true if the `site_for_cookies` is a Chrome UI scheme
// URL and the `url` is secure.
Lily Chen . unresolved

nit: update comment

File services/network/cookie_access_delegate_impl.cc
Line 61, Patchset 14 (Latest):bool CookieAccessDelegateImpl::ShouldIgnoreSameSiteRestrictions(
Lily Chen . unresolved

This really should take the top_level_origin as well. (Making an origin out of site_for_cookies.RepresentativeUrl() is not really a sensible thing to do.)

Looks like both of the existing call sites have access to an IsolationInfo, from which you can get the top_level_origin.

File services/network/cookie_settings.h
Line 70, Patchset 14 (Latest): void set_secure_origin_cookies_allowed_origins(
Lily Chen . unresolved

nit: add a comment that opaque origins are skipped.

Open in Gerrit

Related details

Attention is currently required from:
  • Daniel Cheng
  • Duncan Mercer
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: I7fe2a00e631513c6ebcdb5fb996914f5b48a9447
Gerrit-Change-Number: 7689068
Gerrit-PatchSet: 14
Gerrit-Owner: Duncan Mercer <mer...@google.com>
Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
Gerrit-Reviewer: Duncan Mercer <mer...@google.com>
Gerrit-Reviewer: Lily Chen <chl...@chromium.org>
Gerrit-CC: Chromium Cookie Reviews <chromium-co...@google.com>
Gerrit-CC: Dylan Cutler <dylan...@google.com>
Gerrit-CC: gwsq
Gerrit-Attention: Duncan Mercer <mer...@google.com>
Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
Gerrit-Comment-Date: Thu, 02 Apr 2026 15:33:53 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Duncan Mercer (Gerrit)

unread,
Apr 2, 2026, 4:34:54 PM (2 days ago) Apr 2
to Lily Chen, Dylan Cutler, Chromium Cookie Reviews, Daniel Cheng, AyeAye, Chromium LUCI CQ, chromium...@chromium.org, jdh+wa...@chromium.org, njeunje+...@chromium.org, liu+wa...@chromium.org, svend+w...@chromium.org, ortuno+w...@chromium.org, amaliev+...@chromium.org, dullweb...@chromium.org, msrame...@chromium.org, network-ser...@chromium.org, blink-re...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, kinuko...@chromium.org
Attention needed from Daniel Cheng and Lily Chen

Duncan Mercer added 7 comments

Commit Message
Line 9, Patchset 14:This change updates WebSecurityPolicy to support origin targeting for secure embedder exceptions by allowing specific scheme and host pairs instead of applying globally to a scheme. It also migrates secure cookie exemptions in CookieManager and CookieSettings from scheme/host-based registration to url::Origin-based registration, enabling precise unscoped exemptions for secure origins like chrome-untrusted://lens.
Lily Chen . resolved

Can you specify that this affects exemptions for third-party cookie blocking and SameSite cookies (as opposed to affecting the cookie origin itself, for example)? It's currently unclear from the context provided in this description.

Duncan Mercer

Done

Line 9, Patchset 14:This change updates WebSecurityPolicy to support origin targeting for secure embedder exceptions by allowing specific scheme and host pairs instead of applying globally to a scheme. It also migrates secure cookie exemptions in CookieManager and CookieSettings from scheme/host-based registration to url::Origin-based registration, enabling precise unscoped exemptions for secure origins like chrome-untrusted://lens.
Lily Chen . resolved

nit: wrap description to 72 chars.

Duncan Mercer

Done

File components/content_settings/core/browser/cookie_settings.cc
Line 260, Patchset 14: return top_level_origin.scheme() == kChromeUIScheme &&
Lily Chen . resolved

This should also check !site_for_cookies.IsNull(), to avoid changing behavior.

Duncan Mercer

Done

File components/content_settings/core/common/cookie_settings_base.h
Line 368, Patchset 14: // This currently returns true if the `site_for_cookies` is a Chrome UI scheme

// URL and the `url` is secure.
Lily Chen . resolved

nit: update comment

Duncan Mercer

Done

File services/network/cookie_access_delegate_impl.cc
Line 61, Patchset 14:bool CookieAccessDelegateImpl::ShouldIgnoreSameSiteRestrictions(
Lily Chen . resolved

This really should take the top_level_origin as well. (Making an origin out of site_for_cookies.RepresentativeUrl() is not really a sensible thing to do.)

Looks like both of the existing call sites have access to an IsolationInfo, from which you can get the top_level_origin.

Duncan Mercer

Done

File services/network/cookie_settings.h
Line 70, Patchset 14: void set_secure_origin_cookies_allowed_origins(
Lily Chen . resolved

nit: add a comment that opaque origins are skipped.

Duncan Mercer

Done

File third_party/blink/renderer/platform/weborigin/scheme_registry.cc
Line 101, Patchset 11: URLSchemesSet first_party_when_top_level_with_secure_embedded_origins;
Daniel Cheng . resolved

It's a bit weird to have this here; this thing contains "origins" but everything else is schemes, including the class itself (which is a "scheme registry").

Duncan Mercer

Ah, true. I think theres two options that we could do instead:

1) Keep it in SchemeRegistry. This would allow us to reuse the existing plumbing since this is a temporary exception that should be cleaned up by end of Q2 once Lens moves completely to <webview>.
2) Create a new OriginRegistry. Define a new singleton in for origin-based policy overrides very similar to this scheme one. It might be a bit overkill for this temporary exception though.

Lmk which you think is best

Duncan Mercer

Talked offline. Given the temporary nature, will stick with option 1. However, using base::PassKey to avoid new callers and left a todo to cleanup.

Open in Gerrit

Related details

Attention is currently required from:
  • Daniel Cheng
  • Lily Chen
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement is not satisfiedCode-Owners
    • requirement is not satisfiedCode-Review
    • requirement is not satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I7fe2a00e631513c6ebcdb5fb996914f5b48a9447
    Gerrit-Change-Number: 7689068
    Gerrit-PatchSet: 17
    Gerrit-Owner: Duncan Mercer <mer...@google.com>
    Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
    Gerrit-Reviewer: Duncan Mercer <mer...@google.com>
    Gerrit-Reviewer: Lily Chen <chl...@chromium.org>
    Gerrit-CC: Chromium Cookie Reviews <chromium-co...@google.com>
    Gerrit-CC: Dylan Cutler <dylan...@google.com>
    Gerrit-CC: gwsq
    Gerrit-Attention: Lily Chen <chl...@chromium.org>
    Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
    Gerrit-Comment-Date: Thu, 02 Apr 2026 20:34:44 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    Comment-In-Reply-To: Lily Chen <chl...@chromium.org>
    Comment-In-Reply-To: Duncan Mercer <mer...@google.com>
    Comment-In-Reply-To: Daniel Cheng <dch...@chromium.org>
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy
    Reply all
    Reply to author
    Forward
    0 new messages