From 3e2352423b5a18aae8d8836ef8b98cf0138f9c70 Mon Sep 17 00:00:00 2001 From: Terry Jia Date: Wed, 28 Jan 2026 14:51:40 -0500 Subject: [PATCH] fix: remove redundant forceRender call and add ResizeObserver guard (#8372) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ## Summary - Remove duplicate forceRender() in ResizeObserver callback since handleResize() already calls it - Add guard for environments without ResizeObserver support - Disconnect existing observer before reassigning to prevent leaks requested by @DrJKL in https://github.com/Comfy-Org/ComfyUI_frontend/pull/8351 ┆Issue is synchronized with this [Notion page](https://www.notion.so/PR-8372-fix-remove-redundant-forceRender-call-and-add-ResizeObserver-guard-2f66d73d3650811bb3a6de5c59b3c1fb) by [Unito](https://www.unito.io) --- src/extensions/core/load3d/Load3d.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/extensions/core/load3d/Load3d.ts b/src/extensions/core/load3d/Load3d.ts index 00cc62280..445e9d608 100644 --- a/src/extensions/core/load3d/Load3d.ts +++ b/src/extensions/core/load3d/Load3d.ts @@ -157,9 +157,11 @@ class Load3d { } private initResizeObserver(container: Element | HTMLElement): void { + if (typeof ResizeObserver === 'undefined') return + + this.resizeObserver?.disconnect() this.resizeObserver = new ResizeObserver(() => { this.handleResize() - this.forceRender() }) this.resizeObserver.observe(container) } @@ -522,7 +524,6 @@ class Load3d { this.viewHelperManager.recreateViewHelper() this.handleResize() - this.forceRender() } getCurrentCameraType(): 'perspective' | 'orthographic' { @@ -584,7 +585,6 @@ class Load3d { } this.handleResize() - this.forceRender() this.loadingPromise = null } @@ -618,7 +618,6 @@ class Load3d { this.targetHeight = height this.targetAspectRatio = width / height this.handleResize() - this.forceRender() } addEventListener(event: string, callback: EventCallback): void { @@ -631,7 +630,6 @@ class Load3d { refreshViewport(): void { this.handleResize() - this.forceRender() } handleResize(): void {