Skip to content

Commit d4e9b44

Browse files
ktranDevtools-frontend LUCI CQ
authored andcommitted
Update ValueInterpreterDisplay to UI engineering vision
Fixed: 407941424 Change-Id: I237ecb324155dd3cc387f50f6b518aea1bebe2a1 Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/7213583 Reviewed-by: Simon Zünd <[email protected]> Commit-Queue: Kim-Anh Tran <[email protected]>
1 parent 0369b57 commit d4e9b44

File tree

9 files changed

+245
-368
lines changed

9 files changed

+245
-368
lines changed

front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.test.ts

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -199,8 +199,7 @@ describe('LinearMemoryInspector', () => {
199199
component.endianness = LinearMemoryInspectorComponents.ValueInterpreterDisplayUtils.Endianness.LITTLE;
200200
await view.nextInput;
201201

202-
const event = new LinearMemoryInspectorComponents.ValueInterpreterDisplay.JumpToPointerAddressEvent(2);
203-
view.input.onJumpToAddress(event);
202+
view.input.onJumpToAddress(2);
204203
const newViewInput = await view.nextInput;
205204

206205
const expectedSelectedByte = new DataView(memory.buffer).getUint32(0, true);
@@ -285,9 +284,7 @@ describe('LinearMemoryInspector', () => {
285284
component.once(LinearMemoryInspectorComponents.LinearMemoryInspector.Events.SETTINGS_CHANGED);
286285
const valueType = LinearMemoryInspectorComponents.ValueInterpreterDisplayUtils.ValueType.INT16;
287286
const valueTypeMode = LinearMemoryInspectorComponents.ValueInterpreterDisplayUtils.ValueTypeMode.HEXADECIMAL;
288-
view.input.onValueTypeModeChanged(
289-
new LinearMemoryInspectorComponents.ValueInterpreterDisplay.ValueTypeModeChangedEvent(
290-
valueType, valueTypeMode));
287+
view.input.onValueTypeModeChanged(valueType, valueTypeMode);
291288
const {valueTypes, modes} = await settingsPromise;
292289
assert.isTrue(valueTypes.has(valueType));
293290
assert.strictEqual(modes.get(valueType), valueTypeMode);

front_end/panels/linear_memory_inspector/components/LinearMemoryInspector.ts

Lines changed: 8 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@ import {
2323
import type {EndiannessChangedEvent, ValueTypeToggledEvent} from './LinearMemoryValueInterpreter.js';
2424
import type {ByteSelectedEvent, ResizeEvent} from './LinearMemoryViewer.js';
2525
import type {HighlightInfo} from './LinearMemoryViewerUtils.js';
26-
import type {JumpToPointerAddressEvent, ValueTypeModeChangedEvent} from './ValueInterpreterDisplay.js';
2726
import {
2827
Endianness,
2928
getDefaultValueTypeMapping,
@@ -122,12 +121,12 @@ export interface ViewInput {
122121
onAddressChange: (e: AddressInputChangedEvent) => void;
123122
onNavigatePage: (e: PageNavigationEvent) => void;
124123
onNavigateHistory: (e: HistoryNavigationEvent) => boolean;
125-
onJumpToAddress: (e: JumpToPointerAddressEvent|{data: number}) => void;
124+
onJumpToAddress: (address: number) => void;
126125
onDeleteMemoryHighlight: (info: HighlightInfo) => void;
127126
onByteSelected: (e: ByteSelectedEvent) => void;
128127
onResize: (e: ResizeEvent) => void;
129128
onValueTypeToggled: (e: ValueTypeToggledEvent) => void;
130-
onValueTypeModeChanged: (e: ValueTypeModeChangedEvent) => void;
129+
onValueTypeModeChanged: (type: ValueType, mode: ValueTypeMode) => void;
131130
onEndiannessChanged: (e: EndiannessChangedEvent) => void;
132131
memorySlice: Uint8Array<ArrayBuffer>;
133132
viewerStart: number;
@@ -167,7 +166,7 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: Record<string, unknown>,
167166
<devtools-widget .widgetConfig=${widgetConfig(LinearMemoryHighlightChipList, {
168167
highlightInfos: highlightedMemoryAreas,
169168
focusedMemoryHighlight,
170-
jumpToAddress: (address: number) => input.onJumpToAddress({data: address}),
169+
jumpToAddress: (address: number) => input.onJumpToAddress(address),
171170
deleteHighlight: input.onDeleteMemoryHighlight,
172171
})}>
173172
</devtools-widget>
@@ -201,11 +200,11 @@ export const DEFAULT_VIEW = (input: ViewInput, _output: Record<string, unknown>,
201200
valueTypeModes: input.valueTypeModes,
202201
endianness: input.endianness,
203202
memoryLength: input.outerMemoryLength,
203+
onValueTypeModeChange: input.onValueTypeModeChanged,
204+
onJumpToAddressClicked: input.onJumpToAddress
204205
}}
205206
@valuetypetoggled=${input.onValueTypeToggled}
206-
@valuetypemodechanged=${input.onValueTypeModeChanged}
207207
@endiannesschanged=${input.onEndiannessChanged}
208-
@jumptopointeraddress=${input.onJumpToAddress}
209208
>
210209
</devtools-linear-memory-inspector-interpreter>
211210
</div>`}
@@ -379,13 +378,9 @@ export class LinearMemoryInspector extends Common.ObjectWrapper.eventMixin<Event
379378
this.#view(viewInput, {}, this.contentElement);
380379
}
381380

382-
#onJumpToAddress(e: JumpToPointerAddressEvent|{data: number}): void {
383-
// Stop event from bubbling up, since no element further up needs the event.
384-
if (e instanceof Event) {
385-
e.stopPropagation();
386-
}
381+
#onJumpToAddress(address: number): void {
387382
this.#currentNavigatorMode = Mode.SUBMITTED;
388-
const addressInRange = Math.max(0, Math.min(e.data, this.#outerMemoryLength - 1));
383+
const addressInRange = Math.max(0, Math.min(address, this.#outerMemoryLength - 1));
389384
this.#jumpToAddress(addressInRange);
390385
}
391386

@@ -446,9 +441,7 @@ export class LinearMemoryInspector extends Common.ObjectWrapper.eventMixin<Event
446441
void this.requestUpdate();
447442
}
448443

449-
#onValueTypeModeChanged(e: ValueTypeModeChangedEvent): void {
450-
e.stopImmediatePropagation();
451-
const {type, mode} = e.data;
444+
#onValueTypeModeChanged(type: ValueType, mode: ValueTypeMode): void {
452445
this.#valueTypeModes.set(type, mode);
453446
this.dispatchEventToListeners(Events.SETTINGS_CHANGED, this.#createSettings());
454447
void this.requestUpdate();

front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.test.ts

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ import type * as UI from '../../../ui/legacy/legacy.js';
1313

1414
import * as LinearMemoryInspectorComponents from './components.js';
1515

16-
const DISPLAY_SELECTOR = 'devtools-linear-memory-inspector-interpreter-display';
1716
const TOOLBAR_SELECTOR = '.settings-toolbar';
1817
export const ENDIANNESS_SELECTOR = '[data-endianness]';
1918

@@ -27,9 +26,11 @@ function assertSettingsRenders(
2726
}
2827

2928
function assertDisplayRenders(component: HTMLElement) {
30-
const display = getElementWithinComponent(
31-
component, DISPLAY_SELECTOR, LinearMemoryInspectorComponents.ValueInterpreterDisplay.ValueInterpreterDisplay);
32-
assert.isNotNull(display);
29+
const widget = component.shadowRoot?.querySelector<
30+
UI.Widget.WidgetElement<LinearMemoryInspectorComponents.ValueInterpreterDisplay.ValueInterpreterDisplay>>(
31+
'devtools-widget');
32+
assert.instanceOf(
33+
widget?.getWidget(), LinearMemoryInspectorComponents.ValueInterpreterDisplay.ValueInterpreterDisplay);
3334
}
3435

3536
function clickSettingsButton(
@@ -48,6 +49,8 @@ describe('LinearMemoryValueInterpreter', () => {
4849
endianness: LinearMemoryInspectorComponents.ValueInterpreterDisplayUtils.Endianness.LITTLE,
4950
valueTypes: new Set([LinearMemoryInspectorComponents.ValueInterpreterDisplayUtils.ValueType.INT8]),
5051
memoryLength: buffer.byteLength,
52+
onValueTypeModeChange: () => {},
53+
onJumpToAddressClicked: () => {},
5154
};
5255
renderElementIntoDOM(component);
5356
return component;

front_end/panels/linear_memory_inspector/components/LinearMemoryValueInterpreter.ts

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
/* eslint-disable @devtools/no-lit-render-outside-of-view */
55

66
import '../../../ui/kit/kit.js';
7-
import './ValueInterpreterDisplay.js';
87

98
import * as i18n from '../../../core/i18n/i18n.js';
109
import * as Platform from '../../../core/platform/platform.js';
@@ -14,6 +13,7 @@ import * as Lit from '../../../ui/lit/lit.js';
1413
import * as VisualLogging from '../../../ui/visual_logging/visual_logging.js';
1514

1615
import linearMemoryValueInterpreterStyles from './linearMemoryValueInterpreter.css.js';
16+
import {ValueInterpreterDisplay} from './ValueInterpreterDisplay.js';
1717
import {Endianness, type ValueType, type ValueTypeMode} from './ValueInterpreterDisplayUtils.js';
1818
import {ValueInterpreterSettings} from './ValueInterpreterSettings.js';
1919

@@ -61,9 +61,13 @@ export interface LinearMemoryValueInterpreterData {
6161
endianness: Endianness;
6262
valueTypeModes?: Map<ValueType, ValueTypeMode>;
6363
memoryLength: number;
64+
onValueTypeModeChange: (type: ValueType, mode: ValueTypeMode) => void;
65+
onJumpToAddressClicked: (address: number) => void;
6466
}
6567

6668
export class LinearMemoryValueInterpreter extends HTMLElement {
69+
#onValueTypeModeChange: (type: ValueType, mode: ValueTypeMode) => void = () => {};
70+
#onJumpToAddressClicked: (address: number) => void = () => {};
6771
readonly #shadow = this.attachShadow({mode: 'open'});
6872
#endianness = Endianness.LITTLE;
6973
#buffer = new ArrayBuffer(0);
@@ -78,6 +82,8 @@ export class LinearMemoryValueInterpreter extends HTMLElement {
7882
this.#valueTypes = data.valueTypes;
7983
this.#valueTypeModeConfig = data.valueTypeModes || new Map();
8084
this.#memoryLength = data.memoryLength;
85+
this.#onValueTypeModeChange = data.onValueTypeModeChange;
86+
this.#onJumpToAddressClicked = data.onJumpToAddressClicked;
8187
this.#render();
8288
}
8389

@@ -107,15 +113,16 @@ export class LinearMemoryValueInterpreter extends HTMLElement {
107113
valueTypes: this.#valueTypes, onToggle: this.#onSettingTypeToggle })}>
108114
</devtools-widget>` :
109115
html`
110-
<devtools-linear-memory-inspector-interpreter-display
111-
.data=${{
116+
<devtools-widget .widgetConfig=${widgetConfig(ValueInterpreterDisplay, {
112117
buffer: this.#buffer,
113118
valueTypes: this.#valueTypes,
114119
endianness: this.#endianness,
115120
valueTypeModes: this.#valueTypeModeConfig,
116121
memoryLength: this.#memoryLength,
117-
}}>
118-
</devtools-linear-memory-inspector-interpreter-display>`}
122+
onValueTypeModeChange: this.#onValueTypeModeChange,
123+
onJumpToAddressClicked: this.#onJumpToAddressClicked,
124+
})}>
125+
</devtools-widget>`}
119126
</div>
120127
</div>
121128
`,

0 commit comments

Comments
 (0)