[soft navs] Simplify the FrameRenderDataUpdate mojom struct [chromium/src : main]

0 views
Skip to first unread message

Johannes Henkel (Gerrit)

unread,
Jan 22, 2026, 1:29:16 PM (8 days ago) Jan 22
to Annie Sullivan, Michal Mocny, Chromium LUCI CQ, chromium...@chromium.org, bmcquad...@chromium.org, core-web-vita...@chromium.org, csharris...@chromium.org, ipc-securi...@chromium.org, loading-rev...@chromium.org, speed-metrics...@chromium.org, speed-metr...@chromium.org
Attention needed from Annie Sullivan and Michal Mocny

New activity on the change

Open in Gerrit

Related details

Attention is currently required from:
  • Annie Sullivan
  • Michal Mocny
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: I719c3a28d7805bb545c5dd11b02d1a70d43640de
Gerrit-Change-Number: 7507033
Gerrit-PatchSet: 8
Gerrit-Owner: Johannes Henkel <joha...@chromium.org>
Gerrit-Reviewer: Annie Sullivan <sull...@chromium.org>
Gerrit-Reviewer: Johannes Henkel <joha...@chromium.org>
Gerrit-Reviewer: Michal Mocny <mmo...@chromium.org>
Gerrit-Attention: Annie Sullivan <sull...@chromium.org>
Gerrit-Attention: Michal Mocny <mmo...@chromium.org>
Gerrit-Comment-Date: Thu, 22 Jan 2026 18:29:06 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Annie Sullivan (Gerrit)

unread,
Jan 26, 2026, 10:07:26 AM (5 days ago) Jan 26
to Johannes Henkel, Michal Mocny, Chromium LUCI CQ, chromium...@chromium.org, bmcquad...@chromium.org, core-web-vita...@chromium.org, csharris...@chromium.org, ipc-securi...@chromium.org, loading-rev...@chromium.org, speed-metrics...@chromium.org, speed-metr...@chromium.org
Attention needed from Johannes Henkel and Michal Mocny

Annie Sullivan voted Code-Review+1

Code-Review+1
Open in Gerrit

Related details

