X-Git-Url: https://git.r.bdr.sh/rbdr/junction/blobdiff_plain/6a3568bc5942423b93ba2749036489ad9e38e7cf..b9a2baf2a7c957089e63844b857e05c07b87c2fb:/extension/junction.js diff --git a/extension/junction.js b/extension/junction.js index 889e23f..3e8b4d9 100644 --- a/extension/junction.js +++ b/extension/junction.js @@ -1,19 +1,18 @@ const internals = { - - promisesSupported: !!(window.browser), + promisesSupported: !!window.browser, port: null, currentUrl: null, icons: { call: { - 16: 'icons/action-16.png', - 32: 'icons/action-32.png' + 16: "icons/action-16.png", + 32: "icons/action-32.png", }, hangUp: { - 16: 'icons/hang_up-16.png', - 32: 'icons/hang_up-32.png' - } + 16: "icons/hang_up-16.png", + 32: "icons/hang_up-32.png", + }, }, onClick() { @@ -25,89 +24,82 @@ const internals = { }, onConnect(port) { - internals.port = port; port.onDisconnect.addListener(internals.onDisconnect); port.onMessage.addListener(internals.onMessage); port.postMessage({ - action: 'joinAudioCall', + action: "joinAudioCall", data: { currentUrl: internals.currentUrl, - tada: internals.getRoot().runtime.getURL('sounds/tada.wav') - } + tada: internals.getRoot().runtime.getURL("sounds/tada.wav"), + }, }); internals.getRoot().browserAction.enable(); - internals.setIcon('hangUp'); + internals.setIcon("hangUp"); }, onMessage(message) { - - if (message.action === 'error') { - internals.getRoot().browserAction.setBadgeText({ text: 'x' }, () => {}); + if (message.action === "error") { + internals.getRoot().browserAction.setBadgeText({ text: "x" }, () => {}); } }, onDisconnect() { - internals.getRoot().browserAction.setBadgeText({ text: '' }, () => {}); - internals.setIcon('call'); + internals.getRoot().browserAction.setBadgeText({ text: "" }, () => {}); + internals.setIcon("call"); internals.currentUrl = null; internals.port = null; internals.getRoot().browserAction.enable(); }, async joinAudioCall() { - internals.getRoot().browserAction.disable(); const activeTabs = await internals.getActiveTabs(); internals.currentUrl = activeTabs[0].url; - const execution = await internals.getRoot().tabs.executeScript(activeTabs[0].id, { - file: '/build/content_script.js' - }, () => { - - if (internals.getRoot().runtime.lastError) { - internals.onDisconnect(); - } - }); + const execution = await internals.getRoot().tabs.executeScript( + activeTabs[0].id, + { + file: "/build/content_script.js", + }, + () => { + if (internals.getRoot().runtime.lastError) { + internals.onDisconnect(); + } + }, + ); if (execution && !execution[0]) { internals.onDisconnect(); } - } - , - + }, hangUp() { - internals.getRoot().browserAction.disable(); internals.port.postMessage({ - action: 'hangUp' + action: "hangUp", }); }, isInCall() { - - return !!(internals.port); + return !!internals.port; }, setIcon(iconSet) { - internals.getRoot().browserAction.setIcon({ - path: internals.icons[iconSet] + path: internals.icons[iconSet], }); }, getRoot() { - return window.browser || window.chrome; }, // Chrome doesn't yet implement the promise based tabs.query :'( getActiveTabs() { - const query = { currentWindow: true, - active: true + active: true, }; if (internals.promisesSupported) { @@ -115,9 +107,7 @@ const internals = { } return new Promise((resolve) => { - internals.getRoot().tabs.query(query, (tabs) => { - return resolve(tabs); }); });