diff options
| author | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2020-09-27 20:04:20 +0200 |
|---|---|---|
| committer | Ruben Beltran del Rio <ruben@unlimited.pizza> | 2020-09-27 20:04:20 +0200 |
| commit | 4757c4616d5d7106cd023f06e5e5ba04d01bbb07 (patch) | |
| tree | b74fdb24ed23352fc8306f5a7782e192ec9c5796 /extension/content_script.js | |
| parent | db35e9e7647c1169425c6b949c7f4498a6d65f4c (diff) | |
Add content script support on firefox
Diffstat (limited to 'extension/content_script.js')
| -rw-r--r-- | extension/content_script.js | 47 |
1 files changed, 47 insertions, 0 deletions
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; |