diff --git a/apps/extension/src/listeners/tabs-updated-prax-init.ts b/apps/extension/src/listeners/tabs-updated-prax-init.ts index 1307381c..fb20d842 100644 --- a/apps/extension/src/listeners/tabs-updated-prax-init.ts +++ b/apps/extension/src/listeners/tabs-updated-prax-init.ts @@ -3,15 +3,23 @@ import { PraxConnection } from '../message/prax'; // trigger injected-connection-port to init when a known page is loaded. chrome.tabs.onUpdated.addListener( - (tabId, { status, discarded }, { url }) => + (tabId, { status, discarded, url: changeInfoUrl }, { url: tabUrl }) => { + console.log({ tabUrl, changeInfoUrl }); + const url = changeInfoUrl ?? tabUrl; + const documentUrls = [tabUrl, changeInfoUrl].filter(id => id) as string[]; + const getContext = chrome.runtime + .getContexts({ tabIds: [tabId], documentUrls }) + .then(contexts => contexts.filter(({ frameId }) => !frameId)[0]); void (async () => { + const documentId = (await getContext)?.documentId; if ( + documentId && status === 'complete' && !discarded && url?.startsWith('https://') && (await originAlreadyApproved(url)) ) - // How can we scope this to documentId? - void chrome.tabs.sendMessage(tabId, PraxConnection.Init); - })(), + void chrome.runtime.sendMessage(PraxConnection.Init, { tabId, documentId }); + })(); + }, );