Skip to content

Commit be08711

Browse files
AlinaVarkkiDevtools-frontend LUCI CQ
authored andcommitted
[RPP] Hide all Overlays in the 'reorder tracks' state
When the tracks are reordered, they are collapsed and cannot be expanded. There is no use from the Overlays data in the reordering view and they are a distraction from the tracks reordering interface. Let's hide them while in the 'reorder tracks' state. Before: http://screencast/cast/NTY5OTU3NjI4MjQ4MDY0MHw4Mzk1MjA2ZS0yZg After: http://screencast/cast/NTcxODM1NTM4OTQ0ODE5MnxjYTRhYWZiZi04MQ Bug: 374675980 Change-Id: I8fb2c3b6f7324f1f9efed9b3b89d3462e788e587 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6113611 Reviewed-by: Nancy Li <[email protected]> Commit-Queue: Alina Varkki <[email protected]>
1 parent 2a1b3b3 commit be08711

File tree

4 files changed

+44
-0
lines changed

4 files changed

+44
-0
lines changed

front_end/panels/timeline/TimelineFlameChartView.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -335,6 +335,10 @@ export class TimelineFlameChartView extends
335335
this.networkFlameChart.addEventListener(
336336
PerfUI.FlameChart.Events.ENTRIES_LINK_ANNOTATION_CREATED, this.#onNetworkEntriesLinkAnnotationCreated, this);
337337

338+
this.mainFlameChart.addEventListener(PerfUI.FlameChart.Events.TRACKS_REORDER_STATE_CHANGED, event => {
339+
this.#overlays.toggleAllOverlaysDisplayed(!event.data);
340+
});
341+
338342
this.detailsView.addEventListener(TimelineTreeView.Events.TREE_ROW_HOVERED, node => {
339343
if (!Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.TIMELINE_DIM_UNRELATED_EVENTS)) {
340344
return;

front_end/panels/timeline/overlays/OverlaysImpl.test.ts

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -396,6 +396,26 @@ describeWithEnvironment('Overlays', () => {
396396
assert.isOk(overlayDOM);
397397
});
398398

399+
it('toggles overlays container display', async function() {
400+
const {parsedTrace} = await TraceLoader.traceEngine(this, 'web-dev.json.gz');
401+
const {overlays, container} = setupChartWithDimensionsAndAnnotationOverlayListeners(parsedTrace);
402+
403+
overlays.toggleAllOverlaysDisplayed(true);
404+
await overlays.update();
405+
406+
assert.strictEqual(container.style.display, 'block');
407+
408+
overlays.toggleAllOverlaysDisplayed(false);
409+
await overlays.update();
410+
411+
assert.strictEqual(container.style.display, 'none');
412+
413+
overlays.toggleAllOverlaysDisplayed(true);
414+
await overlays.update();
415+
416+
assert.strictEqual(container.style.display, 'block');
417+
});
418+
399419
it('only renders one TIMESTAMP_MARKER as it is a singleton', async function() {
400420
const {parsedTrace} = await TraceLoader.traceEngine(this, 'web-dev.json.gz');
401421
const {overlays, container} = setupChartWithDimensionsAndAnnotationOverlayListeners(parsedTrace);

front_end/panels/timeline/overlays/OverlaysImpl.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -492,6 +492,17 @@ export class Overlays extends EventTarget {
492492
'mousemove', event => this.#updateMouseCoordinatesProgressEntriesLink.bind(this)(event, 'network'));
493493
}
494494

495+
// Toggle display of the whole OverlaysContainer.
496+
// This function is used to hide all overlays when the Flamechart is in the 'reorder tracks' state.
497+
// If the tracks are being reordered, they are collapsed and we do not want to display
498+
// anything except the tracks reordering interface.
499+
//
500+
// Do not change individual overlays visibility with 'setOverlayElementVisibility' since we do not
501+
// want to overwrite the overlays visibility state that was set before entering the reordering state.
502+
toggleAllOverlaysDisplayed(allOverlaysDisplayed: boolean): void {
503+
this.#overlaysContainer.style.display = allOverlaysDisplayed ? 'block' : 'none';
504+
}
505+
495506
// Mousemove event listener to get mouse coordinates and update them for the entries link that is being created.
496507
//
497508
// The 'mousemove' event is attached to `flameChartsContainers` instead of `overlaysContainer`

front_end/ui/legacy/components/perf_ui/FlameChart.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2113,6 +2113,7 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
21132113

21142114
this.viewportElement.appendChild(div);
21152115
this.#inTrackConfigEditMode = true;
2116+
this.dispatchEventToListeners(Events.TRACKS_REORDER_STATE_CHANGED, true);
21162117
this.updateLevelPositions();
21172118
this.draw();
21182119
}
@@ -2127,6 +2128,7 @@ export class FlameChart extends Common.ObjectWrapper.eventMixin<EventTypes, type
21272128
#exitEditMode(): void {
21282129
this.#removeEditModeButton();
21292130
this.#inTrackConfigEditMode = false;
2131+
this.dispatchEventToListeners(Events.TRACKS_REORDER_STATE_CHANGED, false);
21302132
this.updateLevelPositions();
21312133
this.draw();
21322134
}
@@ -4239,6 +4241,12 @@ export const enum Events {
42394241
ENTRY_LABEL_ANNOTATION_ADDED = 'EntryLabelAnnotationAdded',
42404242
// Emmited when entries link annotation is added through a shotcut or a context menu.
42414243
ENTRIES_LINK_ANNOTATION_CREATED = 'EntriesLinkAnnotationCreated',
4244+
/**
4245+
* Emmited when the user enters or exits 'reorder tracks' view.
4246+
* If the event value is 'true', the 'reorder tracks' state was entered,
4247+
* if it's false, the reorder state was exited.
4248+
*/
4249+
TRACKS_REORDER_STATE_CHANGED = 'TracksReorderStateChange',
42424250
/**
42434251
* Emitted when an event is selected via keyboard navigation using the arrow
42444252
* keys.
@@ -4270,6 +4278,7 @@ export interface EventTypes {
42704278
[Events.ENTRIES_LINK_ANNOTATION_CREATED]: {
42714279
entryFromIndex: number,
42724280
};
4281+
[Events.TRACKS_REORDER_STATE_CHANGED]: boolean;
42734282
[Events.CANVAS_FOCUSED]: number|void;
42744283
[Events.ENTRY_INVOKED]: number;
42754284
[Events.ENTRY_SELECTED]: number;

0 commit comments

Comments
 (0)