Skip to content

Commit 74a72b0

Browse files
paulirishDevtools-frontend LUCI CQ
authored andcommitted
RPP: Disable 3p checkbox for all dim states
If dimming applied due to search or hovering a treeview table row, we now disable the checkbox as well. Bug:391589856 Change-Id: I87b69d0166cde33f23c3c686cacf705f2dd542c8 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/6216184 Reviewed-by: Connor Clark <[email protected]> Auto-Submit: Paul Irish <[email protected]> Commit-Queue: Connor Clark <[email protected]>
1 parent bb10e69 commit 74a72b0

File tree

5 files changed

+18
-7
lines changed

5 files changed

+18
-7
lines changed

front_end/panels/timeline/TimelineDetailsView.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ import * as Timeline from './timeline.js';
1212
class MockViewDelegate implements Timeline.TimelinePanel.TimelineModeViewDelegate {
1313
select(_selection: Timeline.TimelineSelection.TimelineSelection|null): void {
1414
}
15+
set3PCheckboxDisabled(_disabled: boolean): void {
16+
}
1517
selectEntryAtTime(_events: Trace.Types.Events.Event[]|null, _time: number): void {
1618
}
1719
highlightEvent(_event: Trace.Types.Events.Event|null): void {

front_end/panels/timeline/TimelineFlameChartView.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ class MockViewDelegate implements Timeline.TimelinePanel.TimelineModeViewDelegat
2222
select(selection: Timeline.TimelineSelection.TimelineSelection|null): void {
2323
this.selection = selection;
2424
}
25+
set3PCheckboxDisabled(_disabled: boolean): void {
26+
}
2527
selectEntryAtTime(_events: Trace.Types.Events.Event[]|null, _time: number): void {
2628
}
2729
highlightEvent(_event: Trace.Types.Events.Event|null): void {

front_end/panels/timeline/TimelineFlameChartView.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -476,6 +476,10 @@ export class TimelineFlameChartView extends Common.ObjectWrapper.eventMixin<Even
476476

477477
#refreshDimming(): void {
478478
const dimmer = this.#flameChartDimmers.find(dimmer => dimmer.active);
479+
480+
// This checkbox should only be enabled if its dimmer is being used.
481+
this.delegate.set3PCheckboxDisabled(Boolean(dimmer && dimmer !== this.#thirdPartyCheckboxDimmer));
482+
479483
if (!dimmer) {
480484
this.mainFlameChart.disableDimming();
481485
this.networkFlameChart.disableDimming();

front_end/panels/timeline/TimelinePanel.ts

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -729,9 +729,6 @@ export class TimelinePanel extends UI.Panel.Panel implements Client, TimelineMod
729729
// to avoid dimming interference.
730730
if (insight) {
731731
this.#splitWidget.showBoth();
732-
this.#set3PCheckboxDisabled(true);
733-
} else {
734-
this.#set3PCheckboxDisabled(false);
735732
}
736733
this.#sideBar.setActiveInsight(insight);
737734
this.flameChart.setActiveInsight(insight);
@@ -743,12 +740,15 @@ export class TimelinePanel extends UI.Panel.Panel implements Client, TimelineMod
743740
* 1) updates the setting to "disabled"
744741
* 2) makes the checkbox dimmed and unclickable
745742
* 3) gives the checkbox UI an indeterminate state
743+
* Only make the change if it's different to avoid an infinite loop
746744
*/
747-
#set3PCheckboxDisabled(disabled: boolean): void {
745+
set3PCheckboxDisabled(disabled: boolean): void {
748746
if (Root.Runtime.experiments.isEnabled(Root.Runtime.ExperimentName.TIMELINE_DIM_UNRELATED_EVENTS)) {
749-
this.#dimThirdPartiesSetting?.setDisabled(disabled);
750-
this.#thirdPartyCheckbox?.setIndeterminate(disabled);
751-
this.#thirdPartyCheckbox?.applyEnabledState(!disabled);
747+
if (this.#thirdPartyCheckbox?.inputElement.disabled !== disabled) {
748+
this.#thirdPartyCheckbox?.applyEnabledState(!disabled);
749+
this.#thirdPartyCheckbox?.setIndeterminate(disabled);
750+
this.#dimThirdPartiesSetting?.setDisabled(disabled);
751+
}
752752
}
753753
}
754754

@@ -2685,6 +2685,7 @@ export const headerHeight = 20;
26852685
export interface TimelineModeViewDelegate {
26862686
select(selection: TimelineSelection|null): void;
26872687
element: Element;
2688+
set3PCheckboxDisabled(disabled: boolean): void;
26882689
selectEntryAtTime(events: Trace.Types.Events.Event[]|null, time: number): void;
26892690
highlightEvent(event: Trace.Types.Events.Event|null): void;
26902691
}

front_end/panels/timeline/TimelineTreeView.test.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ import * as Timeline from './timeline.js';
1111
class MockViewDelegate implements Timeline.TimelinePanel.TimelineModeViewDelegate {
1212
select(_selection: Timeline.TimelineSelection.TimelineSelection|null): void {
1313
}
14+
set3PCheckboxDisabled(_disabled: boolean): void {
15+
}
1416
selectEntryAtTime(_events: Trace.Types.Events.Event[]|null, _time: number): void {
1517
}
1618
highlightEvent(_event: Trace.Types.Events.Event|null): void {

0 commit comments

Comments
 (0)