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);