Skip to content

Commit 30ec2e9

Browse files
and-oliDevtools-frontend LUCI CQ
authored andcommitted
[RPP] Sort markers before appending
Markers (LCP, FCP, etc.) can come from different sources (ExtensionDataHandler & PageLoadMetricsHandler). The FlameChart::drawMarkers implementation assumes these markers are appended in order so that they can be drawn correctly [1]. So, before we append the concatenation of markers from both sources we need to sort them. This fixes a bug I noticed with extension markers being drawn on an incorrect x position. [2] [1] https://source.chromium.org/chromium/chromium/src/+/main:third_party/devtools-frontend/src/front_end/ui/legacy/components/perf_ui/FlameChart.ts;l=2635;drc=d9e4f0e53f58da1f8d8d84fa0d2e661226dd2d73 [2] https://screenshot.googleplex.com/5LiDg9Uv7LA8sSg Fixed: 357056787 Change-Id: Ie60ad9dd92d7269f0fb5fda80af1114105160f8a Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/5757144 Auto-Submit: Andres Olivares <andoli@chromium.org> Reviewed-by: Nancy Li <nancyly@chromium.org> Commit-Queue: Nancy Li <nancyly@chromium.org>
1 parent d690aeb commit 30ec2e9

File tree

1 file changed

+2
-1
lines changed

1 file changed

+2
-1
lines changed

front_end/panels/timeline/TimingsTrackAppender.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,8 @@ export class TimingsTrackAppender implements TrackAppender {
105105
#appendMarkersAtLevel(currentLevel: number): number {
106106
let markers: (TraceEngine.Types.Extensions.SyntheticExtensionMarker|TraceEngine.Types.TraceEvents.PageLoadEvent)[] =
107107
this.#traceParsedData.PageLoadMetrics.allMarkerEvents;
108-
markers = markers.concat(ExtensionDataGatherer.instance().getExtensionData().extensionMarkers);
108+
markers = markers.concat(ExtensionDataGatherer.instance().getExtensionData().extensionMarkers)
109+
.sort((m1, m2) => m1.ts - m2.ts);
109110
if (markers.length === 0) {
110111
return currentLevel;
111112
}

0 commit comments

Comments
 (0)