From c7a18924a63cacb4caeb60a386f4d7160b7e1fde Mon Sep 17 00:00:00 2001 From: Aleksander Bodurri Date: Mon, 23 Mar 2026 00:18:00 -0400 Subject: [PATCH] fix(devtools): fix incorrect logic in destroy function for ChromeMessageBus Destroy uses window.removeEventListener but the ChromeMessageBus doesn't actually depend on a window object. In practice this code is unlikely to ever be reached. If a tab is closed the entire context script JS process is killed so this is not an bug that would be very common or even reachable. That being said for correctness this should not be using window. (cherry picked from commit 36edf4870ff988ad9f7ca9be8f746fe59525f0c9) --- devtools/projects/shell-browser/src/app/chrome-message-bus.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/devtools/projects/shell-browser/src/app/chrome-message-bus.ts b/devtools/projects/shell-browser/src/app/chrome-message-bus.ts index 747d69cac9c..efe511876e2 100644 --- a/devtools/projects/shell-browser/src/app/chrome-message-bus.ts +++ b/devtools/projects/shell-browser/src/app/chrome-message-bus.ts @@ -80,7 +80,7 @@ export class ChromeMessageBus extends MessageBus { } override destroy(): void { - this._listeners.forEach((l) => window.removeEventListener('message', l)); + this._listeners.forEach((l) => this._port.onMessage.removeListener(l)); this._listeners = []; } }