Skip to content

Commit 86f1f92

Browse files
paulirishDevtools-frontend LUCI CQ
authored andcommitted
RPP: Move EntryStyles,EntryName into Utils
Necessary to avoid circular dependencies Bug:370436840 Change-Id: Iaba0389055620e633d1b610dae5dded269dbba57 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/5967893 Auto-Submit: Paul Irish <[email protected]> Commit-Queue: Connor Clark <[email protected]> Reviewed-by: Connor Clark <[email protected]>
1 parent 7aa0bcb commit 86f1f92

26 files changed

+162
-172
lines changed

config/gni/devtools_grd_files.gni

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1799,8 +1799,6 @@ grd_files_debug_sources = [
17991799
"front_end/panels/timeline/components/BreadcrumbsUI.js",
18001800
"front_end/panels/timeline/components/CPUThrottlingSelector.js",
18011801
"front_end/panels/timeline/components/DetailsView.js",
1802-
"front_end/panels/timeline/components/EntryName.js",
1803-
"front_end/panels/timeline/components/EntryStyles.js",
18041802
"front_end/panels/timeline/components/FieldSettingsDialog.js",
18051803
"front_end/panels/timeline/components/InteractionBreakdown.js",
18061804
"front_end/panels/timeline/components/LayoutShiftDetails.js",
@@ -1867,6 +1865,8 @@ grd_files_debug_sources = [
18671865
"front_end/panels/timeline/timelinePaintProfiler.css.js",
18681866
"front_end/panels/timeline/timelinePanel.css.js",
18691867
"front_end/panels/timeline/timelineStatusDialog.css.js",
1868+
"front_end/panels/timeline/utils/EntryName.js",
1869+
"front_end/panels/timeline/utils/EntryStyles.js",
18701870
"front_end/panels/timeline/utils/Helpers.js",
18711871
"front_end/panels/timeline/utils/IgnoreList.js",
18721872
"front_end/panels/timeline/utils/ImageCache.js",

front_end/models/trace/handlers/BUILD.gn

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ ts_library("unittests") {
9898
"../../../generated",
9999
"../../../models/trace:bundle",
100100
"../../../panels/timeline:bundle",
101-
"../../../panels/timeline/components:bundle",
101+
"../../../panels/timeline/utils:bundle",
102102
"../../../testing",
103103
]
104104
}

front_end/models/trace/handlers/RendererHandler.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
// Use of this source code is governed by a BSD-style license that can be
33
// found in the LICENSE file.
44

5-
import * as Components from '../../../panels/timeline/components/components.js';
5+
import * as Utils from '../../../panels/timeline/utils/utils.js';
66
import {describeWithEnvironment} from '../../../testing/EnvironmentHelpers.js';
77
import {
88
getAllNodes,
@@ -192,7 +192,7 @@ describeWithEnvironment('RendererHandler', function() {
192192
const isLong = (event: Trace.Types.Events.Event) => Trace.Types.Events.isComplete(event) && event.dur > 1000;
193193
const isIncluded = (node: Trace.Helpers.TreeHelpers.TraceEntryNode, event: Trace.Types.Events.Event) =>
194194
(!isRoot(node) || isInstant(event) || isLong(event)) &&
195-
Boolean(Components.EntryStyles.getEventStyle(event.name as Trace.Types.Events.Name));
195+
Boolean(Utils.EntryStyles.getEventStyle(event.name as Trace.Types.Events.Name));
196196
assert.strictEqual(prettyPrint(tree, isIncluded), `
197197
............
198198
-RunTask [2.21ms]
@@ -391,7 +391,7 @@ describeWithEnvironment('RendererHandler', function() {
391391
assert(false, 'Main thread has no tree of events');
392392
}
393393
const isIncluded = (_node: Trace.Helpers.TreeHelpers.TraceEntryNode, event: Trace.Types.Events.Event) =>
394-
Boolean(Components.EntryStyles.getEventStyle(event.name as Trace.Types.Events.Name));
394+
Boolean(Utils.EntryStyles.getEventStyle(event.name as Trace.Types.Events.Name));
395395
assert.strictEqual(prettyPrint(tree, isIncluded), `
396396
-RunTask [0.13ms]
397397
-RunTask [0.005ms]
@@ -934,7 +934,7 @@ describeWithEnvironment('RendererHandler', function() {
934934
const onlyLongTasksPredicate =
935935
(_node: Trace.Helpers.TreeHelpers.TraceEntryNode, event: Trace.Types.Events.Event) =>
936936
Boolean(event.dur && event.dur > 1000) &&
937-
Boolean(Components.EntryStyles.getEventStyle(event.name as Trace.Types.Events.Name));
937+
Boolean(Utils.EntryStyles.getEventStyle(event.name as Trace.Types.Events.Name));
938938
assert.strictEqual(prettyPrint(thread.tree, onlyLongTasksPredicate), `
939939
.............
940940
-RunTask [17.269ms]

front_end/panels/timeline/AnnotationHelpers.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@ import * as Platform from '../../core/platform/platform.js';
77
import * as Trace from '../../models/trace/trace.js';
88
import * as TraceBounds from '../../services/trace_bounds/trace_bounds.js';
99

10-
import * as TimelineComponents from './components/components.js';
1110
import type {AnnotationModifiedEvent} from './ModificationsManager.js';
1211
import type * as Overlays from './overlays/overlays.js';
12+
import * as Utils from './utils/utils.js';
1313

1414
const UIStrings = {
1515
/**
@@ -219,8 +219,8 @@ export function ariaAnnouncementForModifiedEvent(event: AnnotationModifiedEvent)
219219
}
220220
case 'UpdateLinkToEntry': {
221221
if (isEntriesLink(overlay) && overlay.entryFrom && overlay.entryTo) {
222-
const from = TimelineComponents.EntryName.nameForEntry(overlay.entryFrom);
223-
const to = TimelineComponents.EntryName.nameForEntry(overlay.entryTo);
222+
const from = Utils.EntryName.nameForEntry(overlay.entryFrom);
223+
const to = Utils.EntryName.nameForEntry(overlay.entryTo);
224224
return (i18nString(UIStrings.srEntriesLinked, {PH1: from, PH2: to}));
225225
}
226226
break;

front_end/panels/timeline/CompatibilityTracksAppender.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import {
2424
type TimelineFlameChartEntry,
2525
} from './TimelineFlameChartDataProvider.js';
2626
import {TimingsTrackAppender} from './TimingsTrackAppender.js';
27+
import * as TimelineUtils from './utils/utils.js';
2728

2829
export type HighlightedEntryInfo = {
2930
title: string,
@@ -72,7 +73,7 @@ export function entryIsVisibleInTimeline(
7273

7374
// Default styles are globally defined for each event name. Some
7475
// events are hidden by default.
75-
const eventStyle = TimelineComponents.EntryStyles.getEventStyle(entry.name as Trace.Types.Events.Name);
76+
const eventStyle = TimelineUtils.EntryStyles.getEventStyle(entry.name as Trace.Types.Events.Name);
7677
const eventIsTiming = Trace.Types.Events.isConsoleTime(entry) || Trace.Types.Events.isPerformanceMeasure(entry) ||
7778
Trace.Types.Events.isPerformanceMark(entry);
7879

@@ -640,7 +641,7 @@ export class CompatibilityTracksAppender {
640641
if (track.titleForEvent) {
641642
return track.titleForEvent(event);
642643
}
643-
return TimelineComponents.EntryName.nameForEntry(event, this.#parsedTrace);
644+
return TimelineUtils.EntryName.nameForEntry(event, this.#parsedTrace);
644645
}
645646
/**
646647
* Returns the info shown when an event in the timeline is hovered.

front_end/panels/timeline/EventsTimelineTreeView.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ import * as DataGrid from '../../ui/legacy/components/data_grid/data_grid.js';
1010
import * as UI from '../../ui/legacy/legacy.js';
1111
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
1212

13-
import * as Components from './components/components.js';
1413
import {Category, IsLong} from './TimelineFilters.js';
1514
import type {TimelineModeViewDelegate} from './TimelinePanel.js';
1615
import {TimelineSelection} from './TimelineSelection.js';
1716
import {TimelineTreeView} from './TimelineTreeView.js';
1817
import {TimelineUIUtils} from './TimelineUIUtils.js';
18+
import * as Utils from './utils/utils.js';
1919

2020
const UIStrings = {
2121
/**
@@ -177,15 +177,15 @@ export class Filters extends Common.ObjectWrapper.ObjectWrapper<EventTypes> {
177177
toolbar.appendToolbarItem(durationFilterUI);
178178

179179
const categoryFiltersUI = new Map<string, UI.Toolbar.ToolbarCheckbox>();
180-
const categories = Components.EntryStyles.getCategoryStyles();
180+
const categories = Utils.EntryStyles.getCategoryStyles();
181181
for (const categoryName in categories) {
182-
const category = categories[categoryName as Components.EntryStyles.EventCategory];
182+
const category = categories[categoryName as Utils.EntryStyles.EventCategory];
183183
if (!category.visible) {
184184
continue;
185185
}
186186
const checkbox = new UI.Toolbar.ToolbarCheckbox(
187187
category.title, undefined,
188-
categoriesFilterChanged.bind(this, categoryName as Components.EntryStyles.EventCategory), categoryName);
188+
categoriesFilterChanged.bind(this, categoryName as Utils.EntryStyles.EventCategory), categoryName);
189189
checkbox.setChecked(true);
190190
checkbox.inputElement.style.backgroundColor = category.color;
191191
categoryFiltersUI.set(category.name, checkbox);
@@ -199,8 +199,8 @@ export class Filters extends Common.ObjectWrapper.ObjectWrapper<EventTypes> {
199199
this.notifyFiltersChanged();
200200
}
201201

202-
function categoriesFilterChanged(this: Filters, name: Components.EntryStyles.EventCategory): void {
203-
const categories = Components.EntryStyles.getCategoryStyles();
202+
function categoriesFilterChanged(this: Filters, name: Utils.EntryStyles.EventCategory): void {
203+
const categories = Utils.EntryStyles.getCategoryStyles();
204204
const checkBox = categoryFiltersUI.get(name);
205205
categories[name].hidden = !checkBox || !checkBox.checked();
206206
this.notifyFiltersChanged();

front_end/panels/timeline/InteractionsTrackAppender.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
VisualLoggingTrackName,
1616
} from './CompatibilityTracksAppender.js';
1717
import * as Components from './components/components.js';
18+
import * as Utils from './utils/utils.js';
1819

1920
const UIStrings = {
2021
/**
@@ -138,7 +139,7 @@ export class InteractionsTrackAppender implements TrackAppender {
138139
* Gets the color an event added by this appender should be rendered with.
139140
*/
140141
colorForEvent(event: Trace.Types.Events.Event): string {
141-
let idForColorGeneration = Components.EntryName.nameForEntry(event, this.#parsedTrace);
142+
let idForColorGeneration = Utils.EntryName.nameForEntry(event, this.#parsedTrace);
142143
if (Trace.Types.Events.isSyntheticInteraction(event)) {
143144
// Append the ID so that we vary the colours, ensuring that two events of
144145
// the same type are coloured differently.

front_end/panels/timeline/ThreadAppender.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@ import {
2424
type TrackAppenderName,
2525
VisualLoggingTrackName,
2626
} from './CompatibilityTracksAppender.js';
27-
import * as Components from './components/components.js';
2827
import * as ModificationsManager from './ModificationsManager.js';
2928
import * as Utils from './utils/utils.js';
3029

@@ -552,19 +551,19 @@ export class ThreadAppender implements TrackAppender {
552551

553552
if (Trace.Types.Events.isProfileCall(event)) {
554553
if (event.callFrame.functionName === '(idle)') {
555-
return Components.EntryStyles.getCategoryStyles().idle.getComputedColorValue();
554+
return Utils.EntryStyles.getCategoryStyles().idle.getComputedColorValue();
556555
}
557556
if (event.callFrame.scriptId === '0') {
558557
// If we can not match this frame to a script, return the
559558
// generic "scripting" color.
560-
return Components.EntryStyles.getCategoryStyles().scripting.getComputedColorValue();
559+
return Utils.EntryStyles.getCategoryStyles().scripting.getComputedColorValue();
561560
}
562561
// Otherwise, return a color created based on its URL.
563562
return this.#colorGenerator.colorForID(event.callFrame.url);
564563
}
565564
const defaultColor =
566-
Components.EntryStyles.getEventStyle(event.name as Trace.Types.Events.Name)?.category.getComputedColorValue();
567-
return defaultColor || Components.EntryStyles.getCategoryStyles().other.getComputedColorValue();
565+
Utils.EntryStyles.getEventStyle(event.name as Trace.Types.Events.Name)?.category.getComputedColorValue();
566+
return defaultColor || Utils.EntryStyles.getCategoryStyles().other.getComputedColorValue();
568567
}
569568

570569
/**
@@ -574,7 +573,7 @@ export class ThreadAppender implements TrackAppender {
574573
if (Utils.IgnoreList.isIgnoreListedEntry(entry)) {
575574
return i18nString(UIStrings.onIgnoreList);
576575
}
577-
return Components.EntryName.nameForEntry(entry, this.#parsedTrace);
576+
return Utils.EntryName.nameForEntry(entry, this.#parsedTrace);
578577
}
579578

580579
/**

front_end/panels/timeline/TimelineEventOverview.ts

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ import * as PerfUI from '../../ui/legacy/components/perf_ui/perf_ui.js';
3737
import * as UI from '../../ui/legacy/legacy.js';
3838
import * as VisualLogging from '../../ui/visual_logging/visual_logging.js';
3939

40-
import * as Components from './components/components.js';
40+
import * as Utils from './utils/utils.js';
4141

4242
const UIStrings = {
4343
/**
@@ -147,7 +147,7 @@ export class TimelineEventOverviewNetwork extends TimelineEventOverview {
147147
}
148148
}
149149

150-
const categoryToIndex = new WeakMap<Components.EntryStyles.TimelineCategory, number>();
150+
const categoryToIndex = new WeakMap<Utils.EntryStyles.TimelineCategory, number>();
151151

152152
export class TimelineEventOverviewCPUActivity extends TimelineEventOverview {
153153
private backgroundCanvas: HTMLCanvasElement;
@@ -168,16 +168,16 @@ export class TimelineEventOverviewCPUActivity extends TimelineEventOverview {
168168
this.#end = Trace.Helpers.Timing.traceWindowMilliSeconds(parsedTrace.Meta.traceBounds).max;
169169
}
170170

171-
#entryCategory(entry: Trace.Types.Events.Event): Components.EntryStyles.EventCategory|undefined {
171+
#entryCategory(entry: Trace.Types.Events.Event): Utils.EntryStyles.EventCategory|undefined {
172172
// Special case: in CPU Profiles we get a lot of ProfileCalls that
173173
// represent Idle time. We typically represent ProfileCalls in the
174174
// Scripting Category, but if they represent idle time, we do not want
175175
// that.
176176
if (Trace.Types.Events.isProfileCall(entry) && entry.callFrame.functionName === '(idle)') {
177-
return Components.EntryStyles.EventCategory.IDLE;
177+
return Utils.EntryStyles.EventCategory.IDLE;
178178
}
179-
const eventStyle = Components.EntryStyles.getEventStyle(entry.name as Trace.Types.Events.Name)?.category ||
180-
Components.EntryStyles.getCategoryStyles().other;
179+
const eventStyle = Utils.EntryStyles.getEventStyle(entry.name as Trace.Types.Events.Name)?.category ||
180+
Utils.EntryStyles.getCategoryStyles().other;
181181
const categoryName = eventStyle.name;
182182
return categoryName;
183183
}
@@ -197,11 +197,11 @@ export class TimelineEventOverviewCPUActivity extends TimelineEventOverview {
197197
const timeRange = this.#end - this.#start;
198198
const scale = width / timeRange;
199199
const quantTime = quantSizePx / scale;
200-
const categories = Components.EntryStyles.getCategoryStyles();
201-
const categoryOrder = Components.EntryStyles.getTimelineMainEventCategories();
202-
const otherIndex = categoryOrder.indexOf(Components.EntryStyles.EventCategory.OTHER);
200+
const categories = Utils.EntryStyles.getCategoryStyles();
201+
const categoryOrder = Utils.EntryStyles.getTimelineMainEventCategories();
202+
const otherIndex = categoryOrder.indexOf(Utils.EntryStyles.EventCategory.OTHER);
203203
const idleIndex = 0;
204-
console.assert(idleIndex === categoryOrder.indexOf(Components.EntryStyles.EventCategory.IDLE));
204+
console.assert(idleIndex === categoryOrder.indexOf(Utils.EntryStyles.EventCategory.IDLE));
205205
for (let i = 0; i < categoryOrder.length; ++i) {
206206
categoryToIndex.set(categories[categoryOrder[i]], i);
207207
}

front_end/panels/timeline/TimelineFilters.test.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,8 @@ import {describeWithEnvironment} from '../../testing/EnvironmentHelpers.js';
77
import {getMainThread} from '../../testing/TraceHelpers.js';
88
import {TraceLoader} from '../../testing/TraceLoader.js';
99

10-
import * as Components from './components/components.js';
1110
import * as Timeline from './timeline.js';
11+
import * as Utils from './utils/utils.js';
1212

1313
describeWithEnvironment('TimelineFilters', () => {
1414
describe('IsLong', () => {
@@ -49,15 +49,15 @@ describeWithEnvironment('TimelineFilters', () => {
4949
const {parsedTrace} = await TraceLoader.traceEngine(this, 'user-timings.json.gz');
5050
// These events are usually visible, so make the category hidden before
5151
// running this test.
52-
Components.EntryStyles.getCategoryStyles()['scripting'].hidden = true;
52+
Utils.EntryStyles.getCategoryStyles()['scripting'].hidden = true;
5353

5454
const userTimingEvent = parsedTrace.UserTimings.performanceMeasures.at(0);
5555
if (!userTimingEvent) {
5656
throw new Error('Could not find expected event.');
5757
}
5858
const filter = new Timeline.TimelineFilters.Category();
5959
assert.isFalse(filter.accept(userTimingEvent));
60-
Components.EntryStyles.getCategoryStyles()['scripting'].hidden = false;
60+
Utils.EntryStyles.getCategoryStyles()['scripting'].hidden = false;
6161
});
6262

6363
it('returns true for a new event if it has a category that is visible', async function() {
@@ -68,7 +68,7 @@ describeWithEnvironment('TimelineFilters', () => {
6868
}
6969
const filter = new Timeline.TimelineFilters.Category();
7070
assert.isTrue(filter.accept(userTimingEvent));
71-
Components.EntryStyles.getCategoryStyles()['scripting'].hidden = false;
71+
Utils.EntryStyles.getCategoryStyles()['scripting'].hidden = false;
7272
});
7373
});
7474
});

0 commit comments

Comments
 (0)