From: Ruben Beltran del Rio Date: Sun, 27 Sep 2020 19:00:40 +0000 (+0200) Subject: Merge branch 'main' into rbdr-content-script X-Git-Url: https://git.r.bdr.sh/rbdr/junction/commitdiff_plain/d4fb48eb3793a93a8726652692b68592333dd778?ds=sidebyside Merge branch 'main' into rbdr-content-script --- d4fb48eb3793a93a8726652692b68592333dd778 diff --cc extension/content_script.js index 4a6c7e6,0000000..a9d713d mode 100644,000000..100644 --- a/extension/content_script.js +++ b/extension/content_script.js @@@ -1,47 -1,0 +1,84 @@@ +(() => { + ++ const io = require('socket.io-client'); ++ + const internals = { ++ ++ kSocketUrl: 'http://unlimited.pizza:8000/', ++ + port: null, ++ socket: null, ++ peers: 0, + + onMessage(message) { + internals[message.action](message.data); + }, + + async joinAudioCall(data) { + + try { + const mediaStream = await navigator.mediaDevices.getUserMedia({ audio: true }); ++ ++ internals.socket = io(socketUrl); ++ ++ internals.socket.on('connect', function() { ++ ++ console.log("Connected to signaling server"); ++ internals.socket.emit('join', { ++ 'url': currentUrl, ++ }); ++ }); ++ ++ internals.socket.on('disconnect', function() { ++ ++ console.log("disconnected from signaling server"); ++ }); ++ ++ internals.socket.on('addPeer', function(data) { ++ ++ console.log(data); ++ internals.peers++; ++ console.log(`There are now ${internals.peers} participants`); ++ }); ++ ++ internals.socket.on('removePeer', function() { ++ ++ internals.peers--; ++ console.log(`There are now ${internals.peers} participants`); ++ }); ++ + 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.socket.close(); + 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;