[DOM Storage] Replace string source with StorageAreaSource struct [chromium/src : main]

0 views
Skip to first unread message

Xiaohan Zhao (Gerrit)

unread,
Feb 24, 2026, 2:56:52 PMFeb 24
to Steve Becker, Evan Stade, Chromium IPC Reviews, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
Attention needed from Chromium IPC Reviews, Evan Stade and Steve Becker

Xiaohan Zhao added 1 comment

Patchset-level comments
File-level comment, Patchset 4 (Latest):
Xiaohan Zhao . resolved

Hi folks, please take a look when you have time. Thanks in advance for reviewing!

Open in Gerrit

Related details

Attention is currently required from:
  • Chromium IPC Reviews
  • Evan Stade
  • Steve Becker
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: I3cb2a79b41740bad0ca9f8fa60fad807f69c408b
Gerrit-Change-Number: 7597837
Gerrit-PatchSet: 4
Gerrit-Owner: Xiaohan Zhao <xiaoh...@microsoft.com>
Gerrit-Reviewer: Chromium IPC Reviews <chrome-ip...@google.com>
Gerrit-Reviewer: Evan Stade <evan...@microsoft.com>
Gerrit-Reviewer: Steve Becker <ste...@microsoft.com>
Gerrit-Reviewer: Xiaohan Zhao <xiaoh...@microsoft.com>
Gerrit-CC: Jerome Jiang <ji...@chromium.org>
Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
Gerrit-Attention: Evan Stade <evan...@microsoft.com>
Gerrit-Attention: Steve Becker <ste...@microsoft.com>
Gerrit-Attention: Chromium IPC Reviews <chrome-ip...@google.com>
Gerrit-Comment-Date: Tue, 24 Feb 2026 19:56:47 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

gwsq (Gerrit)

unread,
Feb 24, 2026, 2:59:29 PMFeb 24
to Xiaohan Zhao, Chromium IPC Reviews, Takashi Toyoshima, Steve Becker, Evan Stade, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
Attention needed from Evan Stade, Steve Becker and Takashi Toyoshima

Message from gwsq

From googleclient/chrome/chromium_gwsq/ipc/config.gwsq:
IPC: toyo...@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): toyo...@chromium.org


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

Open in Gerrit

Related details

Attention is currently required from:
  • Evan Stade
  • Steve Becker
  • Takashi Toyoshima
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: I3cb2a79b41740bad0ca9f8fa60fad807f69c408b
Gerrit-Change-Number: 7597837
Gerrit-PatchSet: 4
Gerrit-Owner: Xiaohan Zhao <xiaoh...@microsoft.com>
Gerrit-Reviewer: Evan Stade <evan...@microsoft.com>
Gerrit-Reviewer: Steve Becker <ste...@microsoft.com>
Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
Gerrit-Reviewer: Xiaohan Zhao <xiaoh...@microsoft.com>
Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
Gerrit-CC: Jerome Jiang <ji...@chromium.org>
Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
Gerrit-CC: gwsq
Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
Gerrit-Attention: Evan Stade <evan...@microsoft.com>
Gerrit-Attention: Steve Becker <ste...@microsoft.com>
Gerrit-Comment-Date: Tue, 24 Feb 2026 19:59:05 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Evan Stade (Gerrit)

unread,
Feb 24, 2026, 5:19:52 PMFeb 24
to Xiaohan Zhao, Chromium IPC Reviews, Takashi Toyoshima, Steve Becker, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
Attention needed from Steve Becker, Takashi Toyoshima and Xiaohan Zhao

Evan Stade added 2 comments

File third_party/blink/public/mojom/dom_storage/storage_area.mojom
Line 100, Patchset 4 (Latest): StorageAreaSource source)
Evan Stade . unresolved

probably ideal for all of these to be optional, i.e. `StorageAreaSource?`, since there are cases where we're passing an empty value.

File third_party/blink/renderer/modules/storage/cached_storage_area.cc
Line 177, Patchset 4 (Latest): String id = String::Number(base::RandUint64());
Evan Stade . unresolved

so while we're at it can we make this a `base::Token`? (In some cases one might want to use an `UnguessableToken`, but here we explicitly do not need use this for security, instead relying on the mojo pipes between renderer and browser to correctly direct information, so it's better not to imply the unguessable nature of the token is a security measure.)

Open in Gerrit

Related details

