Skip to content

Commit a7d0715

Browse files
Connor ClarkDevtools-frontend LUCI CQ
authored andcommitted
[RPP] Remove all markers from minimap, but add nav start
These markers are really noisy, so we decided to remove them. But adding NAV since it seems useful to see how the trace is broken up into navigations at-a-glance. The minimap component attempted to render the NAV markers, but since they were not marked as "tall" it never rendered. Also align the color used for the navigationStarted event type to be the same as the marker color (black, not orange). Similar for the other page load metrics. Bug: 383368162 Change-Id: I75eed42d8ab33e27d8205dc560bf7d95371a652c Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6084879 Commit-Queue: Connor Clark <[email protected]> Reviewed-by: Adriana Ixba <[email protected]> Reviewed-by: Paul Irish <[email protected]>
1 parent ebd6e33 commit a7d0715

File tree

3 files changed

+19
-26
lines changed

3 files changed

+19
-26
lines changed

front_end/panels/timeline/TimelineMiniMap.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -242,9 +242,9 @@ export class TimelineMiniMap extends
242242
#setMarkers(parsedTrace: Trace.Handlers.Types.ParsedTrace): void {
243243
const markers = new Map<number, HTMLDivElement>();
244244

245-
const {Meta, PageLoadMetrics} = parsedTrace;
245+
const {Meta} = parsedTrace;
246246

247-
// Add markers for navigation start times.
247+
// Only add markers for navigation start times.
248248
const navStartEvents = Meta.mainFrameNavigations;
249249
const minTimeInMilliseconds = Trace.Helpers.Timing.microSecondsToMilliseconds(Meta.traceBounds.min);
250250

@@ -253,12 +253,6 @@ export class TimelineMiniMap extends
253253
markers.set(startTime, TimelineUIUtils.createEventDivider(event, minTimeInMilliseconds));
254254
}
255255

256-
// Now add markers for the page load events
257-
for (const event of PageLoadMetrics.allMarkerEvents) {
258-
const {startTime} = Trace.Helpers.Timing.eventTimingsMilliSeconds(event);
259-
markers.set(startTime, TimelineUIUtils.createEventDivider(event, minTimeInMilliseconds));
260-
}
261-
262256
this.#overviewComponent.setMarkers(markers);
263257
}
264258

front_end/panels/timeline/TimelineUIUtils.ts

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2374,12 +2374,14 @@ export class TimelineUIUtils {
23742374
}
23752375

23762376
static markerStyleForEvent(event: Trace.Types.Events.Event): TimelineMarkerStyle {
2377+
// Note: keep the colors matching that of `markerDetailsForEvent`.
2378+
23772379
const tallMarkerDashStyle = [6, 4];
23782380
const title = TimelineUIUtils.eventTitle(event);
23792381

23802382
if (event.name !== Trace.Types.Events.Name.NAVIGATION_START &&
2381-
Trace.Helpers.Trace.eventHasCategory(event, Trace.Types.Events.Categories.Console) ||
2382-
Trace.Helpers.Trace.eventHasCategory(event, Trace.Types.Events.Categories.UserTiming)) {
2383+
(Trace.Helpers.Trace.eventHasCategory(event, Trace.Types.Events.Categories.Console) ||
2384+
Trace.Helpers.Trace.eventHasCategory(event, Trace.Types.Events.Categories.UserTiming))) {
23832385
return {
23842386
title,
23852387
dashStyle: tallMarkerDashStyle,
@@ -2393,7 +2395,7 @@ export class TimelineUIUtils {
23932395
let color = 'grey';
23942396
switch (event.name) {
23952397
case Trace.Types.Events.Name.NAVIGATION_START:
2396-
color = '#FF9800';
2398+
color = 'var(--color-text-primary)';
23972399
tall = true;
23982400
break;
23992401
case Trace.Types.Events.Name.FRAME_STARTED_LOADING:
@@ -2413,11 +2415,11 @@ export class TimelineUIUtils {
24132415
tall = true;
24142416
break;
24152417
case Trace.Types.Events.Name.MARK_FCP:
2416-
color = '#1A6937';
2418+
color = 'var(--sys-color-green-bright)';
24172419
tall = true;
24182420
break;
24192421
case Trace.Types.Events.Name.MARK_LCP_CANDIDATE:
2420-
color = '#1A3422';
2422+
color = 'var(--sys-color-green)';
24212423
tall = true;
24222424
break;
24232425
case Trace.Types.Events.Name.TIME_STAMP:
@@ -2636,7 +2638,7 @@ export function timeStampForEventAdjustedForClosestNavigationIfPossible(
26362638
export function isMarkerEvent(parsedTrace: Trace.Handlers.Types.ParsedTrace, event: Trace.Types.Events.Event): boolean {
26372639
const {Name} = Trace.Types.Events;
26382640

2639-
if (event.name === Name.TIME_STAMP) {
2641+
if (event.name === Name.TIME_STAMP || event.name === Name.NAVIGATION_START) {
26402642
return true;
26412643
}
26422644

test/interactions/panels/performance/timeline/overview_test.ts

Lines changed: 9 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
// found in the LICENSE file.
44
import {assert} from 'chai';
55

6-
import {waitFor, waitForMany} from '../../../../shared/helper.js';
6+
import {waitFor} from '../../../../shared/helper.js';
77
import {assertElementScreenshotUnchanged} from '../../../../shared/screenshots.js';
88
import {loadComponentDocExample} from '../../../helpers/shared.js';
99

@@ -39,18 +39,15 @@ describe('Performance panel overview/minimap', function() {
3939
await assertElementScreenshotUnchanged(pane, 'performance/timeline-overview-memory.png', 3);
4040
});
4141

42-
it('renders markers in the minimap correctly', async () => {
42+
it('renders markers in the minimap correctly (just nav)', async () => {
4343
await loadComponentDocExample('performance_panel/basic.html?trace=web-dev');
44-
const minimapMarkers = await waitForMany('.resources-event-divider', 4);
45-
const promises = minimapMarkers.map(handle => {
46-
return handle.evaluate(marker => {
47-
const markerElement = marker as HTMLElement;
48-
return markerElement.style.left;
49-
});
50-
});
51-
const offsets = await Promise.all(promises);
52-
offsets.forEach(offset => {
53-
assert.isTrue(Boolean(offset));
44+
const handle = await waitFor('.resources-event-divider');
45+
const promise = handle.evaluate(marker => {
46+
const markerElement = marker as HTMLElement;
47+
return [markerElement.title, markerElement.style.left];
5448
});
49+
const marker = await promise;
50+
assert.strictEqual(marker[0], 'navigationStart at 12\xA0ms');
51+
assert.isTrue(Boolean(marker[1]));
5552
});
5653
});

0 commit comments

Comments
 (0)