]> git.r.bdr.sh - rbdr/junction/blobdiff - extension/content_script.js
Inject script only once
[rbdr/junction] / extension / content_script.js
index 721176e8330e19ea21168656053634ff4457c3d2..9d4666931b9fae6702c31a0dedda56e55d51ecff 100644 (file)
@@ -26,6 +26,11 @@ const internals = {
     console.error(error.stack || error);
   },
 
+  connect() {
+    internals.port = chrome.runtime.connect({ name: "content" });
+    internals.port.onMessage.addListener(internals.onMessage);
+  },
+
   async joinAudioCall({ currentUrl, tada }) {
     try {
       const mediaStream = await startMedia();
@@ -50,9 +55,10 @@ const internals = {
         console.debug("disconnected from signaling server");
       });
 
-      socket.on("addPeer", ({ peerId }) => {
+      socket.on("addPeer", ({ peerId, shouldCreateOffer }) => {
         addPeer({
           peerId,
+          shouldCreateOffer,
           mediaStream,
           onOffer: (data) => socket.emit("relayOffer", data),
           socket
@@ -83,8 +89,10 @@ const internals = {
   },
 };
 
-internals.port = chrome.runtime.connect({ name: "content" });
-internals.port.onMessage.addListener(internals.onMessage);
+internals.connect();
+chrome.runtime.onConnect.addListener(() => {
+  internals.connect();
+});
 
 console.debug("Content Script Loaded");