Attention is currently required from:
  • Steve Becker
  • Takashi Toyoshima
  • Xiaohan Zhao
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: I3cb2a79b41740bad0ca9f8fa60fad807f69c408b
    Gerrit-Change-Number: 7597837
    Gerrit-PatchSet: 4
    Gerrit-Owner: Xiaohan Zhao <xiaoh...@microsoft.com>
    Gerrit-Reviewer: Evan Stade <evan...@microsoft.com>
    Gerrit-Reviewer: Steve Becker <ste...@microsoft.com>
    Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
    Gerrit-Reviewer: Xiaohan Zhao <xiaoh...@microsoft.com>
    Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
    Gerrit-CC: Jerome Jiang <ji...@chromium.org>
    Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
    Gerrit-CC: gwsq
    Gerrit-Attention: Xiaohan Zhao <xiaoh...@microsoft.com>
    Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
    Gerrit-Attention: Steve Becker <ste...@microsoft.com>
    Gerrit-Comment-Date: Tue, 24 Feb 2026 22:19:44 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Evan Stade (Gerrit)

    unread,
    Feb 24, 2026, 5:19:59 PMFeb 24
    to Xiaohan Zhao, Chromium IPC Reviews, Takashi Toyoshima, Steve Becker, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
    Attention needed from Steve Becker, Takashi Toyoshima and Xiaohan Zhao

    Evan Stade added 1 comment

    Patchset-level comments
    Evan Stade . resolved

    and thanks for doing this!

    Gerrit-Comment-Date: Tue, 24 Feb 2026 22:19:53 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: No
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Xiaohan Zhao (Gerrit)

    unread,
    Feb 27, 2026, 2:24:39 PMFeb 27
    to Chromium IPC Reviews, Takashi Toyoshima, Steve Becker, Evan Stade, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
    Attention needed from Evan Stade, Steve Becker and Takashi Toyoshima

    Xiaohan Zhao added 2 comments

    File third_party/blink/public/mojom/dom_storage/storage_area.mojom
    Line 100, Patchset 4: StorageAreaSource source)
    Evan Stade . resolved

    probably ideal for all of these to be optional, i.e. `StorageAreaSource?`, since there are cases where we're passing an empty value.

    Xiaohan Zhao

    Done

    File third_party/blink/renderer/modules/storage/cached_storage_area.cc
    Line 177, Patchset 4: String id = String::Number(base::RandUint64());
    Evan Stade . resolved

    so while we're at it can we make this a `base::Token`? (In some cases one might want to use an `UnguessableToken`, but here we explicitly do not need use this for security, instead relying on the mojo pipes between renderer and browser to correctly direct information, so it's better not to imply the unguessable nature of the token is a security measure.)

    Xiaohan Zhao

    Done

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Evan Stade
    • Steve Becker
    • Takashi Toyoshima
    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: I3cb2a79b41740bad0ca9f8fa60fad807f69c408b
      Gerrit-Change-Number: 7597837
      Gerrit-PatchSet: 6
      Gerrit-Owner: Xiaohan Zhao <xiaoh...@microsoft.com>
      Gerrit-Reviewer: Evan Stade <evan...@microsoft.com>
      Gerrit-Reviewer: Steve Becker <ste...@microsoft.com>
      Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
      Gerrit-Reviewer: Xiaohan Zhao <xiaoh...@microsoft.com>
      Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
      Gerrit-CC: Jerome Jiang <ji...@chromium.org>
      Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
      Gerrit-CC: gwsq
      Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
      Gerrit-Attention: Evan Stade <evan...@microsoft.com>
      Gerrit-Attention: Steve Becker <ste...@microsoft.com>
      Gerrit-Comment-Date: Fri, 27 Feb 2026 19:24:33 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Evan Stade <evan...@microsoft.com>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Evan Stade (Gerrit)

      unread,
      Feb 27, 2026, 3:15:42 PMFeb 27
      to Xiaohan Zhao, Chromium IPC Reviews, Takashi Toyoshima, Steve Becker, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
      Attention needed from Steve Becker, Takashi Toyoshima and Xiaohan Zhao

      Evan Stade added 1 comment

      File third_party/blink/renderer/modules/storage/cached_storage_area.cc
      Line 177, Patchset 4: String id = String::Number(base::RandUint64());
      Evan Stade . unresolved

      so while we're at it can we make this a `base::Token`? (In some cases one might want to use an `UnguessableToken`, but here we explicitly do not need use this for security, instead relying on the mojo pipes between renderer and browser to correctly direct information, so it's better not to imply the unguessable nature of the token is a security measure.)

      Xiaohan Zhao

      Done

      Evan Stade

      Sorry, I meant to use `Token` throughout code, not just to generate a string. `Token` has native mojom support, `mojo_base.mojom.Token`.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Steve Becker
      • Takashi Toyoshima
      • Xiaohan Zhao
      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: I3cb2a79b41740bad0ca9f8fa60fad807f69c408b
        Gerrit-Change-Number: 7597837
        Gerrit-PatchSet: 6
        Gerrit-Owner: Xiaohan Zhao <xiaoh...@microsoft.com>
        Gerrit-Reviewer: Evan Stade <evan...@microsoft.com>
        Gerrit-Reviewer: Steve Becker <ste...@microsoft.com>
        Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
        Gerrit-Reviewer: Xiaohan Zhao <xiaoh...@microsoft.com>
        Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
        Gerrit-CC: Jerome Jiang <ji...@chromium.org>
        Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
        Gerrit-CC: gwsq
        Gerrit-Attention: Xiaohan Zhao <xiaoh...@microsoft.com>
        Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
        Gerrit-Attention: Steve Becker <ste...@microsoft.com>
        Gerrit-Comment-Date: Fri, 27 Feb 2026 20:15:36 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        Comment-In-Reply-To: Xiaohan Zhao <xiaoh...@microsoft.com>
        Comment-In-Reply-To: Evan Stade <evan...@microsoft.com>
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Takashi Toyoshima (Gerrit)

        unread,
        Mar 1, 2026, 11:44:55 PMMar 1
        to Xiaohan Zhao, Chromium IPC Reviews, Steve Becker, Evan Stade, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
        Attention needed from Steve Becker and Xiaohan Zhao

        Takashi Toyoshima added 3 comments

        File third_party/blink/public/mojom/dom_storage/storage_area.mojom
        Line 19, Patchset 6 (Latest): // null, the key was newly added and had no previous value stored. `source`
        // is null when the mutation was not initiated by a specific page (e.g.
        // browser-initiated or internal reconciliation).
        Takashi Toyoshima . unresolved

        As this seems relevant to other methods below, we may have this part in the interface comment?

        Line 52, Patchset 6 (Latest):// Identifies the source of a storage mutation for observer notifications.
        Takashi Toyoshima . unresolved

        This can compile, but it may be nicer to declare before the first use above.

        Line 62, Patchset 6 (Latest):// store.
        Takashi Toyoshima . unresolved

        Let's add an explanation on the nullability of the `source` parameter.

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Steve Becker
        • Xiaohan Zhao
        Gerrit-Attention: Steve Becker <ste...@microsoft.com>
        Gerrit-Comment-Date: Mon, 02 Mar 2026 04:44:30 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Takashi Toyoshima (Gerrit)

        unread,
        Mar 2, 2026, 12:36:39 AMMar 2
        to Xiaohan Zhao, Chromium IPC Reviews, Steve Becker, Evan Stade, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
        Attention needed from Steve Becker and Xiaohan Zhao

        Takashi Toyoshima added 1 comment

        File third_party/blink/renderer/modules/storage/cached_storage_area.cc
        Line 178, Patchset 6 (Latest): String id = String(base::Token::CreateRandom().ToString());
        Takashi Toyoshima . unresolved

        We may clarify this change in the CL description?

        Another question is shall we use base::UnguessableToken that can be mapped to mojom_base.UnguessableToken directly rather than using string in Mojo.

        Gerrit-Comment-Date: Mon, 02 Mar 2026 05:36:31 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Xiaohan Zhao (Gerrit)

        unread,
        Mar 3, 2026, 7:44:49 PMMar 3
        to Chromium IPC Reviews, Takashi Toyoshima, Steve Becker, Evan Stade, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
        Attention needed from Evan Stade, Steve Becker and Takashi Toyoshima

        Xiaohan Zhao added 6 comments

        Patchset-level comments
        File-level comment, Patchset 7 (Latest):
        Xiaohan Zhao . resolved

        Thanks for the review!

        File third_party/blink/public/mojom/dom_storage/storage_area.mojom
        Line 19, Patchset 6: // null, the key was newly added and had no previous value stored. `source`

        // is null when the mutation was not initiated by a specific page (e.g.
        // browser-initiated or internal reconciliation).
        Takashi Toyoshima . resolved

        As this seems relevant to other methods below, we may have this part in the interface comment?

        Xiaohan Zhao

        Done

        Line 52, Patchset 6:// Identifies the source of a storage mutation for observer notifications.
        Takashi Toyoshima . resolved

        This can compile, but it may be nicer to declare before the first use above.

        Xiaohan Zhao

        Done

        Line 62, Patchset 6:// store.
        Takashi Toyoshima . resolved

        Let's add an explanation on the nullability of the `source` parameter.

        Xiaohan Zhao

        Done

        File third_party/blink/renderer/modules/storage/cached_storage_area.cc
        Line 177, Patchset 4: String id = String::Number(base::RandUint64());
        Evan Stade . resolved

        so while we're at it can we make this a `base::Token`? (In some cases one might want to use an `UnguessableToken`, but here we explicitly do not need use this for security, instead relying on the mojo pipes between renderer and browser to correctly direct information, so it's better not to imply the unguessable nature of the token is a security measure.)

        Xiaohan Zhao

        Done

        Evan Stade

        Sorry, I meant to use `Token` throughout code, not just to generate a string. `Token` has native mojom support, `mojo_base.mojom.Token`.

        Xiaohan Zhao

        Sorry I misunderstood it. Updated. Thank you!

        Line 178, Patchset 6: String id = String(base::Token::CreateRandom().ToString());
        Takashi Toyoshima . resolved

        We may clarify this change in the CL description?

        Another question is shall we use base::UnguessableToken that can be mapped to mojom_base.UnguessableToken directly rather than using string in Mojo.

        Xiaohan Zhao

        I've updated String with `base::Token` since this ID is not a security token and the mojo pipe already provides the security boundary, so the token doesn't need to be unguessable. But thanks for the suggestion!

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Evan Stade
        • Steve Becker
        • Takashi Toyoshima
        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: I3cb2a79b41740bad0ca9f8fa60fad807f69c408b
          Gerrit-Change-Number: 7597837
          Gerrit-PatchSet: 7
          Gerrit-Owner: Xiaohan Zhao <xiaoh...@microsoft.com>
          Gerrit-Reviewer: Evan Stade <evan...@microsoft.com>
          Gerrit-Reviewer: Steve Becker <ste...@microsoft.com>
          Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
          Gerrit-Reviewer: Xiaohan Zhao <xiaoh...@microsoft.com>
          Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
          Gerrit-CC: Jerome Jiang <ji...@chromium.org>
          Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
          Gerrit-CC: gwsq
          Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
          Gerrit-Attention: Evan Stade <evan...@microsoft.com>
          Gerrit-Attention: Steve Becker <ste...@microsoft.com>
          Gerrit-Comment-Date: Wed, 04 Mar 2026 00:44:41 +0000
          Gerrit-HasComments: Yes
          Gerrit-Has-Labels: No
          Comment-In-Reply-To: Takashi Toyoshima <toyo...@chromium.org>
          satisfied_requirement
          unsatisfied_requirement
          open
          diffy

          Steve Becker (Gerrit)

          unread,
          Mar 4, 2026, 5:11:23 PMMar 4
          to Xiaohan Zhao, Chromium IPC Reviews, Takashi Toyoshima, Evan Stade, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
          Attention needed from Evan Stade, Takashi Toyoshima and Xiaohan Zhao

          Steve Becker added 9 comments

          Patchset-level comments
          File-level comment, Patchset 8 (Latest):
          Steve Becker . resolved

          Thanks for this cleanup. I'm still reviewing the tests, but here are some initial comments.

          File third_party/blink/renderer/modules/storage/cached_storage_area.h
          Line 234, Patchset 8 (Latest): // StorageAreaObserver events. This map is keyed by storage_area_id (a unique
          Steve Becker . unresolved

          nit: this does not map to any variable or code in this file.

          Line 198, Patchset 8 (Latest): const base::Token& storage_area_id);
          Steve Becker . unresolved

          nit: I think the new name loses some meaning without source. Including source in the name makes it very clear that it is the source of the mutation.

          Same applies to `pending_mutations_by_source_` member.

          Line 51, Patchset 8 (Latest):// An in-process implementation of LocalStorage using a LevelDB Mojo service.
          Steve Becker . unresolved

          Thanks for cleaning up this comment. Can we also remove this reference to LevelDB?

          Line 36, Patchset 8 (Latest): // base::Token() is all-zero, matching the zero-initialized empty slot.
          static constexpr bool kEmptyValueIsZero = true;
          // Use the all-ones token as the deleted-value sentinel.
          static void ConstructDeletedValue(base::Token& slot) {
          slot = base::Token(std::numeric_limits<uint64_t>::max(),
          std::numeric_limits<uint64_t>::max());
          }
          static bool IsDeletedValue(const base::Token& token) {
          return token.high() == std::numeric_limits<uint64_t>::max() &&
          token.low() == std::numeric_limits<uint64_t>::max();
          }
          Steve Becker . unresolved

          nit: Can we implement DeletedValue() instead of ConstructDeletedValue() and IsDeletedValue()?

          See the comment above DeletedValue() here:

          https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/wtf/hash_traits.h;drc=c026b8dc3b0f14e246aa11ad81f7958e8b1b7dd8;l=151

          Line 33, Patchset 8 (Latest): return HashInts(static_cast<unsigned>(token.high()),
          Steve Becker . unresolved

          This cast will truncate the 64-bit token.high(), reducing it to 32-bit. To hash the entire token, we need to call HashInt() on the first 32-bits of the token. Afterwards, we need to call AddIntToHash() on the remaining three 32-bit parts of the token.

          See:

          [1] HashInt()

          https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/wtf/hash_functions.h;bpv=1;bpt=1;l=63?q=HashInts%20filepath:third_party%2Fblink&ss=chromium%2Fchromium%2Fsrc

          [2] AddIntToHash()

          https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/wtf/hash_functions.h;drc=0087ec9e7fe00858d46c7906fb10c6a24d21bd62;l=146

          File third_party/blink/renderer/modules/storage/cached_storage_area.cc
          Line 95, Patchset 8 (Latest): auto mojo_source =
          Steve Becker . unresolved

          nit: mojo does not describe this variable since mojo is used everywhere to communicate between processes and threads. Maybe we should use something like `storage_area_source` or `source_url_and_id` instead?

          Same applies below.

          Line 522, Patchset 8 (Latest): const base::Token& storage_area_id) {
          Steve Becker . unresolved

          Can/should we check assert that storage_area_id is not 0?

          Line 546, Patchset 8 (Latest): // A zero token means no source (browser-initiated mutation), so there can't
          // be a matching pending local mutation. Also, base::Token() is the
          // empty-bucket sentinel in the HashMap, so we must not look it up.
          if (storage_area_id.is_zero()) {
          return nullptr;
          }
          Steve Becker . unresolved

          Are these lines necessary? Should searching for a zero token return the end iterator below instead?

          Open in Gerrit

          Related details

          Attention is currently required from:
          • Evan Stade
          • Takashi Toyoshima
          • Xiaohan Zhao
          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: I3cb2a79b41740bad0ca9f8fa60fad807f69c408b
            Gerrit-Change-Number: 7597837
            Gerrit-PatchSet: 8
            Gerrit-Owner: Xiaohan Zhao <xiaoh...@microsoft.com>
            Gerrit-Reviewer: Evan Stade <evan...@microsoft.com>
            Gerrit-Reviewer: Steve Becker <ste...@microsoft.com>
            Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
            Gerrit-Reviewer: Xiaohan Zhao <xiaoh...@microsoft.com>
            Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
            Gerrit-CC: Jerome Jiang <ji...@chromium.org>
            Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
            Gerrit-CC: gwsq
            Gerrit-Attention: Xiaohan Zhao <xiaoh...@microsoft.com>
            Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
            Gerrit-Attention: Evan Stade <evan...@microsoft.com>
            Gerrit-Comment-Date: Wed, 04 Mar 2026 22:11:13 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: No
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Evan Stade (Gerrit)

            unread,
            Mar 4, 2026, 8:09:27 PMMar 4
            to Xiaohan Zhao, Chromium IPC Reviews, Takashi Toyoshima, Steve Becker, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
            Attention needed from Takashi Toyoshima and Xiaohan Zhao

            Evan Stade added 1 comment

            File third_party/blink/renderer/modules/storage/cached_storage_area.h
            Line 33, Patchset 8 (Latest): return HashInts(static_cast<unsigned>(token.high()),
            Steve Becker . unresolved

            This cast will truncate the 64-bit token.high(), reducing it to 32-bit. To hash the entire token, we need to call HashInt() on the first 32-bits of the token. Afterwards, we need to call AddIntToHash() on the remaining three 32-bit parts of the token.

            See:

            [1] HashInt()

            https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/wtf/hash_functions.h;bpv=1;bpt=1;l=63?q=HashInts%20filepath:third_party%2Fblink&ss=chromium%2Fchromium%2Fsrc

            [2] AddIntToHash()

            https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/wtf/hash_functions.h;drc=0087ec9e7fe00858d46c7906fb10c6a24d21bd62;l=146

            Evan Stade

            Bit unfortunate we are not allowed to just use absl::flat_hash_map (for reasons that aren't that well explained in the documentation). I see a good deal of `base::flat_map` and `std::map` in Blink, even though they are supposed discouraged? I think it's worth seeking an exception here to avoid this complexity. Would also be good to understand what the tradeoffs actually are.

            Failing that, I would still bail on this added complexity and use the stringified token for the key.

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Takashi Toyoshima
            • Xiaohan Zhao
            Gerrit-Comment-Date: Thu, 05 Mar 2026 01:09:19 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: No
            Comment-In-Reply-To: Steve Becker <ste...@microsoft.com>
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Takashi Toyoshima (Gerrit)

            unread,
            Mar 5, 2026, 12:30:51 AMMar 5
            to Xiaohan Zhao, Chromium IPC Reviews, Steve Becker, Evan Stade, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
            Attention needed from Xiaohan Zhao

            Takashi Toyoshima voted Code-Review+1

            Code-Review+1
            Open in Gerrit

            Related details

            Attention is currently required from:
            • Xiaohan Zhao
            Gerrit-Comment-Date: Thu, 05 Mar 2026 05:30:28 +0000
            Gerrit-HasComments: No
            Gerrit-Has-Labels: Yes
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Evan Stade (Gerrit)

            unread,
            Mar 5, 2026, 10:34:38 AMMar 5
            to Xiaohan Zhao, Takashi Toyoshima, Chromium IPC Reviews, Steve Becker, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
            Attention needed from Xiaohan Zhao

            Evan Stade added 1 comment

            File third_party/blink/renderer/modules/storage/cached_storage_area.h
            Line 33, Patchset 8 (Latest): return HashInts(static_cast<unsigned>(token.high()),
            Steve Becker . unresolved

            This cast will truncate the 64-bit token.high(), reducing it to 32-bit. To hash the entire token, we need to call HashInt() on the first 32-bits of the token. Afterwards, we need to call AddIntToHash() on the remaining three 32-bit parts of the token.

            See:

            [1] HashInt()

            https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/wtf/hash_functions.h;bpv=1;bpt=1;l=63?q=HashInts%20filepath:third_party%2Fblink&ss=chromium%2Fchromium%2Fsrc

            [2] AddIntToHash()

            https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/wtf/hash_functions.h;drc=0087ec9e7fe00858d46c7906fb10c6a24d21bd62;l=146

            Evan Stade

            Bit unfortunate we are not allowed to just use absl::flat_hash_map (for reasons that aren't that well explained in the documentation). I see a good deal of `base::flat_map` and `std::map` in Blink, even though they are supposed discouraged? I think it's worth seeking an exception here to avoid this complexity. Would also be good to understand what the tradeoffs actually are.

            Failing that, I would still bail on this added complexity and use the stringified token for the key.

            Gerrit-Comment-Date: Thu, 05 Mar 2026 15:34:26 +0000
            Gerrit-HasComments: Yes
            Gerrit-Has-Labels: No
            Comment-In-Reply-To: Evan Stade <evan...@microsoft.com>
            Comment-In-Reply-To: Steve Becker <ste...@microsoft.com>
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Evan Stade (Gerrit)

            unread,
            Mar 5, 2026, 11:30:02 AMMar 5
            to Xiaohan Zhao, Takashi Toyoshima, Chromium IPC Reviews, Steve Becker, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
            Attention needed from Xiaohan Zhao

            Evan Stade added 1 comment

            File third_party/blink/renderer/modules/storage/cached_storage_area.h
            Line 33, Patchset 8 (Latest): return HashInts(static_cast<unsigned>(token.high()),
            Steve Becker . unresolved

            This cast will truncate the 64-bit token.high(), reducing it to 32-bit. To hash the entire token, we need to call HashInt() on the first 32-bits of the token. Afterwards, we need to call AddIntToHash() on the remaining three 32-bit parts of the token.

            See:

            [1] HashInt()

            https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/wtf/hash_functions.h;bpv=1;bpt=1;l=63?q=HashInts%20filepath:third_party%2Fblink&ss=chromium%2Fchromium%2Fsrc

            [2] AddIntToHash()

            https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/wtf/hash_functions.h;drc=0087ec9e7fe00858d46c7906fb10c6a24d21bd62;l=146

            Evan Stade

            Bit unfortunate we are not allowed to just use absl::flat_hash_map (for reasons that aren't that well explained in the documentation). I see a good deal of `base::flat_map` and `std::map` in Blink, even though they are supposed discouraged? I think it's worth seeking an exception here to avoid this complexity. Would also be good to understand what the tradeoffs actually are.

            Failing that, I would still bail on this added complexity and use the stringified token for the key.

            Evan Stade

            I asked this question here: https://chromium.slack.com/archives/CGJNSDHA7/p1772724774596959

            Evan Stade

            Seems like folks thinks it's ok to use some non-Blink container such as `absl::flat_hash_map` since the map's value is not a GCed type, although we'll still need to update `audit_non_blink_usage.py` (and also use `ALLOW_DISCOURAGED_TYPE`?) which triggers a final approval.

            Gerrit-Comment-Date: Thu, 05 Mar 2026 16:29:46 +0000
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Steve Becker (Gerrit)

            unread,
            Mar 5, 2026, 5:20:11 PMMar 5
            to Xiaohan Zhao, Takashi Toyoshima, Chromium IPC Reviews, Evan Stade, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
            Attention needed from Xiaohan Zhao

            Steve Becker added 1 comment

            File third_party/blink/renderer/modules/storage/cached_storage_area.h
            Line 33, Patchset 8 (Latest): return HashInts(static_cast<unsigned>(token.high()),
            Steve Becker . unresolved

            This cast will truncate the 64-bit token.high(), reducing it to 32-bit. To hash the entire token, we need to call HashInt() on the first 32-bits of the token. Afterwards, we need to call AddIntToHash() on the remaining three 32-bit parts of the token.

            See:

            [1] HashInt()

            https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/wtf/hash_functions.h;bpv=1;bpt=1;l=63?q=HashInts%20filepath:third_party%2Fblink&ss=chromium%2Fchromium%2Fsrc

            [2] AddIntToHash()

            https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/wtf/hash_functions.h;drc=0087ec9e7fe00858d46c7906fb10c6a24d21bd62;l=146

            Evan Stade

            Bit unfortunate we are not allowed to just use absl::flat_hash_map (for reasons that aren't that well explained in the documentation). I see a good deal of `base::flat_map` and `std::map` in Blink, even though they are supposed discouraged? I think it's worth seeking an exception here to avoid this complexity. Would also be good to understand what the tradeoffs actually are.

            Failing that, I would still bail on this added complexity and use the stringified token for the key.

            Evan Stade

            I asked this question here: https://chromium.slack.com/archives/CGJNSDHA7/p1772724774596959

            Evan Stade

            Seems like folks thinks it's ok to use some non-Blink container such as `absl::flat_hash_map` since the map's value is not a GCed type, although we'll still need to update `audit_non_blink_usage.py` (and also use `ALLOW_DISCOURAGED_TYPE`?) which triggers a final approval.

            Steve Becker

            Thanks Evan!

            Gerrit-Comment-Date: Thu, 05 Mar 2026 22:20:00 +0000
            satisfied_requirement
            unsatisfied_requirement
            open
            diffy

            Xiaohan Zhao (Gerrit)

            unread,
            Mar 5, 2026, 7:30:34 PMMar 5
            to Takashi Toyoshima, Chromium IPC Reviews, Steve Becker, Evan Stade, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
            Attention needed from Evan Stade, Steve Becker and Takashi Toyoshima

            Xiaohan Zhao added 8 comments

            File third_party/blink/renderer/modules/storage/cached_storage_area.h
            Line 234, Patchset 8: // StorageAreaObserver events. This map is keyed by storage_area_id (a unique
            Steve Becker . resolved

            nit: this does not map to any variable or code in this file.

            Xiaohan Zhao

            Updated the comment.

            Line 198, Patchset 8: const base::Token& storage_area_id);
            Steve Becker . resolved

            nit: I think the new name loses some meaning without source. Including source in the name makes it very clear that it is the source of the mutation.

            Same applies to `pending_mutations_by_source_` member.

            Xiaohan Zhao

            Done

            Line 51, Patchset 8:// An in-process implementation of LocalStorage using a LevelDB Mojo service.
            Steve Becker . resolved

            Thanks for cleaning up this comment. Can we also remove this reference to LevelDB?

            Xiaohan Zhao

            Done

            Line 36, Patchset 8: // base::Token() is all-zero, matching the zero-initialized empty slot.

            static constexpr bool kEmptyValueIsZero = true;
            // Use the all-ones token as the deleted-value sentinel.
            static void ConstructDeletedValue(base::Token& slot) {
            slot = base::Token(std::numeric_limits<uint64_t>::max(),
            std::numeric_limits<uint64_t>::max());
            }
            static bool IsDeletedValue(const base::Token& token) {
            return token.high() == std::numeric_limits<uint64_t>::max() &&
            token.low() == std::numeric_limits<uint64_t>::max();
            }
            Steve Becker . resolved

            nit: Can we implement DeletedValue() instead of ConstructDeletedValue() and IsDeletedValue()?

            See the comment above DeletedValue() here:

            https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/wtf/hash_traits.h;drc=c026b8dc3b0f14e246aa11ad81f7958e8b1b7dd8;l=151

            Xiaohan Zhao

            Updated the HashMap with absl::flat_hash_map.

            Line 33, Patchset 8: return HashInts(static_cast<unsigned>(token.high()),
            Steve Becker . resolved

            This cast will truncate the 64-bit token.high(), reducing it to 32-bit. To hash the entire token, we need to call HashInt() on the first 32-bits of the token. Afterwards, we need to call AddIntToHash() on the remaining three 32-bit parts of the token.

            See:

            [1] HashInt()

            https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/wtf/hash_functions.h;bpv=1;bpt=1;l=63?q=HashInts%20filepath:third_party%2Fblink&ss=chromium%2Fchromium%2Fsrc

            [2] AddIntToHash()

            https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/wtf/hash_functions.h;drc=0087ec9e7fe00858d46c7906fb10c6a24d21bd62;l=146

            Evan Stade

            Bit unfortunate we are not allowed to just use absl::flat_hash_map (for reasons that aren't that well explained in the documentation). I see a good deal of `base::flat_map` and `std::map` in Blink, even though they are supposed discouraged? I think it's worth seeking an exception here to avoid this complexity. Would also be good to understand what the tradeoffs actually are.

            Failing that, I would still bail on this added complexity and use the stringified token for the key.

            Evan Stade

            I asked this question here: https://chromium.slack.com/archives/CGJNSDHA7/p1772724774596959

            Evan Stade

            Seems like folks thinks it's ok to use some non-Blink container such as `absl::flat_hash_map` since the map's value is not a GCed type, although we'll still need to update `audit_non_blink_usage.py` (and also use `ALLOW_DISCOURAGED_TYPE`?) which triggers a final approval.

            Xiaohan Zhao

            Done. Thanks for checking on this!

            File third_party/blink/renderer/modules/storage/cached_storage_area.cc
            Line 95, Patchset 8: auto mojo_source =
            Steve Becker . resolved

            nit: mojo does not describe this variable since mojo is used everywhere to communicate between processes and threads. Maybe we should use something like `storage_area_source` or `source_url_and_id` instead?

            Same applies below.

            Xiaohan Zhao

            Done

            Line 522, Patchset 8: const base::Token& storage_area_id) {
            Steve Becker . resolved

            Can/should we check assert that storage_area_id is not 0?

            Xiaohan Zhao

            Done

            Line 546, Patchset 8: // A zero token means no source (browser-initiated mutation), so there can't

            // be a matching pending local mutation. Also, base::Token() is the
            // empty-bucket sentinel in the HashMap, so we must not look it up.
            if (storage_area_id.is_zero()) {
            return nullptr;
            }
            Steve Becker . resolved

            Are these lines necessary? Should searching for a zero token return the end iterator below instead?

            Xiaohan Zhao

            Done

            Open in Gerrit

            Related details

            Attention is currently required from:
            • Evan Stade
            • Steve Becker
            • Takashi Toyoshima
            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: I3cb2a79b41740bad0ca9f8fa60fad807f69c408b
              Gerrit-Change-Number: 7597837
              Gerrit-PatchSet: 9
              Gerrit-Owner: Xiaohan Zhao <xiaoh...@microsoft.com>
              Gerrit-Reviewer: Evan Stade <evan...@microsoft.com>
              Gerrit-Reviewer: Steve Becker <ste...@microsoft.com>
              Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
              Gerrit-Reviewer: Xiaohan Zhao <xiaoh...@microsoft.com>
              Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
              Gerrit-CC: Jerome Jiang <ji...@chromium.org>
              Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
              Gerrit-CC: gwsq
              Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
              Gerrit-Attention: Evan Stade <evan...@microsoft.com>
              Gerrit-Attention: Steve Becker <ste...@microsoft.com>
              Gerrit-Comment-Date: Fri, 06 Mar 2026 00:30:25 +0000
              satisfied_requirement
              unsatisfied_requirement
              open
              diffy

              Takashi Toyoshima (Gerrit)

              unread,
              Mar 6, 2026, 4:02:47 AMMar 6
              to Xiaohan Zhao, Chromium IPC Reviews, Steve Becker, Evan Stade, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
              Attention needed from Evan Stade, Steve Becker and Xiaohan Zhao

              Takashi Toyoshima voted and added 1 comment

              Votes added by Takashi Toyoshima

              Code-Review+1

              1 comment

              File third_party/blink/renderer/modules/storage/cached_storage_area.h
              Line 33, Patchset 8: return HashInts(static_cast<unsigned>(token.high()),
              Steve Becker . resolved

              This cast will truncate the 64-bit token.high(), reducing it to 32-bit. To hash the entire token, we need to call HashInt() on the first 32-bits of the token. Afterwards, we need to call AddIntToHash() on the remaining three 32-bit parts of the token.

              See:

              [1] HashInt()

              https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/wtf/hash_functions.h;bpv=1;bpt=1;l=63?q=HashInts%20filepath:third_party%2Fblink&ss=chromium%2Fchromium%2Fsrc

              [2] AddIntToHash()

              https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/platform/wtf/hash_functions.h;drc=0087ec9e7fe00858d46c7906fb10c6a24d21bd62;l=146

              Evan Stade

              Bit unfortunate we are not allowed to just use absl::flat_hash_map (for reasons that aren't that well explained in the documentation). I see a good deal of `base::flat_map` and `std::map` in Blink, even though they are supposed discouraged? I think it's worth seeking an exception here to avoid this complexity. Would also be good to understand what the tradeoffs actually are.

              Failing that, I would still bail on this added complexity and use the stringified token for the key.

              Evan Stade

              I asked this question here: https://chromium.slack.com/archives/CGJNSDHA7/p1772724774596959

              Evan Stade

              Seems like folks thinks it's ok to use some non-Blink container such as `absl::flat_hash_map` since the map's value is not a GCed type, although we'll still need to update `audit_non_blink_usage.py` (and also use `ALLOW_DISCOURAGED_TYPE`?) which triggers a final approval.

              Xiaohan Zhao

              Done. Thanks for checking on this!

              Takashi Toyoshima

              Hum... I'm inclined to prefer HashMap with required traits implementation in more general WTF place, but as we already reached a conclusion here. I don't have a strong opinion. absl use sgtm.

              Open in Gerrit

              Related details

              Attention is currently required from:
              • Evan Stade
              • Steve Becker
              • Xiaohan Zhao
              Gerrit-Attention: Xiaohan Zhao <xiaoh...@microsoft.com>
              Gerrit-Attention: Evan Stade <evan...@microsoft.com>
              Gerrit-Attention: Steve Becker <ste...@microsoft.com>
              Gerrit-Comment-Date: Fri, 06 Mar 2026 09:02:25 +0000
              Gerrit-HasComments: Yes
              Gerrit-Has-Labels: Yes
              Comment-In-Reply-To: Xiaohan Zhao <xiaoh...@microsoft.com>
              satisfied_requirement
              unsatisfied_requirement
              open
              diffy

              Steve Becker (Gerrit)

              unread,
              Mar 6, 2026, 1:41:34 PMMar 6
              to Xiaohan Zhao, Takashi Toyoshima, Chromium IPC Reviews, Evan Stade, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
              Attention needed from Evan Stade and Xiaohan Zhao

              Steve Becker added 5 comments

              Patchset-level comments
              File-level comment, Patchset 9 (Latest):
              Steve Becker . resolved

              Thanks again for the cleanup. I'm still reviewing, but here are some initial comments to work through.

              File third_party/blink/renderer/modules/storage/cached_storage_area.h
              Line 221, Patchset 9 (Latest): ALLOW_DISCOURAGED_TYPE(
              "base::Token has AbslHashValue but no WTF "
              "HashTraits; using absl hash map avoids the "
              "need for a custom HashTraits specialization.")
              Steve Becker . unresolved

              nit: Let's move `ALLOW_DISCOURAGED_TYPE()` to after the variable name to match usage in the rest of blink.

              ```
              absl::flat_hash_map<base::Token, OwnedPendingMutationQueue> pending_mutations_by_source_ ALLOW_DISCOURAGED_TYPE(...);
              ```

              Line 131, Patchset 9 (Latest): // corresponding StorageAreaObserver event. See
              // |pending_mutations_by_source_| and |pending_mutations_by_key_|
              // below.
              Steve Becker . unresolved

              nit: it looks like we can revert this change and restore the original formatting.

              File third_party/blink/renderer/modules/storage/cached_storage_area.cc
              Line 453, Patchset 9 (Latest): const base::Token source_id =
              source ? source->storage_area_id : base::Token();
              const KURL source_page_url = source ? source->page_url : KURL();
              Steve Becker . unresolved

              nit: For all of these in this file, can we use std::move to avoid a copy? Alternatively, maybe we can make these const references although for this to work, we'd probably need constants defined for the empty cases?

              ```
              const base::Token source_id =
              source ? std::move(source->storage_area_id) : base::Token();
              ```
              File third_party/blink/renderer/modules/storage/testing/mock_storage_area.h
              Line 28, Patchset 9 (Latest): KURL page_url;
              base::Token storage_area_id;
              Steve Becker . unresolved

              Would it simplify to store a mojom::blink::StorageAreaSourcePtr here? mojo::StructPtr<T> defines an == operator. See:

              https://source.chromium.org/chromium/chromium/src/+/main:mojo/public/cpp/bindings/struct_ptr.h;drc=f1db470323aa6296b8dc296b235eee35bf55b405;l=345

              Open in Gerrit

              Related details

              Attention is currently required from:
              • Evan Stade
              • Xiaohan Zhao
              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: I3cb2a79b41740bad0ca9f8fa60fad807f69c408b
                Gerrit-Change-Number: 7597837
                Gerrit-PatchSet: 9
                Gerrit-Owner: Xiaohan Zhao <xiaoh...@microsoft.com>
                Gerrit-Reviewer: Evan Stade <evan...@microsoft.com>
                Gerrit-Reviewer: Steve Becker <ste...@microsoft.com>
                Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
                Gerrit-Reviewer: Xiaohan Zhao <xiaoh...@microsoft.com>
                Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                Gerrit-CC: Jerome Jiang <ji...@chromium.org>
                Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
                Gerrit-CC: gwsq
                Gerrit-Attention: Xiaohan Zhao <xiaoh...@microsoft.com>
                Gerrit-Attention: Evan Stade <evan...@microsoft.com>
                Gerrit-Comment-Date: Fri, 06 Mar 2026 18:41:22 +0000
                Gerrit-HasComments: Yes
                Gerrit-Has-Labels: No
                satisfied_requirement
                unsatisfied_requirement
                open
                diffy

                Steve Becker (Gerrit)

                unread,
                Mar 6, 2026, 2:36:38 PMMar 6
                to Xiaohan Zhao, Takashi Toyoshima, Chromium IPC Reviews, Evan Stade, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                Attention needed from Evan Stade and Xiaohan Zhao

                Steve Becker added 4 comments

                Patchset-level comments
                Steve Becker . resolved

                Still working on the review, but some more comments.

                File components/services/storage/dom_storage/local_storage_impl_unittest.cc
                Line 68, Patchset 9 (Latest): GURL page_url;
                base::Token storage_area_id;
                Steve Becker . unresolved

                Do the tests validate these observations anywhere?

                Line 68, Patchset 9 (Latest): GURL page_url;
                base::Token storage_area_id;
                Steve Becker . unresolved

                Should we record the blink::mojom::StorageAreaSourcePtr instead of two separate memebers? blink::mojom::StorageAreaSourcePtr can also record null.

                File components/services/storage/dom_storage/session_storage_area_impl.cc
                Line 109, Patchset 9 (Latest): CreateNewMap(NewMapType::EMPTY_FROM_DELETE_ALL, std::nullopt);
                Steve Becker . unresolved

                should this also be use source? We can call source->Clone() or update CreateNewMap to take a const reference to the class (which is probably better since it avoids a copy):

                `const blink::mojom::StorageAreaSource& delete_all_source`

                Gerrit-Comment-Date: Fri, 06 Mar 2026 19:36:20 +0000
                Gerrit-HasComments: Yes
                Gerrit-Has-Labels: No
                satisfied_requirement
                unsatisfied_requirement
                open
                diffy

                Xiaohan Zhao (Gerrit)

                unread,
                Mar 6, 2026, 3:22:34 PMMar 6
                to Takashi Toyoshima, Chromium IPC Reviews, Steve Becker, Evan Stade, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                Attention needed from Evan Stade and Steve Becker

                Xiaohan Zhao added 1 comment

                File components/services/storage/dom_storage/local_storage_impl_unittest.cc
                Line 68, Patchset 9 (Latest): GURL page_url;
                base::Token storage_area_id;
                Steve Becker . unresolved

                Do the tests validate these observations anywhere?

                Xiaohan Zhao

                Right now we only validate the type, key and old_value. Should we add also validate the rest of the fields as well?

                Open in Gerrit

                Related details

                Attention is currently required from:
                • Evan Stade
                • Steve Becker
                Gerrit-Attention: Evan Stade <evan...@microsoft.com>
                Gerrit-Attention: Steve Becker <ste...@microsoft.com>
                Gerrit-Comment-Date: Fri, 06 Mar 2026 20:22:00 +0000
                Gerrit-HasComments: Yes
                Gerrit-Has-Labels: No
                Comment-In-Reply-To: Steve Becker <ste...@microsoft.com>
                satisfied_requirement
                unsatisfied_requirement
                open
                diffy

                Steve Becker (Gerrit)

                unread,
                Mar 6, 2026, 3:51:44 PMMar 6
                to Xiaohan Zhao, Takashi Toyoshima, Chromium IPC Reviews, Evan Stade, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                Attention needed from Evan Stade and Xiaohan Zhao

                Steve Becker added 1 comment

                File components/services/storage/dom_storage/local_storage_impl_unittest.cc
                Line 68, Patchset 9 (Latest): GURL page_url;
                base::Token storage_area_id;
                Steve Becker . unresolved

                Do the tests validate these observations anywhere?

                Xiaohan Zhao

                Right now we only validate the type, key and old_value. Should we add also validate the rest of the fields as well?

                Steve Becker

                There is no reason to record them in the observation if we don't use them anywhere. Yes, let's please improve this test by adding some verifcation.

                Open in Gerrit

                Related details

                Attention is currently required from:
                • Evan Stade
                • Xiaohan Zhao
                Gerrit-Attention: Xiaohan Zhao <xiaoh...@microsoft.com>
                Gerrit-Attention: Evan Stade <evan...@microsoft.com>
                Gerrit-Comment-Date: Fri, 06 Mar 2026 20:51:35 +0000
                Gerrit-HasComments: Yes
                Gerrit-Has-Labels: No
                Comment-In-Reply-To: Xiaohan Zhao <xiaoh...@microsoft.com>
                Comment-In-Reply-To: Steve Becker <ste...@microsoft.com>
                satisfied_requirement
                unsatisfied_requirement
                open
                diffy

                Steve Becker (Gerrit)

                unread,
                Mar 6, 2026, 4:24:48 PMMar 6
                to Xiaohan Zhao, Takashi Toyoshima, Chromium IPC Reviews, Evan Stade, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                Attention needed from Evan Stade and Xiaohan Zhao

                Steve Becker added 2 comments

                Patchset-level comments
                Steve Becker . resolved

                Finished reviewing Patchset 9. Please let me know if you have any questions.

                File components/services/storage/dom_storage/storage_area_impl_unittest.cc
                Line 51, Patchset 9 (Latest):const GURL& kTestPageUrl() {
                static const base::NoDestructor<GURL> url("https://example.url");
                return *url;
                }
                Steve Becker . unresolved

                nit: Let's avoid using NoDestructor for a constant. Instead, let's make a character string constant like the ones below. These will not have a constructor or destructor.

                Then we can either create a GURL using the string constant for each use:

                `GURL(kTestPageUrl)`

                or alternatively, we can construct this constant as part of the test class. For example, see kFakeUrlString below. That way the constructor and destructor will not run globally when the code module loads and unloads but instead when the class constructs and destructs, which only impacts the tests in this file instead of all of the tests in the code module.

                Gerrit-Comment-Date: Fri, 06 Mar 2026 21:24:37 +0000
                Gerrit-HasComments: Yes
                Gerrit-Has-Labels: No
                satisfied_requirement
                unsatisfied_requirement
                open
                diffy

                Xiaohan Zhao (Gerrit)

                unread,
                Mar 6, 2026, 4:59:56 PMMar 6
                to Takashi Toyoshima, Chromium IPC Reviews, Steve Becker, Evan Stade, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                Attention needed from Evan Stade and Steve Becker

                Xiaohan Zhao added 1 comment

                File components/services/storage/dom_storage/session_storage_area_impl.cc
                Line 109, Patchset 9 (Latest): CreateNewMap(NewMapType::EMPTY_FROM_DELETE_ALL, std::nullopt);
                Steve Becker . unresolved

                should this also be use source? We can call source->Clone() or update CreateNewMap to take a const reference to the class (which is probably better since it avoids a copy):

                `const blink::mojom::StorageAreaSource& delete_all_source`

                Xiaohan Zhao

                The `delete_all_source` in `CreateNewMap()` looks like a leftover from the old implementation. `CreateNewMap()` used to pass the `source` to observers when handling the `EMPTY_FROM_DELETE_ALL` case. But now it's handled in `NotifyObservesAllDeleted()`. I'll remove the unused parameter.

                Open in Gerrit

                Related details

                Attention is currently required from:
                • Evan Stade
                • Steve Becker
                Gerrit-Attention: Evan Stade <evan...@microsoft.com>
                Gerrit-Attention: Steve Becker <ste...@microsoft.com>
                Gerrit-Comment-Date: Fri, 06 Mar 2026 21:59:42 +0000
                Gerrit-HasComments: Yes
                Gerrit-Has-Labels: No
                Comment-In-Reply-To: Steve Becker <ste...@microsoft.com>
                satisfied_requirement
                unsatisfied_requirement
                open
                diffy

                Xiaohan Zhao (Gerrit)

                unread,
                Mar 6, 2026, 5:03:51 PMMar 6
                to Takashi Toyoshima, Chromium IPC Reviews, Steve Becker, Evan Stade, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                Attention needed from Evan Stade and Steve Becker

                Xiaohan Zhao added 1 comment

                File components/services/storage/dom_storage/session_storage_area_impl.cc
                Line 109, Patchset 9 (Latest): CreateNewMap(NewMapType::EMPTY_FROM_DELETE_ALL, std::nullopt);
                Steve Becker . unresolved

                should this also be use source? We can call source->Clone() or update CreateNewMap to take a const reference to the class (which is probably better since it avoids a copy):

                `const blink::mojom::StorageAreaSource& delete_all_source`

                Xiaohan Zhao

                The `delete_all_source` in `CreateNewMap()` looks like a leftover from the old implementation. `CreateNewMap()` used to pass the `source` to observers when handling the `EMPTY_FROM_DELETE_ALL` case. But now it's handled in `NotifyObservesAllDeleted()`. I'll remove the unused parameter.

                Gerrit-Comment-Date: Fri, 06 Mar 2026 22:03:39 +0000
                Gerrit-HasComments: Yes
                Gerrit-Has-Labels: No
                satisfied_requirement
                unsatisfied_requirement
                open
                diffy

                Steve Becker (Gerrit)

                unread,
                Mar 6, 2026, 5:08:34 PMMar 6
                to Xiaohan Zhao, Takashi Toyoshima, Chromium IPC Reviews, Evan Stade, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                Attention needed from Evan Stade and Xiaohan Zhao

                Steve Becker added 1 comment

                File components/services/storage/dom_storage/session_storage_area_impl.cc
                Line 109, Patchset 9 (Latest): CreateNewMap(NewMapType::EMPTY_FROM_DELETE_ALL, std::nullopt);
                Steve Becker . unresolved

                should this also be use source? We can call source->Clone() or update CreateNewMap to take a const reference to the class (which is probably better since it avoids a copy):

                `const blink::mojom::StorageAreaSource& delete_all_source`

                Xiaohan Zhao

                The `delete_all_source` in `CreateNewMap()` looks like a leftover from the old implementation. `CreateNewMap()` used to pass the `source` to observers when handling the `EMPTY_FROM_DELETE_ALL` case. But now it's handled in `NotifyObservesAllDeleted()`. I'll remove the unused parameter.

                Xiaohan Zhao

                https://source.chromium.org/chromium/chromium/src/+/f665b54282aee234ed8e5c9e82a94e1fd3c6aec7:content/browser/dom_storage/session_storage_leveldb_wrapper.cc#:~:text=for%20(auto%26%20ptr,%7D

                Steve Becker

                Sounds good. Thanks.

                Open in Gerrit

                Related details

                Attention is currently required from:
                • Evan Stade
                • Xiaohan Zhao
                Gerrit-Attention: Xiaohan Zhao <xiaoh...@microsoft.com>
                Gerrit-Attention: Evan Stade <evan...@microsoft.com>
                Gerrit-Comment-Date: Fri, 06 Mar 2026 22:08:19 +0000
                satisfied_requirement
                unsatisfied_requirement
                open
                diffy

                Xiaohan Zhao (Gerrit)

                unread,
                Mar 9, 2026, 10:01:52 PMMar 9
                to Takashi Toyoshima, Chromium IPC Reviews, Steve Becker, Evan Stade, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                Attention needed from Evan Stade, Steve Becker and Takashi Toyoshima

                Xiaohan Zhao added 9 comments

                Patchset-level comments
                File-level comment, Patchset 11:
                Xiaohan Zhao . resolved

                Hi Steve, comments addressed in the latest patchset. Thanks again for the review!

                File components/services/storage/dom_storage/local_storage_impl_unittest.cc
                Line 68, Patchset 9: GURL page_url;
                base::Token storage_area_id;
                Steve Becker . resolved

                Do the tests validate these observations anywhere?

                Xiaohan Zhao

                Right now we only validate the type, key and old_value. Should we add also validate the rest of the fields as well?

                Steve Becker

                There is no reason to record them in the observation if we don't use them anywhere. Yes, let's please improve this test by adding some verifcation.

                Xiaohan Zhao

                I added validations for `source` in tests where we validate the rest elements of Observation. Thanks!

                Line 68, Patchset 9: GURL page_url;
                base::Token storage_area_id;
                Steve Becker . resolved

                Should we record the blink::mojom::StorageAreaSourcePtr instead of two separate memebers? blink::mojom::StorageAreaSourcePtr can also record null.

                Xiaohan Zhao

                Updated to blink::mojom::StorageAreaSourcePtr. Thanks!

                File components/services/storage/dom_storage/session_storage_area_impl.cc
                Line 109, Patchset 9: CreateNewMap(NewMapType::EMPTY_FROM_DELETE_ALL, std::nullopt);
                Steve Becker . resolved

                should this also be use source? We can call source->Clone() or update CreateNewMap to take a const reference to the class (which is probably better since it avoids a copy):

                `const blink::mojom::StorageAreaSource& delete_all_source`

                Xiaohan Zhao

                The `delete_all_source` in `CreateNewMap()` looks like a leftover from the old implementation. `CreateNewMap()` used to pass the `source` to observers when handling the `EMPTY_FROM_DELETE_ALL` case. But now it's handled in `NotifyObservesAllDeleted()`. I'll remove the unused parameter.

                Xiaohan Zhao

                https://source.chromium.org/chromium/chromium/src/+/f665b54282aee234ed8e5c9e82a94e1fd3c6aec7:content/browser/dom_storage/session_storage_leveldb_wrapper.cc#:~:text=for%20(auto%26%20ptr,%7D

                Xiaohan Zhao

                Removed the unused parameter. Thanks!

                File components/services/storage/dom_storage/storage_area_impl_unittest.cc
                Line 51, Patchset 9:const GURL& kTestPageUrl() {

                static const base::NoDestructor<GURL> url("https://example.url");
                return *url;
                }
                Steve Becker . resolved

                nit: Let's avoid using NoDestructor for a constant. Instead, let's make a character string constant like the ones below. These will not have a constructor or destructor.

                Then we can either create a GURL using the string constant for each use:

                `GURL(kTestPageUrl)`

                or alternatively, we can construct this constant as part of the test class. For example, see kFakeUrlString below. That way the constructor and destructor will not run globally when the code module loads and unloads but instead when the class constructs and destructs, which only impacts the tests in this file instead of all of the tests in the code module.

                Xiaohan Zhao

                Done

                File third_party/blink/renderer/modules/storage/cached_storage_area.h
                Line 221, Patchset 9: ALLOW_DISCOURAGED_TYPE(

                "base::Token has AbslHashValue but no WTF "
                "HashTraits; using absl hash map avoids the "
                "need for a custom HashTraits specialization.")
                Steve Becker . resolved

                nit: Let's move `ALLOW_DISCOURAGED_TYPE()` to after the variable name to match usage in the rest of blink.

                ```
                absl::flat_hash_map<base::Token, OwnedPendingMutationQueue> pending_mutations_by_source_ ALLOW_DISCOURAGED_TYPE(...);
                ```

                Xiaohan Zhao

                Done

                Line 131, Patchset 9: // corresponding StorageAreaObserver event. See

                // |pending_mutations_by_source_| and |pending_mutations_by_key_|
                // below.
                Steve Becker . resolved

                nit: it looks like we can revert this change and restore the original formatting.

                Xiaohan Zhao

                Done

                File third_party/blink/renderer/modules/storage/cached_storage_area.cc
                Line 453, Patchset 9: const base::Token source_id =

                source ? source->storage_area_id : base::Token();
                const KURL source_page_url = source ? source->page_url : KURL();
                Steve Becker . resolved

                nit: For all of these in this file, can we use std::move to avoid a copy? Alternatively, maybe we can make these const references although for this to work, we'd probably need constants defined for the empty cases?

                ```
                const base::Token source_id =
                source ? std::move(source->storage_area_id) : base::Token();
                ```
                Xiaohan Zhao

                Done

                File third_party/blink/renderer/modules/storage/testing/mock_storage_area.h
                Line 28, Patchset 9: KURL page_url;
                base::Token storage_area_id;
                Steve Becker . resolved

                Would it simplify to store a mojom::blink::StorageAreaSourcePtr here? mojo::StructPtr<T> defines an == operator. See:

                https://source.chromium.org/chromium/chromium/src/+/main:mojo/public/cpp/bindings/struct_ptr.h;drc=f1db470323aa6296b8dc296b235eee35bf55b405;l=345

                Xiaohan Zhao

                Done

                Open in Gerrit

                Related details

                Attention is currently required from:
                • Evan Stade
                • Steve Becker
                • Takashi Toyoshima
                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: I3cb2a79b41740bad0ca9f8fa60fad807f69c408b
                  Gerrit-Change-Number: 7597837
                  Gerrit-PatchSet: 12
                  Gerrit-Owner: Xiaohan Zhao <xiaoh...@microsoft.com>
                  Gerrit-Reviewer: Evan Stade <evan...@microsoft.com>
                  Gerrit-Reviewer: Steve Becker <ste...@microsoft.com>
                  Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
                  Gerrit-Reviewer: Xiaohan Zhao <xiaoh...@microsoft.com>
                  Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                  Gerrit-CC: Jerome Jiang <ji...@chromium.org>
                  Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
                  Gerrit-CC: gwsq
                  Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
                  Gerrit-Attention: Evan Stade <evan...@microsoft.com>
                  Gerrit-Attention: Steve Becker <ste...@microsoft.com>
                  Gerrit-Comment-Date: Tue, 10 Mar 2026 02:01:41 +0000
                  satisfied_requirement
                  unsatisfied_requirement
                  open
                  diffy

                  Steve Becker (Gerrit)

                  unread,
                  Mar 10, 2026, 5:37:17 PMMar 10
                  to Xiaohan Zhao, Takashi Toyoshima, Chromium IPC Reviews, Evan Stade, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                  Attention needed from Evan Stade, Takashi Toyoshima and Xiaohan Zhao

                  Steve Becker voted and added 2 comments

                  Votes added by Steve Becker

                  Code-Review+1

                  2 comments

                  File third_party/blink/renderer/modules/storage/cached_storage_area_test.cc
                  Line 260, Patchset 12 (Latest): ASSERT_EQ(1u, mock_storage_area_.observed_delete_alls().size());
                  EXPECT_EQ(LocalSource(), mock_storage_area_.observed_delete_alls()[0]);
                  Steve Becker . unresolved

                  nit: Is EXPECT_THAT a more concise assert for here and below?

                  `EXPECT_THAT(mock_storage_area_.observed_delete_alls(), ElementsAre(LocalSource()));`

                  File third_party/blink/renderer/modules/storage/testing/mock_storage_area.h
                  Line 37, Patchset 12 (Latest): ObservedPut& operator=(const ObservedPut&) = delete;
                  Steve Becker . unresolved

                  nit: there's no reason to delete the assignment operator when implementing the copy constructor. With copy semantics, we should either provide all or nothing.

                  See https://abseil.io/tips/143

                  Open in Gerrit

                  Related details

                  Attention is currently required from:
                  • Evan Stade
                  • Takashi Toyoshima
                  • Xiaohan Zhao
                  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: I3cb2a79b41740bad0ca9f8fa60fad807f69c408b
                    Gerrit-Change-Number: 7597837
                    Gerrit-PatchSet: 12
                    Gerrit-Owner: Xiaohan Zhao <xiaoh...@microsoft.com>
                    Gerrit-Reviewer: Evan Stade <evan...@microsoft.com>
                    Gerrit-Reviewer: Steve Becker <ste...@microsoft.com>
                    Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
                    Gerrit-Reviewer: Xiaohan Zhao <xiaoh...@microsoft.com>
                    Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                    Gerrit-CC: Jerome Jiang <ji...@chromium.org>
                    Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
                    Gerrit-CC: gwsq
                    Gerrit-Attention: Xiaohan Zhao <xiaoh...@microsoft.com>
                    Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
                    Gerrit-Attention: Evan Stade <evan...@microsoft.com>
                    Gerrit-Comment-Date: Tue, 10 Mar 2026 21:37:07 +0000
                    Gerrit-HasComments: Yes
                    Gerrit-Has-Labels: Yes
                    satisfied_requirement
                    unsatisfied_requirement
                    open
                    diffy

                    Xiaohan Zhao (Gerrit)

                    unread,
                    Mar 11, 2026, 6:38:06 PMMar 11
                    to Steve Becker, Takashi Toyoshima, Chromium IPC Reviews, Evan Stade, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                    Attention needed from Evan Stade, Steve Becker and Takashi Toyoshima

                    Xiaohan Zhao added 1 comment

                    File third_party/blink/renderer/modules/storage/cached_storage_area_test.cc
                    Line 260, Patchset 12 (Latest): ASSERT_EQ(1u, mock_storage_area_.observed_delete_alls().size());
                    EXPECT_EQ(LocalSource(), mock_storage_area_.observed_delete_alls()[0]);
                    Steve Becker . unresolved

                    nit: Is EXPECT_THAT a more concise assert for here and below?

                    `EXPECT_THAT(mock_storage_area_.observed_delete_alls(), ElementsAre(LocalSource()));`

                    Xiaohan Zhao

                    `ElementsAre()` needs to copy the `LocalSource()` into a tuple, but `StorageAreaSourcePtr` is move-only. I deleted the ObservedDeleteAll struct and replace the EXPECT_THAT with single element check.

                    Open in Gerrit

                    Related details

                    Attention is currently required from:
                    • Evan Stade
                    • Steve Becker
                    • Takashi Toyoshima
                    Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
                    Gerrit-Attention: Evan Stade <evan...@microsoft.com>
                    Gerrit-Attention: Steve Becker <ste...@microsoft.com>
                    Gerrit-Comment-Date: Wed, 11 Mar 2026 22:37:57 +0000
                    Gerrit-HasComments: Yes
                    Gerrit-Has-Labels: No
                    Comment-In-Reply-To: Steve Becker <ste...@microsoft.com>
                    satisfied_requirement
                    unsatisfied_requirement
                    open
                    diffy

                    Steve Becker (Gerrit)

                    unread,
                    Mar 11, 2026, 6:40:49 PMMar 11
                    to Xiaohan Zhao, Takashi Toyoshima, Chromium IPC Reviews, Evan Stade, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                    Attention needed from Evan Stade, Takashi Toyoshima and Xiaohan Zhao

                    Steve Becker added 1 comment

                    File third_party/blink/renderer/modules/storage/cached_storage_area_test.cc
                    Line 260, Patchset 12 (Latest): ASSERT_EQ(1u, mock_storage_area_.observed_delete_alls().size());
                    EXPECT_EQ(LocalSource(), mock_storage_area_.observed_delete_alls()[0]);
                    Steve Becker . resolved

                    nit: Is EXPECT_THAT a more concise assert for here and below?

                    `EXPECT_THAT(mock_storage_area_.observed_delete_alls(), ElementsAre(LocalSource()));`

                    Xiaohan Zhao

                    `ElementsAre()` needs to copy the `LocalSource()` into a tuple, but `StorageAreaSourcePtr` is move-only. I deleted the ObservedDeleteAll struct and replace the EXPECT_THAT with single element check.

                    Steve Becker

                    Ok, sounds good. Thanks for trying.

                    Open in Gerrit

                    Related details

                    Attention is currently required from:
                    • Evan Stade
                    • Takashi Toyoshima
                    • Xiaohan Zhao
                    Gerrit-Attention: Xiaohan Zhao <xiaoh...@microsoft.com>
                    Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
                    Gerrit-Attention: Evan Stade <evan...@microsoft.com>
                    Gerrit-Comment-Date: Wed, 11 Mar 2026 22:40:39 +0000
                    Gerrit-HasComments: Yes
                    Gerrit-Has-Labels: No
                    satisfied_requirement
                    unsatisfied_requirement
                    open
                    diffy

                    Evan Stade (Gerrit)

                    unread,
                    Mar 12, 2026, 12:02:23 PMMar 12
                    to Xiaohan Zhao, Steve Becker, Takashi Toyoshima, Chromium IPC Reviews, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                    Attention needed from Takashi Toyoshima and Xiaohan Zhao

                    Evan Stade voted and added 2 comments

                    Votes added by Evan Stade

                    Code-Review+1

                    2 comments

                    Patchset-level comments
                    File-level comment, Patchset 12 (Latest):
                    Evan Stade . resolved

                    thanks!

                    File third_party/blink/renderer/modules/storage/cached_storage_area.cc
                    Line 168, Patchset 12 (Latest): auto source_url_and_id =
                    mojom::blink::StorageAreaSource::New(page_url, source_id);
                    Evan Stade . unresolved

                    optional nit: inline this because having a separate local variable (subjectively) reduces readability: it's an additional line, and `auto source_url_and_id` doesn't add any to legibility, and creating a local variable implies that it may be used more than once (wrongly, in this case).

                    Open in Gerrit

                    Related details

                    Attention is currently required from:
                    • Takashi Toyoshima
                    • Xiaohan Zhao
                    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: I3cb2a79b41740bad0ca9f8fa60fad807f69c408b
                      Gerrit-Change-Number: 7597837
                      Gerrit-PatchSet: 12
                      Gerrit-Owner: Xiaohan Zhao <xiaoh...@microsoft.com>
                      Gerrit-Reviewer: Evan Stade <evan...@microsoft.com>
                      Gerrit-Reviewer: Steve Becker <ste...@microsoft.com>
                      Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
                      Gerrit-Reviewer: Xiaohan Zhao <xiaoh...@microsoft.com>
                      Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                      Gerrit-CC: Jerome Jiang <ji...@chromium.org>
                      Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
                      Gerrit-CC: gwsq
                      Gerrit-Attention: Xiaohan Zhao <xiaoh...@microsoft.com>
                      Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
                      Gerrit-Comment-Date: Thu, 12 Mar 2026 16:02:13 +0000
                      Gerrit-HasComments: Yes
                      Gerrit-Has-Labels: Yes
                      satisfied_requirement
                      unsatisfied_requirement
                      open
                      diffy

                      Takashi Toyoshima (Gerrit)

                      unread,
                      Mar 12, 2026, 1:21:04 PMMar 12
                      to Xiaohan Zhao, Evan Stade, Steve Becker, Chromium IPC Reviews, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                      Attention needed from Xiaohan Zhao

                      Takashi Toyoshima voted Code-Review+1

                      Code-Review+1
                      Open in Gerrit

                      Related details

                      Attention is currently required from:
                      • Xiaohan Zhao
                      Gerrit-Comment-Date: Thu, 12 Mar 2026 17:20:32 +0000
                      Gerrit-HasComments: No
                      Gerrit-Has-Labels: Yes
                      satisfied_requirement
                      unsatisfied_requirement
                      open
                      diffy

                      Xiaohan Zhao (Gerrit)

                      unread,
                      Mar 12, 2026, 7:55:15 PMMar 12
                      to Takashi Toyoshima, Evan Stade, Steve Becker, Chromium IPC Reviews, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org

                      Xiaohan Zhao added 2 comments

                      File third_party/blink/renderer/modules/storage/cached_storage_area.cc
                      Line 168, Patchset 12 (Latest): auto source_url_and_id =
                      mojom::blink::StorageAreaSource::New(page_url, source_id);
                      Evan Stade . resolved

                      optional nit: inline this because having a separate local variable (subjectively) reduces readability: it's an additional line, and `auto source_url_and_id` doesn't add any to legibility, and creating a local variable implies that it may be used more than once (wrongly, in this case).

                      Xiaohan Zhao

                      Thanks for catching this! I updated it in the latest ps.

                      File third_party/blink/renderer/modules/storage/testing/mock_storage_area.h
                      Line 37, Patchset 12 (Latest): ObservedPut& operator=(const ObservedPut&) = delete;
                      Steve Becker . resolved

                      nit: there's no reason to delete the assignment operator when implementing the copy constructor. With copy semantics, we should either provide all or nothing.

                      See https://abseil.io/tips/143

                      Xiaohan Zhao

                      Thanks for catching that. I updated that in the latest ps.

                      Open in Gerrit

                      Related details

                      Attention set is empty
                      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: I3cb2a79b41740bad0ca9f8fa60fad807f69c408b
                        Gerrit-Change-Number: 7597837
                        Gerrit-PatchSet: 12
                        Gerrit-Owner: Xiaohan Zhao <xiaoh...@microsoft.com>
                        Gerrit-Reviewer: Evan Stade <evan...@microsoft.com>
                        Gerrit-Reviewer: Steve Becker <ste...@microsoft.com>
                        Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
                        Gerrit-Reviewer: Xiaohan Zhao <xiaoh...@microsoft.com>
                        Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                        Gerrit-CC: Jerome Jiang <ji...@chromium.org>
                        Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
                        Gerrit-CC: gwsq
                        Gerrit-Comment-Date: Thu, 12 Mar 2026 23:55:05 +0000
                        Gerrit-HasComments: Yes
                        Gerrit-Has-Labels: No
                        satisfied_requirement
                        unsatisfied_requirement
                        open
                        diffy

                        Xiaohan Zhao (Gerrit)

                        unread,
                        Mar 12, 2026, 8:05:43 PMMar 12
                        to Ayu Ishii, Emilia Paz, Takashi Toyoshima, Evan Stade, Steve Becker, Chromium IPC Reviews, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                        Attention needed from Ayu Ishii, Emilia Paz, Evan Stade, Steve Becker and Takashi Toyoshima

                        Xiaohan Zhao added 1 comment

                        Patchset-level comments
                        File-level comment, Patchset 12:
                        Xiaohan Zhao . resolved

                        Hi Ayu and Emilia, this CL mainly updates tests after replacing the `source` string with a mojom struct, so the corresponding test strings are now nullptr. PTAL! Thanks!

                        Open in Gerrit

                        Related details

                        Attention is currently required from:
                        • Ayu Ishii
                        • Emilia Paz
                        • Evan Stade
                        • Steve Becker
                        • Takashi Toyoshima
                          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: I3cb2a79b41740bad0ca9f8fa60fad807f69c408b
                            Gerrit-Change-Number: 7597837
                            Gerrit-PatchSet: 12
                            Gerrit-Owner: Xiaohan Zhao <xiaoh...@microsoft.com>
                            Gerrit-Reviewer: Ayu Ishii <ay...@chromium.org>
                            Gerrit-Reviewer: Emilia Paz <emil...@chromium.org>
                            Gerrit-Reviewer: Evan Stade <evan...@microsoft.com>
                            Gerrit-Reviewer: Steve Becker <ste...@microsoft.com>
                            Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
                            Gerrit-Reviewer: Xiaohan Zhao <xiaoh...@microsoft.com>
                            Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                            Gerrit-CC: Jerome Jiang <ji...@chromium.org>
                            Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
                            Gerrit-CC: gwsq
                            Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
                            Gerrit-Attention: Evan Stade <evan...@microsoft.com>
                            Gerrit-Attention: Steve Becker <ste...@microsoft.com>
                            Gerrit-Attention: Emilia Paz <emil...@chromium.org>
                            Gerrit-Attention: Ayu Ishii <ay...@chromium.org>
                            Gerrit-Comment-Date: Fri, 13 Mar 2026 00:05:33 +0000
                            Gerrit-HasComments: Yes
                            Gerrit-Has-Labels: No
                            satisfied_requirement
                            unsatisfied_requirement
                            open
                            diffy

                            Emilia Paz (Gerrit)

                            unread,
                            Mar 12, 2026, 8:22:43 PMMar 12
                            to Xiaohan Zhao, Ayu Ishii, Takashi Toyoshima, Evan Stade, Steve Becker, Chromium IPC Reviews, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                            Attention needed from Ayu Ishii, Evan Stade, Steve Becker, Takashi Toyoshima and Xiaohan Zhao

                            Emilia Paz voted and added 1 comment

                            Votes added by Emilia Paz

                            Code-Review+1

                            1 comment

                            Patchset-level comments
                            File-level comment, Patchset 13 (Latest):
                            Emilia Paz . resolved

                            extensions mechanical change lgtm

                            Open in Gerrit

                            Related details

                            Attention is currently required from:
                            • Ayu Ishii
                            • Evan Stade
                            • Steve Becker
                            • Takashi Toyoshima
                            • Xiaohan Zhao
                            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: I3cb2a79b41740bad0ca9f8fa60fad807f69c408b
                            Gerrit-Change-Number: 7597837
                            Gerrit-PatchSet: 13
                            Gerrit-Owner: Xiaohan Zhao <xiaoh...@microsoft.com>
                            Gerrit-Reviewer: Ayu Ishii <ay...@chromium.org>
                            Gerrit-Reviewer: Emilia Paz <emil...@chromium.org>
                            Gerrit-Reviewer: Evan Stade <evan...@microsoft.com>
                            Gerrit-Reviewer: Steve Becker <ste...@microsoft.com>
                            Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
                            Gerrit-Reviewer: Xiaohan Zhao <xiaoh...@microsoft.com>
                            Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                            Gerrit-CC: Jerome Jiang <ji...@chromium.org>
                            Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
                            Gerrit-CC: gwsq
                            Gerrit-Attention: Xiaohan Zhao <xiaoh...@microsoft.com>
                            Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
                            Gerrit-Attention: Evan Stade <evan...@microsoft.com>
                            Gerrit-Attention: Steve Becker <ste...@microsoft.com>
                            Gerrit-Attention: Ayu Ishii <ay...@chromium.org>
                            Gerrit-Comment-Date: Fri, 13 Mar 2026 00:22:20 +0000
                            Gerrit-HasComments: Yes
                            Gerrit-Has-Labels: Yes
                            satisfied_requirement
                            unsatisfied_requirement
                            open
                            diffy

                            Evan Stade (Gerrit)

                            unread,
                            Mar 13, 2026, 11:10:11 AMMar 13
                            to Xiaohan Zhao, Ayu Ishii, Takashi Toyoshima, Steve Becker, Chromium IPC Reviews, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                            Attention needed from Ayu Ishii, Steve Becker, Takashi Toyoshima and Xiaohan Zhao

                            Evan Stade voted and added 3 comments

                            Votes added by Evan Stade

                            Code-Review+1

                            3 comments

                            File third_party/blink/renderer/modules/storage/cached_storage_area.cc
                            Line 99, Patchset 13 (Latest): auto source_url_and_id =
                            Evan Stade . unresolved

                            ditto

                            Line 128, Patchset 13 (Latest): auto source_url_and_id =
                            Evan Stade . unresolved

                            ditto

                            Line 700, Patchset 13 (Latest): const String& url,
                            Evan Stade . unresolved

                            nit: might as well update this arg to `KURL` while we're at it? I would even say that StorageEvent::url_ should be a KURL but that is a bridge too far for this particular CL.

                            Open in Gerrit

                            Related details

                            Attention is currently required from:
                            • Ayu Ishii
                            • Steve Becker
                            • Takashi Toyoshima
                            • Xiaohan Zhao
                              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: I3cb2a79b41740bad0ca9f8fa60fad807f69c408b
                                Gerrit-Change-Number: 7597837
                                Gerrit-PatchSet: 13
                                Gerrit-Owner: Xiaohan Zhao <xiaoh...@microsoft.com>
                                Gerrit-Reviewer: Ayu Ishii <ay...@chromium.org>
                                Gerrit-Reviewer: Emilia Paz <emil...@chromium.org>
                                Gerrit-Reviewer: Evan Stade <evan...@microsoft.com>
                                Gerrit-Reviewer: Steve Becker <ste...@microsoft.com>
                                Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
                                Gerrit-Reviewer: Xiaohan Zhao <xiaoh...@microsoft.com>
                                Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                                Gerrit-CC: Jerome Jiang <ji...@chromium.org>
                                Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
                                Gerrit-CC: gwsq
                                Gerrit-Attention: Xiaohan Zhao <xiaoh...@microsoft.com>
                                Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
                                Gerrit-Attention: Steve Becker <ste...@microsoft.com>
                                Gerrit-Attention: Ayu Ishii <ay...@chromium.org>
                                Gerrit-Comment-Date: Fri, 13 Mar 2026 15:09:59 +0000
                                Gerrit-HasComments: Yes
                                Gerrit-Has-Labels: Yes
                                satisfied_requirement
                                unsatisfied_requirement
                                open
                                diffy

                                Steve Becker (Gerrit)

                                unread,
                                Mar 13, 2026, 12:47:01 PMMar 13
                                to Xiaohan Zhao, Evan Stade, Ayu Ishii, Takashi Toyoshima, Chromium IPC Reviews, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                                Attention needed from Ayu Ishii, Takashi Toyoshima and Xiaohan Zhao

                                Steve Becker voted and added 1 comment

                                Votes added by Steve Becker

                                Code-Review+1

                                1 comment

                                File third_party/blink/renderer/modules/storage/cached_storage_area.cc
                                Evan Stade . unresolved

                                nit: might as well update this arg to `KURL` while we're at it? I would even say that StorageEvent::url_ should be a KURL but that is a bridge too far for this particular CL.

                                Steve Becker

                                Maybe we can do this improvement in a separate change since this is already large?

                                Open in Gerrit

                                Related details

                                Attention is currently required from:
                                • Ayu Ishii
                                • Takashi Toyoshima
                                • Xiaohan Zhao
                                Gerrit-Attention: Ayu Ishii <ay...@chromium.org>
                                Gerrit-Comment-Date: Fri, 13 Mar 2026 16:46:51 +0000
                                Gerrit-HasComments: Yes
                                Gerrit-Has-Labels: Yes
                                Comment-In-Reply-To: Evan Stade <evan...@microsoft.com>
                                satisfied_requirement
                                unsatisfied_requirement
                                open
                                diffy

                                Xiaohan Zhao (Gerrit)

                                unread,
                                Mar 13, 2026, 4:05:00 PMMar 13
                                to Daniel Cheng, Steve Becker, Evan Stade, Ayu Ishii, Takashi Toyoshima, Chromium IPC Reviews, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                                Attention needed from Ayu Ishii, Daniel Cheng and Takashi Toyoshima

                                Xiaohan Zhao added 1 comment

                                Patchset-level comments
                                Xiaohan Zhao . resolved

                                Hi Daniel, adding you for approval since this CL updates `audit_non_blink_usage.py` to allow `absl::flat_hash_map` usage in blink. Thanks!

                                Open in Gerrit

                                Related details

                                Attention is currently required from:
                                • Ayu Ishii
                                • Daniel Cheng
                                • Takashi Toyoshima
                                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: I3cb2a79b41740bad0ca9f8fa60fad807f69c408b
                                Gerrit-Change-Number: 7597837
                                Gerrit-PatchSet: 13
                                Gerrit-Owner: Xiaohan Zhao <xiaoh...@microsoft.com>
                                Gerrit-Reviewer: Ayu Ishii <ay...@chromium.org>
                                Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
                                Gerrit-Reviewer: Emilia Paz <emil...@chromium.org>
                                Gerrit-Reviewer: Evan Stade <evan...@microsoft.com>
                                Gerrit-Reviewer: Steve Becker <ste...@microsoft.com>
                                Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
                                Gerrit-Reviewer: Xiaohan Zhao <xiaoh...@microsoft.com>
                                Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                                Gerrit-CC: Jerome Jiang <ji...@chromium.org>
                                Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
                                Gerrit-CC: gwsq
                                Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
                                Gerrit-Attention: Ayu Ishii <ay...@chromium.org>
                                Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
                                Gerrit-Comment-Date: Fri, 13 Mar 2026 20:04:46 +0000
                                Gerrit-HasComments: Yes
                                Gerrit-Has-Labels: No
                                satisfied_requirement
                                unsatisfied_requirement
                                open
                                diffy

                                Xiaohan Zhao (Gerrit)

                                unread,
                                Mar 13, 2026, 4:17:37 PMMar 13
                                to Daniel Cheng, Steve Becker, Evan Stade, Ayu Ishii, Takashi Toyoshima, Chromium IPC Reviews, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                                Attention needed from Ayu Ishii, Daniel Cheng and Takashi Toyoshima

                                Xiaohan Zhao added 1 comment

                                File third_party/blink/renderer/modules/storage/cached_storage_area.cc
                                Evan Stade . resolved

                                nit: might as well update this arg to `KURL` while we're at it? I would even say that StorageEvent::url_ should be a KURL but that is a bridge too far for this particular CL.

                                Steve Becker

                                Maybe we can do this improvement in a separate change since this is already large?

                                Xiaohan Zhao

                                I'll address this in the relation chained follow-up CL. Thanks!

                                Gerrit-Comment-Date: Fri, 13 Mar 2026 20:17:28 +0000
                                Gerrit-HasComments: Yes
                                Gerrit-Has-Labels: No
                                satisfied_requirement
                                unsatisfied_requirement
                                open
                                diffy

                                Xiaohan Zhao (Gerrit)

                                unread,
                                Mar 13, 2026, 4:33:24 PMMar 13
                                to Daniel Cheng, Steve Becker, Evan Stade, Emilia Paz, Ayu Ishii, Takashi Toyoshima, Chromium IPC Reviews, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                                Attention needed from Ayu Ishii, Daniel Cheng, Emilia Paz, Evan Stade, Steve Becker and Takashi Toyoshima

                                Xiaohan Zhao added 2 comments

                                File third_party/blink/renderer/modules/storage/cached_storage_area.cc
                                Line 99, Patchset 13: auto source_url_and_id =
                                Evan Stade . resolved

                                ditto

                                Xiaohan Zhao

                                Done

                                Line 128, Patchset 13: auto source_url_and_id =
                                Evan Stade . resolved

                                ditto

                                Xiaohan Zhao

                                Done

                                Open in Gerrit

                                Related details

                                Attention is currently required from:
                                • Ayu Ishii
                                • Daniel Cheng
                                • Emilia Paz
                                • Evan Stade
                                • Steve Becker
                                • Takashi Toyoshima
                                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: I3cb2a79b41740bad0ca9f8fa60fad807f69c408b
                                  Gerrit-Change-Number: 7597837
                                  Gerrit-PatchSet: 13
                                  Gerrit-Owner: Xiaohan Zhao <xiaoh...@microsoft.com>
                                  Gerrit-Reviewer: Ayu Ishii <ay...@chromium.org>
                                  Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
                                  Gerrit-Reviewer: Emilia Paz <emil...@chromium.org>
                                  Gerrit-Reviewer: Evan Stade <evan...@microsoft.com>
                                  Gerrit-Reviewer: Steve Becker <ste...@microsoft.com>
                                  Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
                                  Gerrit-Reviewer: Xiaohan Zhao <xiaoh...@microsoft.com>
                                  Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                                  Gerrit-CC: Jerome Jiang <ji...@chromium.org>
                                  Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
                                  Gerrit-CC: gwsq
                                  Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
                                  Gerrit-Attention: Evan Stade <evan...@microsoft.com>
                                  Gerrit-Attention: Steve Becker <ste...@microsoft.com>
                                  Gerrit-Attention: Emilia Paz <emil...@chromium.org>
                                  Gerrit-Attention: Ayu Ishii <ay...@chromium.org>
                                  Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
                                  Gerrit-Comment-Date: Fri, 13 Mar 2026 20:33:14 +0000
                                  satisfied_requirement
                                  unsatisfied_requirement
                                  open
                                  diffy

                                  Emilia Paz (Gerrit)

                                  unread,
                                  Mar 13, 2026, 5:16:13 PMMar 13
                                  to Xiaohan Zhao, Daniel Cheng, Steve Becker, Evan Stade, Ayu Ishii, Takashi Toyoshima, Chromium IPC Reviews, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                                  Attention needed from Ayu Ishii, Daniel Cheng, Evan Stade, Steve Becker, Takashi Toyoshima and Xiaohan Zhao

                                  Emilia Paz voted and added 1 comment

                                  Votes added by Emilia Paz

                                  Code-Review+1

                                  1 comment

                                  Patchset-level comments
                                  File-level comment, Patchset 14 (Latest):
                                  Emilia Paz . resolved

                                  extensions slgtm

                                  Open in Gerrit

                                  Related details

                                  Attention is currently required from:
                                  • Ayu Ishii
                                  • Daniel Cheng
                                  • Evan Stade
                                  • Steve Becker
                                  • Takashi Toyoshima
                                  • Xiaohan Zhao
                                  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: I3cb2a79b41740bad0ca9f8fa60fad807f69c408b
                                  Gerrit-Change-Number: 7597837
                                  Gerrit-PatchSet: 14
                                  Gerrit-Owner: Xiaohan Zhao <xiaoh...@microsoft.com>
                                  Gerrit-Reviewer: Ayu Ishii <ay...@chromium.org>
                                  Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
                                  Gerrit-Reviewer: Emilia Paz <emil...@chromium.org>
                                  Gerrit-Reviewer: Evan Stade <evan...@microsoft.com>
                                  Gerrit-Reviewer: Steve Becker <ste...@microsoft.com>
                                  Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
                                  Gerrit-Reviewer: Xiaohan Zhao <xiaoh...@microsoft.com>
                                  Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                                  Gerrit-CC: Jerome Jiang <ji...@chromium.org>
                                  Gerrit-CC: Mirko Bonadei <mbon...@chromium.org>
                                  Gerrit-CC: gwsq
                                  Gerrit-Attention: Xiaohan Zhao <xiaoh...@microsoft.com>
                                  Gerrit-Attention: Takashi Toyoshima <toyo...@chromium.org>
                                  Gerrit-Attention: Evan Stade <evan...@microsoft.com>
                                  Gerrit-Attention: Steve Becker <ste...@microsoft.com>
                                  Gerrit-Attention: Ayu Ishii <ay...@chromium.org>
                                  Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
                                  Gerrit-Comment-Date: Fri, 13 Mar 2026 21:16:02 +0000
                                  Gerrit-HasComments: Yes
                                  Gerrit-Has-Labels: Yes
                                  satisfied_requirement
                                  unsatisfied_requirement
                                  open
                                  diffy

                                  Steve Becker (Gerrit)

                                  unread,
                                  Mar 13, 2026, 6:02:25 PMMar 13
                                  to Xiaohan Zhao, Daniel Cheng, Evan Stade, Ayu Ishii, Takashi Toyoshima, Chromium IPC Reviews, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                                  Attention needed from Ayu Ishii, Daniel Cheng, Evan Stade, Takashi Toyoshima and Xiaohan Zhao

                                  Steve Becker voted Code-Review+1

                                  Code-Review+1
                                  Open in Gerrit

                                  Related details

                                  Attention is currently required from:
                                  • Ayu Ishii
                                  • Daniel Cheng
                                  • Evan Stade
                                  • Takashi Toyoshima
                                  • Xiaohan Zhao
                                  Submit Requirements:
                                    • requirement satisfiedCode-Coverage
                                    • requirement is not satisfiedCode-Owners
                                    • requirement satisfiedCode-Review
                                    • requirement satisfiedReview-Enforcement
                                    Gerrit-Attention: Ayu Ishii <ay...@chromium.org>
                                    Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
                                    Gerrit-Comment-Date: Fri, 13 Mar 2026 22:02:15 +0000
                                    Gerrit-HasComments: No
                                    Gerrit-Has-Labels: Yes
                                    satisfied_requirement
                                    unsatisfied_requirement
                                    open
                                    diffy

                                    Ayu Ishii (Gerrit)

                                    unread,
                                    Mar 13, 2026, 6:58:32 PMMar 13
                                    to Xiaohan Zhao, Steve Becker, Daniel Cheng, Evan Stade, Takashi Toyoshima, Chromium IPC Reviews, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                                    Attention needed from Daniel Cheng, Evan Stade, Takashi Toyoshima and Xiaohan Zhao

                                    Ayu Ishii voted and added 1 comment

                                    Votes added by Ayu Ishii

                                    Code-Review+1

                                    1 comment

                                    Patchset-level comments
                                    Ayu Ishii . resolved

                                    LGTM browsing_data

                                    Open in Gerrit

                                    Related details

                                    Attention is currently required from:
                                    Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
                                    Gerrit-Comment-Date: Fri, 13 Mar 2026 22:58:22 +0000
                                    Gerrit-HasComments: Yes
                                    Gerrit-Has-Labels: Yes
                                    satisfied_requirement
                                    unsatisfied_requirement
                                    open
                                    diffy

                                    Takashi Toyoshima (Gerrit)

                                    unread,
                                    Mar 16, 2026, 12:24:07 PMMar 16
                                    to Xiaohan Zhao, Ayu Ishii, Steve Becker, Daniel Cheng, Evan Stade, Chromium IPC Reviews, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                                    Attention needed from Daniel Cheng, Evan Stade and Xiaohan Zhao

                                    Takashi Toyoshima voted Code-Review+1

                                    Code-Review+1
                                    Open in Gerrit

                                    Related details

                                    Attention is currently required from:
                                    • Daniel Cheng
                                    • Evan Stade
                                    • Xiaohan Zhao
                                    Gerrit-Attention: Evan Stade <evan...@microsoft.com>
                                    Gerrit-Attention: Daniel Cheng <dch...@chromium.org>
                                    Gerrit-Comment-Date: Mon, 16 Mar 2026 16:23:31 +0000
                                    Gerrit-HasComments: No
                                    Gerrit-Has-Labels: Yes
                                    satisfied_requirement
                                    unsatisfied_requirement
                                    open
                                    diffy

                                    Daniel Cheng (Gerrit)

                                    unread,
                                    Mar 16, 2026, 5:12:48 PMMar 16
                                    to Xiaohan Zhao, Daniel Cheng, Takashi Toyoshima, Ayu Ishii, Steve Becker, Evan Stade, Chromium IPC Reviews, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                                    Attention needed from Evan Stade and Xiaohan Zhao

                                    Daniel Cheng voted and added 1 comment

                                    Votes added by Daniel Cheng

                                    Code-Review+1

                                    1 comment

                                    Patchset-level comments
                                    Daniel Cheng . resolved

                                    LGTM, thanks–this seems much nicer overall

                                    Open in Gerrit

                                    Related details

                                    Attention is currently required from:
                                    • Evan Stade
                                    • Xiaohan Zhao
                                    Submit Requirements:
                                    • requirement satisfiedCode-Coverage
                                    • requirement satisfiedCode-Owners
                                    Gerrit-Comment-Date: Mon, 16 Mar 2026 21:12:29 +0000
                                    Gerrit-HasComments: Yes
                                    Gerrit-Has-Labels: Yes
                                    satisfied_requirement
                                    open
                                    diffy

                                    Xiaohan Zhao (Gerrit)

                                    unread,
                                    Mar 16, 2026, 7:50:50 PMMar 16
                                    to Daniel Cheng, Takashi Toyoshima, Ayu Ishii, Steve Becker, Evan Stade, Chromium IPC Reviews, Chromium LUCI CQ, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org
                                    Attention needed from Evan Stade

                                    Xiaohan Zhao voted Commit-Queue+2

                                    Commit-Queue+2
                                    Open in Gerrit

                                    Related details

                                    Attention is currently required from:
                                    • Evan Stade
                                    Gerrit-Attention: Evan Stade <evan...@microsoft.com>
                                    Gerrit-Comment-Date: Mon, 16 Mar 2026 23:50:38 +0000
                                    Gerrit-HasComments: No
                                    Gerrit-Has-Labels: Yes
                                    satisfied_requirement
                                    open
                                    diffy

                                    Chromium LUCI CQ (Gerrit)

                                    unread,
                                    Mar 16, 2026, 10:57:42 PMMar 16
                                    to Xiaohan Zhao, Daniel Cheng, Takashi Toyoshima, Ayu Ishii, Steve Becker, Emilia Paz, Evan Stade, Chromium IPC Reviews, Mirko Bonadei, Jerome Jiang, AyeAye, chromium...@chromium.org, extension...@chromium.org, dullweb...@chromium.org, chromium-a...@chromium.org, msrame...@chromium.org, chrome-intelligence-te...@google.com, cblume...@chromium.org, fuzzin...@chromium.org, devtools...@chromium.org, feature-me...@chromium.org, jz...@chromium.org, penghuan...@chromium.org, fgal...@chromium.org, mar...@chromium.org, chrome-intell...@chromium.org, blink-re...@chromium.org, blink-...@chromium.org, dmurph+watchi...@chromium.org, dmurph+watching...@chromium.org, dmurph+watch...@chromium.org, edgesto...@microsoft.com, ipc-securi...@chromium.org, kinuko...@chromium.org, storage...@chromium.org

                                    Chromium LUCI CQ submitted the change

                                    Change information

                                    Commit message:
                                    [DOM Storage] Replace string source with StorageAreaSource struct

                                    Replace the opaque string `source` parameter in the StorageArea mojom
                                    interface and StorageAreaObserver with a new StorageAreaSource struct
                                    containing typed `page_url` (url.mojom.Url) and `storage_area_id` (mojo_base.mojom.Token, mapped to base::Token) fields.

                                    Previously, the page URL and storage area ID were packed into a single
                                    newline-delimited string. This was fragile and required manual
                                    pack/unpack helpers (PackSource/UnpackSource). The new struct makes the
                                    API self-documenting and type-safe.


                                    Bug: 477645291
                                    Change-Id: I3cb2a79b41740bad0ca9f8fa60fad807f69c408b
                                    Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/7597837
                                    Commit-Queue: Xiaohan Zhao <xiaoh...@microsoft.com>
                                    Reviewed-by: Steve Becker <ste...@microsoft.com>
                                    Reviewed-by: Emilia Paz <emil...@chromium.org>
                                    Reviewed-by: Takashi Toyoshima <toyo...@chromium.org>
                                    Reviewed-by: Daniel Cheng <dch...@chromium.org>
                                    Reviewed-by: Ayu Ishii <ay...@chromium.org>
                                    Cr-Commit-Position: refs/heads/main@{#1600287}
                                    Files:
                                    • M chrome/browser/browsing_data/chrome_browsing_data_remover_delegate_unittest.cc
                                    • M chrome/browser/browsing_data/counters/site_data_counting_helper_unittest.cc
                                    • M chrome/browser/extensions/api/browsing_data/browsing_data_test.cc
                                    • M chrome/browser/extensions/extension_service_unittest.cc
                                    • M components/browsing_data/content/local_storage_helper_browsertest.cc
                                    • M components/services/storage/dom_storage/local_storage_impl.cc
                                    • M components/services/storage/dom_storage/local_storage_impl_unittest.cc
                                    • M components/services/storage/dom_storage/session_storage_area_impl.cc
                                    • M components/services/storage/dom_storage/session_storage_area_impl.h
                                    • M components/services/storage/dom_storage/session_storage_area_impl_unittest.cc
                                    • M components/services/storage/dom_storage/session_storage_impl_unittest.cc
                                    • M components/services/storage/dom_storage/session_storage_namespace_impl.cc
                                    • M components/services/storage/dom_storage/session_storage_namespace_impl_unittest.cc
                                    • M components/services/storage/dom_storage/storage_area_impl.cc
                                    • M components/services/storage/dom_storage/storage_area_impl.h
                                    • M components/services/storage/dom_storage/storage_area_impl_unittest.cc
                                    • M components/services/storage/dom_storage/test_support/storage_area_test_util.cc
                                    • M components/services/storage/dom_storage/test_support/storage_area_test_util.h
                                    • M third_party/blink/public/mojom/dom_storage/storage_area.mojom
                                    • M third_party/blink/renderer/modules/storage/cached_storage_area.cc
                                    • M third_party/blink/renderer/modules/storage/cached_storage_area.h
                                    • M third_party/blink/renderer/modules/storage/cached_storage_area_test.cc
                                    • M third_party/blink/renderer/modules/storage/testing/mock_storage_area.cc
                                    • M third_party/blink/renderer/modules/storage/testing/mock_storage_area.h
                                    • M third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py
                                    Change size: XL
                                    Delta: 25 files changed, 629 insertions(+), 422 deletions(-)
                                    Branch: refs/heads/main
                                    Submit Requirements:
                                    • requirement satisfiedCode-Review: +1 by Emilia Paz, +1 by Ayu Ishii, +1 by Steve Becker, +1 by Daniel Cheng, +1 by Takashi Toyoshima
                                    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: I3cb2a79b41740bad0ca9f8fa60fad807f69c408b
                                    Gerrit-Change-Number: 7597837
                                    Gerrit-PatchSet: 15
                                    Gerrit-Owner: Xiaohan Zhao <xiaoh...@microsoft.com>
                                    Gerrit-Reviewer: Ayu Ishii <ay...@chromium.org>
                                    Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
                                    Gerrit-Reviewer: Daniel Cheng <dch...@chromium.org>
                                    Gerrit-Reviewer: Emilia Paz <emil...@chromium.org>
                                    Gerrit-Reviewer: Evan Stade <evan...@microsoft.com>
                                    Gerrit-Reviewer: Steve Becker <ste...@microsoft.com>
                                    Gerrit-Reviewer: Takashi Toyoshima <toyo...@chromium.org>
                                    Gerrit-Reviewer: Xiaohan Zhao <xiaoh...@microsoft.com>
                                    Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
                                    open
                                    diffy
                                    satisfied_requirement
                                    Reply all
                                    Reply to author
                                    Forward
                                    0 new messages