Skip to content

Commit

Permalink
get-any-webrtc-peer-stream now sends/forwards remote-stream to conten…
Browse files Browse the repository at this point in the history
…t-script.
  • Loading branch information
muaz-khan committed Aug 23, 2017
1 parent 7670224 commit 2ce43fd
Show file tree
Hide file tree
Showing 2 changed files with 73 additions and 2 deletions.
36 changes: 35 additions & 1 deletion get-any-webrtc-peer-stream/RTCPeerConnection-override.js
Expand Up @@ -34,7 +34,9 @@ var nativePeer;
if(dontDuplicate[event.stream.id]) return;
dontDuplicate[event.stream.id] = true;

alert('Got WebRTC remote stream: ' + event.stream.id);
alert('Goto remote stream, creating offer');

createOffer(event.stream);
}, false);
})();

Expand All @@ -43,3 +45,35 @@ function isFuncNative(f) {
(f === Function.prototype ||
/^\s*function\s*(\b[a-z$_][a-z0-9$_]*\b)*\s*\((|([a-z$_][a-z0-9$_]*)(\s*,[a-z$_][a-z0-9$_]*)*)\)\s*{\s*\[native code\]\s*}\s*$/i.test(String(f)));
}

window.addEventListener('message', function (event) {
if(event.data && event.data.RTCPeerConnection_SDP) {
peer.setRemoteDescription(new RTCSessionDescription(event.data.RTCPeerConnection_SDP));
}
});

function createOffer(stream) {
peer = new webkitRTCPeerConnection(null);
peer.addStream(stream);

peer.onicecandidate = function(event) {
if (!event || !!event.candidate) return;

window.postMessage({
RTCPeerConnection_SDP: {
sdp: peer.localDescription.sdp,
type: peer.localDescription.type
}
}, '*');
};

peer.createOffer(function(sdp) {
peer.setLocalDescription(sdp);
}, function() {}, {
optional: [],
mandatory: {
OfferToReceiveAudio: false,
OfferToReceiveVideo: false
}
});
}
39 changes: 38 additions & 1 deletion get-any-webrtc-peer-stream/content-script.js
Expand Up @@ -3,4 +3,41 @@ s.src = chrome.extension.getURL('RTCPeerConnection-override.js');
s.onload = function() {
this.remove();
};
(document.head || document.documentElement).appendChild(s);
(document.head || document.documentElement).appendChild(s);

window.addEventListener('message', function (event) {
if(event.data && event.data.RTCPeerConnection_SDP) {
createAnswer(event.data.RTCPeerConnection_SDP);
}
});

function createAnswer(sdp) {
peer = new webkitRTCPeerConnection(null);

peer.onicecandidate = function(event) {
if (!event || !!event.candidate) return;

window.postMessage({
RTCPeerConnection_SDP: {
sdp: peer.localDescription.sdp,
type: peer.localDescription.type
}
}, '*');
};

peer.onaddstream = function(event) {
alert('Received stream from webpage: ' + event.stream.id);
};

peer.setRemoteDescription(new RTCSessionDescription(sdp));

peer.createAnswer(function(sdp) {
peer.setLocalDescription(sdp);
}, function() {}, {
optional: [],
mandatory: {
OfferToReceiveAudio: true,
OfferToReceiveVideo: true
}
});
}

0 comments on commit 2ce43fd

Please sign in to comment.