From 4757c4616d5d7106cd023f06e5e5ba04d01bbb07 Mon Sep 17 00:00:00 2001 From: Ruben Beltran del Rio Date: Sun, 27 Sep 2020 20:04:20 +0200 Subject: Add content script support on firefox --- extension/content_script.js | 47 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 extension/content_script.js (limited to 'extension/content_script.js') diff --git a/extension/content_script.js b/extension/content_script.js new file mode 100644 index 0000000..4a6c7e6 --- /dev/null +++ b/extension/content_script.js @@ -0,0 +1,47 @@ +(() => { + + const internals = { + port: null, + + onMessage(message) { + internals[message.action](message.data); + }, + + async joinAudioCall(data) { + + try { + const mediaStream = await navigator.mediaDevices.getUserMedia({ audio: true }); + internals.createAudioElement(data.tada); + } + catch (err) { + + internals.port.postMessage({ + action: 'error' + }); + internals.port.disconnect(); + internals.createAudioElement(data.tada); + } + }, + + hangUp() { + document.querySelectorAll('.junction-call-audio').forEach((audioElement) => audioElement.remove()); + internals.port.disconnect(); + }, + + createAudioElement(source, type = 'audio/wav') { + + const audioElement = document.createElement('audio'); + audioElement.setAttribute('class', 'junction-call-audio'); + audioElement.src = source; + audioElement.autoplay = 'autoplay'; + audioElement.type = type; + document.querySelector('body').appendChild(audioElement); + } + }; + + internals.port = chrome.runtime.connect({ name:"content" }); + internals.port.onMessage.addListener(internals.onMessage); +})(); + +// Indicates to the background script that we executed correctly +true; -- cgit