Attention is currently required from:
  • Johannes Henkel
  • Michal Mocny
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: I719c3a28d7805bb545c5dd11b02d1a70d43640de
    Gerrit-Change-Number: 7507033
    Gerrit-PatchSet: 8
    Gerrit-Owner: Johannes Henkel <joha...@chromium.org>
    Gerrit-Reviewer: Annie Sullivan <sull...@chromium.org>
    Gerrit-Reviewer: Johannes Henkel <joha...@chromium.org>
    Gerrit-Reviewer: Michal Mocny <mmo...@chromium.org>
    Gerrit-Attention: Johannes Henkel <joha...@chromium.org>
    Gerrit-Attention: Michal Mocny <mmo...@chromium.org>
    Gerrit-Comment-Date: Mon, 26 Jan 2026 15:07:17 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    unsatisfied_requirement
    open
    diffy

    Michal Mocny (Gerrit)

    unread,
    Jan 26, 2026, 10:17:52 AM (5 days ago) Jan 26
    to Johannes Henkel, Annie Sullivan, Chromium LUCI CQ, chromium...@chromium.org, bmcquad...@chromium.org, core-web-vita...@chromium.org, csharris...@chromium.org, ipc-securi...@chromium.org, loading-rev...@chromium.org, speed-metrics...@chromium.org, speed-metr...@chromium.org
    Attention needed from Johannes Henkel

    Michal Mocny added 2 comments

    Patchset-level comments
    File-level comment, Patchset 8 (Latest):
    Michal Mocny . resolved

    I love the direction of just sending the data and allowing the browser-side to slice using timestamps. This has been the long-arch direction of these metrics: report data and move more of the algo completely to browser.

    However-- could you take it a step further and actually compare to the First Input or Scroll timestamp? (see below)

    Commit Message
    Line 16, Patchset 8 (Latest):Instead, this change adds the after_input_or_scroll bool to the
    Michal Mocny . unresolved

    I notice that the `PaintTiming` part of mojo message already seems to report the `first_input_or_scroll_notified_timestamp;` and each shift reports its own timestamp...

    Could we check if we have the FIoS time and compare timestamps?

    Open in Gerrit

    Related details

    Attention is currently required from:
    • Johannes Henkel
    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: I719c3a28d7805bb545c5dd11b02d1a70d43640de
      Gerrit-Change-Number: 7507033
      Gerrit-PatchSet: 8
      Gerrit-Owner: Johannes Henkel <joha...@chromium.org>
      Gerrit-Reviewer: Annie Sullivan <sull...@chromium.org>
      Gerrit-Reviewer: Johannes Henkel <joha...@chromium.org>
      Gerrit-Reviewer: Michal Mocny <mmo...@chromium.org>
      Gerrit-Attention: Johannes Henkel <joha...@chromium.org>
      Gerrit-Comment-Date: Mon, 26 Jan 2026 15:17:44 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Michal Mocny (Gerrit)

      unread,
      Jan 26, 2026, 10:24:23 AM (5 days ago) Jan 26
      to Johannes Henkel, Annie Sullivan, Chromium LUCI CQ, chromium...@chromium.org, bmcquad...@chromium.org, core-web-vita...@chromium.org, csharris...@chromium.org, ipc-securi...@chromium.org, loading-rev...@chromium.org, speed-metrics...@chromium.org, speed-metr...@chromium.org
      Attention needed from Johannes Henkel

      Michal Mocny added 1 comment

      File components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc
      Line 795, Patchset 8 (Latest): if (!has_seen_input_or_scroll_) {
      Michal Mocny . unresolved

      Also I see that we already guard on this here, which might have been set earlier but before the CLS values are accumulated.

      I.e. I think there's a chance we have a shift and interaction buffered and sent together and we might skip accumulating it.

      This isn't a big deal and would be rare, but I point it out because you might FIX this issue and see (expected) shifts in the field data as a result.

      I suggest instead of comparing to a bool here, you compare actual timestamps.

      Gerrit-Comment-Date: Mon, 26 Jan 2026 15:24:15 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Johannes Henkel (Gerrit)

      unread,
      Jan 27, 2026, 9:45:15 PM (3 days ago) Jan 27
      to Annie Sullivan, Michal Mocny, Chromium LUCI CQ, chromium...@chromium.org, bmcquad...@chromium.org, core-web-vita...@chromium.org, csharris...@chromium.org, ipc-securi...@chromium.org, loading-rev...@chromium.org, speed-metrics...@chromium.org, speed-metr...@chromium.org
      Attention needed from Michal Mocny

      Johannes Henkel added 2 comments

      Commit Message
      Line 16, Patchset 8:Instead, this change adds the after_input_or_scroll bool to the
      Michal Mocny . unresolved

      I notice that the `PaintTiming` part of mojo message already seems to report the `first_input_or_scroll_notified_timestamp;` and each shift reports its own timestamp...

      Could we check if we have the FIoS time and compare timestamps?

      Johannes Henkel

      I don't want to do this for now, but added a comment.

      Thanks a lot and please let me know if it's ok with you to get this submitted as is.

      File components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc
      Line 795, Patchset 8: if (!has_seen_input_or_scroll_) {
      Michal Mocny . resolved

      Also I see that we already guard on this here, which might have been set earlier but before the CLS values are accumulated.

      I.e. I think there's a chance we have a shift and interaction buffered and sent together and we might skip accumulating it.

      This isn't a big deal and would be rare, but I point it out because you might FIX this issue and see (expected) shifts in the field data as a result.

      I suggest instead of comparing to a bool here, you compare actual timestamps.

      Johannes Henkel

      This is a good point. I added a comment for now, I think for now this part here
      isn't related to soft navigations and would add risk to the cl, also because
      the timestamps I'd need to use aren't base::TimeTicks right now, they're converted several times, so this would require quite a bit more plumbing / refactoring.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Michal Mocny
      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: I719c3a28d7805bb545c5dd11b02d1a70d43640de
      Gerrit-Change-Number: 7507033
      Gerrit-PatchSet: 8
      Gerrit-Owner: Johannes Henkel <joha...@chromium.org>
      Gerrit-Reviewer: Annie Sullivan <sull...@chromium.org>
      Gerrit-Reviewer: Johannes Henkel <joha...@chromium.org>
      Gerrit-Reviewer: Michal Mocny <mmo...@chromium.org>
      Gerrit-Attention: Michal Mocny <mmo...@chromium.org>
      Gerrit-Comment-Date: Wed, 28 Jan 2026 02:45:05 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: No
      Comment-In-Reply-To: Michal Mocny <mmo...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Michal Mocny (Gerrit)

      unread,
      Jan 28, 2026, 11:16:58 AM (3 days ago) Jan 28
      to Johannes Henkel, Annie Sullivan, Chromium LUCI CQ, chromium...@chromium.org, bmcquad...@chromium.org, core-web-vita...@chromium.org, csharris...@chromium.org, ipc-securi...@chromium.org, loading-rev...@chromium.org, speed-metrics...@chromium.org, speed-metr...@chromium.org
      Attention needed from Johannes Henkel

      Michal Mocny voted and added 4 comments

      Votes added by Michal Mocny

      Code-Review+1

      4 comments

      Commit Message
      Line 16, Patchset 8:Instead, this change adds the after_input_or_scroll bool to the
      Michal Mocny . resolved

      I notice that the `PaintTiming` part of mojo message already seems to report the `first_input_or_scroll_notified_timestamp;` and each shift reports its own timestamp...

      Could we check if we have the FIoS time and compare timestamps?

      Johannes Henkel

      I don't want to do this for now, but added a comment.

      Thanks a lot and please let me know if it's ok with you to get this submitted as is.

      Michal Mocny

      Acknowledged this is fine for now and the mojo structs can iterate without backwards compat, so as long as its slightly better than before...

      But we discussed yesterday leaning more into timestamp based segmentation so maybe just keep track of this in the design doc (or maybe you have already)

      File components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc
      Line 796, Patchset 9 (Latest): // potentially depends on timing behavior between the frames; therefore this
      Michal Mocny . resolved

      Do you think its only between frames or could it also be a single frame when the metrics sender buffers and sends these things together (unlikely I guess)

      Line 798, Patchset 9 (Latest): // layout shift timestmp with the earliest timestamp from any inputs or
      Michal Mocny . unresolved

      Please fix this WARNING reported by Spellchecker: "timestmp" is a possible misspelling of "timestamp".

      To bypass Spellchecker, ad...

      "timestmp" is a possible misspelling of "timestamp".

      To bypass Spellchecker, add a footer with DISABLE_SPELLCHECKER

      File components/page_load_metrics/common/page_load_metrics.mojom
      Line 551, Patchset 9 (Latest):struct FrameRenderDataUpdate {
      Michal Mocny . resolved

      Not for this patch, but, since this is just a wrapper around a single value, we could update `UpdateTiming` call to just pass the array, similar to new_features and resource timing updates:

      • PageLoadTiming page_load_timing,
      • FrameMetadata frame_metadata,
      • array<blink.mojom.UseCounterFeature> new_features,
      • array<ResourceDataUpdate> resources,
      • FrameRenderDataUpdate render_data,
      • CpuTiming cpu_load_timing,
      • InputTiming input_timing_delta,
      • SubresourceLoadMetrics? subresource_load_metrics,
      • SoftNavigationMetrics soft_navigation_metrics);

      (...we will also want an array of soft-navs and icp/lcp things)

      Another alternative to to merge all these arrays into some sort of common wrapper but I dont know if thats useful.

      Open in Gerrit

      Related details

      Attention is currently required from:
      • Johannes Henkel
      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: I719c3a28d7805bb545c5dd11b02d1a70d43640de
      Gerrit-Change-Number: 7507033
      Gerrit-PatchSet: 9
      Gerrit-Owner: Johannes Henkel <joha...@chromium.org>
      Gerrit-Reviewer: Annie Sullivan <sull...@chromium.org>
      Gerrit-Reviewer: Johannes Henkel <joha...@chromium.org>
      Gerrit-Reviewer: Michal Mocny <mmo...@chromium.org>
      Gerrit-Attention: Johannes Henkel <joha...@chromium.org>
      Gerrit-Comment-Date: Wed, 28 Jan 2026 16:16:49 +0000
      Gerrit-HasComments: Yes
      Gerrit-Has-Labels: Yes
      Comment-In-Reply-To: Johannes Henkel <joha...@chromium.org>
      Comment-In-Reply-To: Michal Mocny <mmo...@chromium.org>
      satisfied_requirement
      unsatisfied_requirement
      open
      diffy

      Johannes Henkel (Gerrit)

      unread,
      Jan 28, 2026, 1:51:05 PM (2 days ago) Jan 28
      to Michal Mocny, Annie Sullivan, Chromium LUCI CQ, chromium...@chromium.org, bmcquad...@chromium.org, core-web-vita...@chromium.org, csharris...@chromium.org, ipc-securi...@chromium.org, loading-rev...@chromium.org, speed-metrics...@chromium.org, speed-metr...@chromium.org

      Johannes Henkel added 3 comments

      Patchset-level comments
      File-level comment, Patchset 9:
      Johannes Henkel . resolved

      Thanks a ton, both of you. Will try to submit this (after ipc review) and I will need to follow up on looking into canary data to make sure I'm not messing up the production CLS reporting.

      File components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc
      Line 796, Patchset 9: // potentially depends on timing behavior between the frames; therefore this
      Michal Mocny . resolved

      Do you think its only between frames or could it also be a single frame when the metrics sender buffers and sends these things together (unlikely I guess)

      Johannes Henkel

      For the single frame, the comparison is made in the layout shift tracker against this boolean field (see the link). It has an interesting comment there... but I think the gist is no, the timing behavior of the buffering between renderer and browser as is doesn't and shouldn't affect the outcome of that comparison.

      https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/layout/layout_shift_tracker.h;l=247;drc=ab82920fc7ca2ba11aeb69a6552d09c6f6ca6ea5;bpv=1;bpt=1

      Line 798, Patchset 9: // layout shift timestmp with the earliest timestamp from any inputs or
      Michal Mocny . resolved

      Please fix this WARNING reported by Spellchecker: "timestmp" is a possible misspelling of "timestamp".

      To bypass Spellchecker, ad...

      "timestmp" is a possible misspelling of "timestamp".

      To bypass Spellchecker, add a footer with DISABLE_SPELLCHECKER

      Johannes Henkel

      Done

      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: I719c3a28d7805bb545c5dd11b02d1a70d43640de
        Gerrit-Change-Number: 7507033
        Gerrit-PatchSet: 9
        Gerrit-Owner: Johannes Henkel <joha...@chromium.org>
        Gerrit-Reviewer: Annie Sullivan <sull...@chromium.org>
        Gerrit-Reviewer: Johannes Henkel <joha...@chromium.org>
        Gerrit-Reviewer: Michal Mocny <mmo...@chromium.org>
        Gerrit-Comment-Date: Wed, 28 Jan 2026 18:50:57 +0000
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        gwsq (Gerrit)

        unread,
        Jan 28, 2026, 1:57:10 PM (2 days ago) Jan 28
        to Johannes Henkel, Chromium IPC Reviews, Mustafa Emre Acer, Michal Mocny, Annie Sullivan, Chromium LUCI CQ, chromium...@chromium.org, bmcquad...@chromium.org, core-web-vita...@chromium.org, csharris...@chromium.org, ipc-securi...@chromium.org, loading-rev...@chromium.org, speed-metrics...@chromium.org, speed-metr...@chromium.org
        Attention needed from Mustafa Emre Acer

        Message from gwsq

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


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

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Mustafa Emre Acer
        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: I719c3a28d7805bb545c5dd11b02d1a70d43640de
        Gerrit-Change-Number: 7507033
        Gerrit-PatchSet: 10
        Gerrit-Owner: Johannes Henkel <joha...@chromium.org>
        Gerrit-Reviewer: Annie Sullivan <sull...@chromium.org>
        Gerrit-Reviewer: Johannes Henkel <joha...@chromium.org>
        Gerrit-Reviewer: Michal Mocny <mmo...@chromium.org>
        Gerrit-Reviewer: Mustafa Emre Acer <mea...@chromium.org>
        Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
        Gerrit-CC: gwsq
        Gerrit-Attention: Mustafa Emre Acer <mea...@chromium.org>
        Gerrit-Comment-Date: Wed, 28 Jan 2026 18:56:32 +0000
        Gerrit-HasComments: No
        Gerrit-Has-Labels: No
        satisfied_requirement
        unsatisfied_requirement
        open
        diffy

        Mustafa Emre Acer (Gerrit)

        unread,
        1:36 PM (10 hours ago) 1:36 PM
        to Johannes Henkel, Chromium IPC Reviews, Michal Mocny, Annie Sullivan, Chromium LUCI CQ, chromium...@chromium.org, bmcquad...@chromium.org, core-web-vita...@chromium.org, csharris...@chromium.org, ipc-securi...@chromium.org, loading-rev...@chromium.org, speed-metrics...@chromium.org, speed-metr...@chromium.org
        Attention needed from Johannes Henkel

        Mustafa Emre Acer voted and added 1 comment

        Votes added by Mustafa Emre Acer

        Code-Review+1

        1 comment

        Patchset-level comments
        File-level comment, Patchset 11 (Latest):
        Mustafa Emre Acer . resolved

        Mojo lgtm. Sorry for the delay!

        Open in Gerrit

        Related details

        Attention is currently required from:
        • Johannes Henkel
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I719c3a28d7805bb545c5dd11b02d1a70d43640de
        Gerrit-Change-Number: 7507033
        Gerrit-PatchSet: 11
        Gerrit-Owner: Johannes Henkel <joha...@chromium.org>
        Gerrit-Reviewer: Annie Sullivan <sull...@chromium.org>
        Gerrit-Reviewer: Johannes Henkel <joha...@chromium.org>
        Gerrit-Reviewer: Michal Mocny <mmo...@chromium.org>
        Gerrit-Reviewer: Mustafa Emre Acer <mea...@chromium.org>
        Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
        Gerrit-CC: gwsq
        Gerrit-Attention: Johannes Henkel <joha...@chromium.org>
        Gerrit-Comment-Date: Fri, 30 Jan 2026 18:36:42 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        open
        diffy

        Johannes Henkel (Gerrit)

        unread,
        1:38 PM (10 hours ago) 1:38 PM
        to Mustafa Emre Acer, Chromium IPC Reviews, Michal Mocny, Annie Sullivan, Chromium LUCI CQ, chromium...@chromium.org, bmcquad...@chromium.org, core-web-vita...@chromium.org, csharris...@chromium.org, ipc-securi...@chromium.org, loading-rev...@chromium.org, speed-metrics...@chromium.org, speed-metr...@chromium.org

        Johannes Henkel voted and added 1 comment

        Votes added by Johannes Henkel

        Commit-Queue+2

        1 comment

        Patchset-level comments
        Johannes Henkel . resolved

        Thanks a lot, will try to submit this one.

        Open in Gerrit

        Related details

        Attention set is empty
        Submit Requirements:
        • requirement satisfiedCode-Coverage
        • requirement satisfiedCode-Owners
        • requirement satisfiedCode-Review
        • requirement satisfiedReview-Enforcement
        Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
        Gerrit-MessageType: comment
        Gerrit-Project: chromium/src
        Gerrit-Branch: main
        Gerrit-Change-Id: I719c3a28d7805bb545c5dd11b02d1a70d43640de
        Gerrit-Change-Number: 7507033
        Gerrit-PatchSet: 11
        Gerrit-Owner: Johannes Henkel <joha...@chromium.org>
        Gerrit-Reviewer: Annie Sullivan <sull...@chromium.org>
        Gerrit-Reviewer: Johannes Henkel <joha...@chromium.org>
        Gerrit-Reviewer: Michal Mocny <mmo...@chromium.org>
        Gerrit-Reviewer: Mustafa Emre Acer <mea...@chromium.org>
        Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
        Gerrit-CC: gwsq
        Gerrit-Comment-Date: Fri, 30 Jan 2026 18:37:51 +0000
        Gerrit-HasComments: Yes
        Gerrit-Has-Labels: Yes
        satisfied_requirement
        open
        diffy

        Chromium LUCI CQ (Gerrit)

        unread,
        2:21 PM (9 hours ago) 2:21 PM
        to Johannes Henkel, Mustafa Emre Acer, Chromium IPC Reviews, Michal Mocny, Annie Sullivan, chromium...@chromium.org, bmcquad...@chromium.org, core-web-vita...@chromium.org, csharris...@chromium.org, ipc-securi...@chromium.org, loading-rev...@chromium.org, speed-metrics...@chromium.org, speed-metr...@chromium.org

        Chromium LUCI CQ submitted the change

        Change information

        Commit message:
        [soft navs] Simplify the FrameRenderDataUpdate mojom struct

        Currently, we send two aggregated values, layout_shift_delta and
        layout_shift_delta_before_input_or_scroll.

        If a soft navigation were to occur in the middle of the array of the
        |new_layout_shifts|, then we'd somehow need to split these
        accumulations, or send multiple FrameRenderDataUpdate instances.


        Instead, this change adds the after_input_or_scroll bool to the
        LayoutShift struct, and computes the deltas on the browser side, when
        they're used. Even though it's slightly more verbose there (loops), it
        may actually be easier to understand, especially once we attribute some
        of the shifts to before and after a soft navigation. This type of
        comparison is possible for UKM, by comparing
        LayoutShift.layout_shift_time (the field in the mojom record) with the
        commit time of the soft navigation.
        https://chromium-review.googlesource.com/c/chromium/src/+/7500735 is
        preparing to have the commit time in the PageTimingMetricsSender.

        An equivalent comparison can be made with web apis in Javascript, by
        comparing the commitTime of the soft-navigation performance entry (which
        we don't expose yet) with the startTime of the layout-shift performance
        entry, or currently it's done by looking at the navigationId.

        page_load_metrics.mojom: Remove the two fields which are the sum of the individual scores in the array, and add the bool to each array entry instead so these sums can be recomputed (including for slices of the array).
        page_timing_metrics_sender.cc: Propagate the bool.
        page_load_metrics_update_dispatcher.cc: Compute the sums as needed.

        Remainder of the change does the obvious things; for the tests, I think they're now slightly more meaningful / detailed because previously, in some cases they actually had test data that was impossible - as in, the fields that are supposed a sum of the scores of the entries were set to something different.

        Bug: 480135950
        Change-Id: I719c3a28d7805bb545c5dd11b02d1a70d43640de
        Reviewed-by: Michal Mocny <mmo...@chromium.org>
        Commit-Queue: Johannes Henkel <joha...@chromium.org>
        Reviewed-by: Annie Sullivan <sull...@chromium.org>
        Reviewed-by: Mustafa Emre Acer <mea...@chromium.org>
        Cr-Commit-Position: refs/heads/main@{#1577424}
        Files:
        • M chrome/browser/page_load_metrics/observers/core/amp_page_load_metrics_observer.cc
        • M chrome/browser/page_load_metrics/observers/core/amp_page_load_metrics_observer_unittest.cc
        • M chrome/browser/page_load_metrics/observers/core/ukm_page_load_metrics_observer_unittest.cc
        • M chrome/browser/page_load_metrics/observers/from_gws_page_load_metrics_observer_unittest.cc
        • M components/page_load_metrics/browser/layout_shift_normalization_unittest.cc
        • M components/page_load_metrics/browser/page_load_metrics_test_waiter.cc
        • M components/page_load_metrics/browser/page_load_metrics_update_dispatcher.cc
        • M components/page_load_metrics/common/page_load_metrics.mojom
        • M components/page_load_metrics/renderer/fake_page_timing_sender.cc
        • M components/page_load_metrics/renderer/page_timing_metrics_sender.cc
        • M components/page_load_metrics/renderer/page_timing_metrics_sender_unittest.cc
        Change size: M
        Delta: 11 files changed, 151 insertions(+), 76 deletions(-)
        Branch: refs/heads/main
        Submit Requirements:
        • requirement satisfiedCode-Review: +1 by Annie Sullivan, +1 by Mustafa Emre Acer, +1 by Michal Mocny
        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: I719c3a28d7805bb545c5dd11b02d1a70d43640de
        Gerrit-Change-Number: 7507033
        Gerrit-PatchSet: 12
        Gerrit-Owner: Johannes Henkel <joha...@chromium.org>
        Gerrit-Reviewer: Annie Sullivan <sull...@chromium.org>
        Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
        Gerrit-Reviewer: Johannes Henkel <joha...@chromium.org>
        Gerrit-Reviewer: Michal Mocny <mmo...@chromium.org>
        Gerrit-Reviewer: Mustafa Emre Acer <mea...@chromium.org>
        Gerrit-CC: Chromium IPC Reviews <chrome-ip...@google.com>
        Gerrit-CC: gwsq
        open
        diffy
        satisfied_requirement
        Reply all
        Reply to author
        Forward
        0 new messages