From 53b871369231977b269a7a5431d6b4420f7724d6 Mon Sep 17 00:00:00 2001 From: Rui Figueira Date: Fri, 12 Apr 2024 14:08:49 +0100 Subject: [PATCH] fix: create frameon demand --- packages/recorder/src/webextension/browserContext.ts | 6 +++--- packages/recorder/src/webextension/page.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/recorder/src/webextension/browserContext.ts b/packages/recorder/src/webextension/browserContext.ts index 7fddd09687..e8abd11fbd 100644 --- a/packages/recorder/src/webextension/browserContext.ts +++ b/packages/recorder/src/webextension/browserContext.ts @@ -76,15 +76,15 @@ export class BrowserContext extends EventEmitter { eventsHelper.removeEventListeners(this._listeners); } - private _onMessage({ bindingName, args }: any, { tab, frameId }: chrome.runtime.MessageSender, sendResponse: (response: any) => void) { + private _onMessage({ bindingName, args }: any, { tab, frameId, url }: chrome.runtime.MessageSender, sendResponse: (response: any) => void) { const tabId = tab?.id; // frameId may be 0! if (!bindingName || !tabId || typeof frameId !== 'number') return; - const frame = this._pages.get(tabId)?._frames.get(frameId); + const frame = this._pages.get(tabId)?._frameFor(frameId); if (!frame) return; - + frame._url = url; const func = this._bindings.get(bindingName); if (!func) throw new Error(`No binding for ${bindingName}`); diff --git a/packages/recorder/src/webextension/page.ts b/packages/recorder/src/webextension/page.ts index 9099e49240..49f044e119 100644 --- a/packages/recorder/src/webextension/page.ts +++ b/packages/recorder/src/webextension/page.ts @@ -63,7 +63,7 @@ export class Page extends EventEmitter { await chrome.tabs.update(this._tabId, { active: true }); } - private _frameFor(frameId: number) { + _frameFor(frameId: number) { let frame = this._frames.get(frameId); if (!frame) { frame = new Frame(this, frameId);