X-Git-Url: https://git.r.bdr.sh/rbdr/junction/blobdiff_plain/eaca9f28abdf3e3ac9571498fb6c39ca2986ee77..80172072ed99b14e3d5b435b097888a4621f78bc:/extension/junction.js diff --git a/extension/junction.js b/extension/junction.js index f3e1fb4..889e23f 100644 --- a/extension/junction.js +++ b/extension/junction.js @@ -2,6 +2,7 @@ const internals = { promisesSupported: !!(window.browser), port: null, + currentUrl: null, icons: { call: { @@ -31,6 +32,7 @@ const internals = { port.postMessage({ action: 'joinAudioCall', data: { + currentUrl: internals.currentUrl, tada: internals.getRoot().runtime.getURL('sounds/tada.wav') } }); @@ -48,6 +50,7 @@ const internals = { onDisconnect() { internals.getRoot().browserAction.setBadgeText({ text: '' }, () => {}); internals.setIcon('call'); + internals.currentUrl = null; internals.port = null; internals.getRoot().browserAction.enable(); }, @@ -57,13 +60,19 @@ const internals = { internals.getRoot().browserAction.disable(); const activeTabs = await internals.getActiveTabs(); - const execution = await internals.getRoot().tabs.executeScript(activeTabs[0].id, { - file: '/build/content_script.js' - }); + internals.currentUrl = activeTabs[0].url; + const execution = await internals.getRoot().tabs.executeScript(activeTabs[0].id, { + file: '/build/content_script.js' + }, () => { - if (!execution || !execution[0]) { + if (internals.getRoot().runtime.lastError) { internals.onDisconnect(); } + }); + + if (execution && !execution[0]) { + internals.onDisconnect(); + } } , @@ -105,7 +114,7 @@ const internals = { return internals.getRoot().tabs.query(query); } - return new Promise((resolve, reject) => { + return new Promise((resolve) => { internals.getRoot().tabs.query(query, (tabs) => {