Skip to content

Commit 9f9b8cd

Browse files
OrKoNDevtools-frontend LUCI CQ
authored andcommitted
Fix console message resizing tracking
ResizeObserver was not a right approach for this since console messages would be removed from DOM on scolling. This CL recovers the previous logic but uses DOM events to avoid ConsoleViewMessage from directly depending on TreeOutline. Fixed: 461836623 Change-Id: I05c6fbae98065bf3643c4f55682bfae5f489872a Reviewed-on: https://chromium-review.googlesource.com/c/devtools/devtools-frontend/+/7260695 Reviewed-by: Philip Pfaffe <[email protected]> Auto-Submit: Alex Rudenko <[email protected]> Commit-Queue: Alex Rudenko <[email protected]>
1 parent 8564770 commit 9f9b8cd

File tree

3 files changed

+16
-3
lines changed

3 files changed

+16
-3
lines changed

front_end/panels/console/ConsoleViewMessage.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -982,10 +982,11 @@ export class ConsoleViewMessage implements ConsoleViewportElement {
982982
const renderResult = await UI.UIUtils.Renderer.render(node);
983983
if (renderResult) {
984984
this.selectableChildren.push(renderResult);
985-
const resizeObserver = new ResizeObserver(() => {
985+
// FIXME: this should not be needed once ConsoleViewMessage is rendering
986+
// declaratively and the tree outline auto-resizes itself.
987+
renderResult.element.addEventListener('dimensionschanged', () => {
986988
this.messageResized({data: renderResult.element});
987989
});
988-
resizeObserver.observe(renderResult.element);
989990
result.appendChild(renderResult.element);
990991
} else {
991992
result.appendChild(this.formatParameterAsObject(remoteObject, false));

front_end/panels/elements/ElementsTreeOutlineRenderer.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
*/
3434

3535
import * as SDK from '../../core/sdk/sdk.js';
36-
import type * as UI from '../../ui/legacy/legacy.js';
36+
import * as UI from '../../ui/legacy/legacy.js';
3737

3838
import {ElementsTreeOutline} from './ElementsTreeOutline.js';
3939

@@ -75,6 +75,12 @@ export class Renderer implements UI.UIUtils.Renderer {
7575
if (options?.expand) {
7676
treeOutline.firstChild()?.expand();
7777
}
78+
const dispatchDimensionChange = (): void => {
79+
treeOutline.element.dispatchEvent(new CustomEvent('dimensionschanged'));
80+
};
81+
treeOutline.addEventListener(UI.TreeOutline.Events.ElementAttached, dispatchDimensionChange);
82+
treeOutline.addEventListener(UI.TreeOutline.Events.ElementExpanded, dispatchDimensionChange);
83+
treeOutline.addEventListener(UI.TreeOutline.Events.ElementCollapsed, dispatchDimensionChange);
7884
return {
7985
element: treeOutline.element,
8086
forceSelect: treeOutline.forceSelect.bind(treeOutline),

front_end/ui/legacy/components/object_ui/ObjectPropertiesSection.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1697,6 +1697,12 @@ export class Renderer implements UI.UIUtils.Renderer {
16971697
if (options?.expand) {
16981698
section.firstChild()?.expand();
16991699
}
1700+
const dispatchDimensionChange = (): void => {
1701+
section.element.dispatchEvent(new CustomEvent('dimensionschanged'));
1702+
};
1703+
section.addEventListener(UI.TreeOutline.Events.ElementAttached, dispatchDimensionChange);
1704+
section.addEventListener(UI.TreeOutline.Events.ElementExpanded, dispatchDimensionChange);
1705+
section.addEventListener(UI.TreeOutline.Events.ElementCollapsed, dispatchDimensionChange);
17001706
return {
17011707
element: section.element,
17021708
forceSelect: section.forceSelect.bind(section),

0 commit comments

Comments
 (0)