Skip to content

Commit b600c7c

Browse files
Adriana IxbaDevtools-frontend LUCI CQ
authored andcommitted
[RPP] Persistent tree row dimming on click
https://screencast.googleplex.com/cast/NTU4OTg4Njk3ODQ5MDM2OHxkOWUwYmJkZC0yOQ Bug: 398952757 Change-Id: I09e3e950b8659fcd78979037628a6cfcdd7b6883 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6306287 Reviewed-by: Paul Irish <[email protected]> Commit-Queue: Adriana Ixba <[email protected]>
1 parent 77ad71a commit b600c7c

File tree

3 files changed

+24
-8
lines changed

3 files changed

+24
-8
lines changed

front_end/panels/timeline/TimelineDetailsView.ts

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -136,6 +136,11 @@ export class TimelineDetailsPane extends
136136
TimelineTreeView.Events.TREE_ROW_HOVERED,
137137
node => this.dispatchEventToListeners(TimelineTreeView.Events.TREE_ROW_HOVERED, node.data));
138138

139+
view.addEventListener(TimelineTreeView.Events.TREE_ROW_CLICKED, node => {
140+
// Re-dispatch to reach the tree row dimmer.
141+
this.dispatchEventToListeners(TimelineTreeView.Events.TREE_ROW_CLICKED, node.data);
142+
});
143+
139144
// If there's a heaviest stack sidebar view, also listen to hover within it.
140145
if (view instanceof AggregatedTimelineTreeView) {
141146
view.stackView.addEventListener(
@@ -144,13 +149,17 @@ export class TimelineDetailsPane extends
144149
}
145150
});
146151
this.#thirdPartyTree.addEventListener(TimelineTreeView.Events.TREE_ROW_HOVERED, node => {
147-
// Redispatch through 3P event to get 3P dimmer.
148-
this.dispatchEventToListeners(TimelineTreeView.Events.THIRD_PARTY_ROW_HOVERED, node.data);
152+
// Re-dispatch through 3P event to get 3P dimmer.
153+
this.dispatchEventToListeners(TimelineTreeView.Events.TREE_ROW_HOVERED, node.data);
149154
});
150155

151156
this.#thirdPartyTree.addEventListener(TimelineTreeView.Events.BOTTOM_UP_BUTTON_CLICKED, node => {
152157
this.selectTab(Tab.BottomUp, node.data, AggregatedTimelineTreeView.GroupBy.ThirdParties);
153158
});
159+
this.#thirdPartyTree.addEventListener(TimelineTreeView.Events.TREE_ROW_CLICKED, node => {
160+
// Re-dispatch through 3P event to get 3P dimmer.
161+
this.dispatchEventToListeners(TimelineTreeView.Events.TREE_ROW_CLICKED, node.data);
162+
});
154163

155164
this.#networkRequestDetails =
156165
new TimelineComponents.NetworkRequestDetails.NetworkRequestDetails(this.detailsLinkifier);

front_end/panels/timeline/TimelineFlameChartView.ts

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ export class TimelineFlameChartView extends Common.ObjectWrapper.eventMixin<Even
175175
#flameChartDimmers: FlameChartDimmer[] = [];
176176
#searchDimmer = this.#registerFlameChartDimmer({inclusive: false, outline: true});
177177
#treeRowHoverDimmer = this.#registerFlameChartDimmer({inclusive: false, outline: true});
178-
#thirdPartyRowHoverDimmer = this.#registerFlameChartDimmer({inclusive: false, outline: false});
178+
#treeRowClickDimmer = this.#registerFlameChartDimmer({inclusive: false, outline: false});
179179
#activeInsightDimmer = this.#registerFlameChartDimmer({inclusive: false, outline: true});
180180
#thirdPartyCheckboxDimmer = this.#registerFlameChartDimmer({inclusive: true, outline: false});
181181

@@ -383,9 +383,9 @@ export class TimelineFlameChartView extends Common.ObjectWrapper.eventMixin<Even
383383
this.#updateFlameChartDimmerWithEvents(this.#treeRowHoverDimmer, events);
384384
});
385385

386-
this.detailsView.addEventListener(TimelineTreeView.Events.THIRD_PARTY_ROW_HOVERED, node => {
386+
this.detailsView.addEventListener(TimelineTreeView.Events.TREE_ROW_CLICKED, node => {
387387
const events = node?.data?.events ?? null;
388-
this.#updateFlameChartDimmerWithEvents(this.#thirdPartyRowHoverDimmer, events);
388+
this.#updateFlameChartDimmerWithEvents(this.#treeRowClickDimmer, events);
389389
});
390390

391391
/**
@@ -1384,6 +1384,12 @@ export class TimelineFlameChartView extends Common.ObjectWrapper.eventMixin<Even
13841384
this.#timeRangeSelectionAnnotation = null;
13851385
}
13861386

1387+
// If we don't have a selection, update the tree view row click dimmer events to null.
1388+
// This is a user disabling the persistent hovering from a row click, ensure the events are cleared.
1389+
if ((selection === null)) {
1390+
this.#updateFlameChartDimmerWithEvents(this.#treeRowClickDimmer, null);
1391+
}
1392+
13871393
// Check if this is an entry from main flame chart or network flame chart.
13881394
// If so build the initiators and select the entry.
13891395
// Otherwise clear the initiators and the selection.

front_end/panels/timeline/TimelineTreeView.ts

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -603,6 +603,7 @@ export class TimelineTreeView extends
603603
*/
604604
#onDataGridSelectionChange(event: Common.EventTarget.EventTargetEvent<DataGrid.DataGrid.DataGridNode<GridNode>>):
605605
void {
606+
this.dispatchEventToListeners(TimelineTreeView.Events.TREE_ROW_CLICKED, (event.data as GridNode).profileNode);
606607
this.onHover((event.data as GridNode).profileNode);
607608
}
608609

@@ -683,14 +684,14 @@ export class TimelineTreeView extends
683684
export namespace TimelineTreeView {
684685
export const enum Events {
685686
TREE_ROW_HOVERED = 'TreeRowHovered',
686-
THIRD_PARTY_ROW_HOVERED = 'ThirdPartyRowHovered',
687687
BOTTOM_UP_BUTTON_CLICKED = 'BottomUpButtonClicked',
688+
TREE_ROW_CLICKED = 'TreeRowClicked',
688689
}
689690

690691
export interface EventTypes {
691692
[Events.TREE_ROW_HOVERED]: Trace.Extras.TraceTree.Node|null;
692-
[Events.THIRD_PARTY_ROW_HOVERED]: Trace.Extras.TraceTree.Node|null;
693693
[Events.BOTTOM_UP_BUTTON_CLICKED]: Trace.Extras.TraceTree.Node|null;
694+
[Events.TREE_ROW_CLICKED]: Trace.Extras.TraceTree.Node|null;
694695
}
695696
}
696697

@@ -865,7 +866,7 @@ export class GridNode extends DataGrid.SortableDataGrid.SortableDataGridNode<Gri
865866
#bottomUpButtonClicked(): void {
866867
// We should also trigger an event to "unhover" the 3P tree row. Since this isn't
867868
// triggered when clicking the bottom up button.
868-
this.treeView.dispatchEventToListeners(TimelineTreeView.Events.THIRD_PARTY_ROW_HOVERED, null);
869+
this.treeView.dispatchEventToListeners(TimelineTreeView.Events.TREE_ROW_HOVERED, null);
869870
this.treeView.dispatchEventToListeners(TimelineTreeView.Events.BOTTOM_UP_BUTTON_CLICKED, this.profileNode);
870871
}
871872
}

0 commit comments

Comments
 (0)