Avoid assigning objects to window.

This commit is contained in:
Xidorn Quan 2015-02-26 09:27:11 +11:00
parent 62f08b5fac
commit b90175760e
2 changed files with 17 additions and 20 deletions

View file

@ -21,21 +21,20 @@ function getIPs(callback){
var RTCPeerConnection = window.RTCPeerConnection var RTCPeerConnection = window.RTCPeerConnection
|| window.mozRTCPeerConnection || window.mozRTCPeerConnection
|| window.webkitRTCPeerConnection; || window.webkitRTCPeerConnection;
var useWebKit = !!window.webkitRTCPeerConnection;
//bypass naive webrtc blocking //bypass naive webrtc blocking
if (!RTCPeerConnection) { if(!RTCPeerConnection){
var iframe = document.createElement('iframe'); var iframe = document.createElement('iframe');
//invalidate content script //invalidate content script
iframe.sandbox = 'allow-same-origin'; iframe.sandbox = 'allow-same-origin';
iframe.style.display = 'none'; iframe.style.display = 'none';
document.body.appendChild(iframe); document.body.appendChild(iframe);
var win = iframe.contentWindow; var win = iframe.contentWindow;
window.RTCPeerConnection = win.RTCPeerConnection; RTCPeerConnection = win.RTCPeerConnection
window.mozRTCPeerConnection = win.mozRTCPeerConnection; || win.mozRTCPeerConnection
window.webkitRTCPeerConnection = win.webkitRTCPeerConnection; || win.webkitRTCPeerConnection;
RTCPeerConnection = window.RTCPeerConnection useWebKit = !!win.webkitRTCPeerConnection;
|| window.mozRTCPeerConnection
|| window.webkitRTCPeerConnection;
} }
//minimal requirements for data connection //minimal requirements for data connection
@ -49,7 +48,7 @@ function getIPs(callback){
var servers = undefined; var servers = undefined;
//add same stun server for chrome //add same stun server for chrome
if(window.webkitRTCPeerConnection) if(useWebKit)
servers = {iceServers: [{urls: "stun:stun.services.mozilla.com"}]}; servers = {iceServers: [{urls: "stun:stun.services.mozilla.com"}]};
//construct a new RTCPeerConnection //construct a new RTCPeerConnection
@ -87,14 +86,13 @@ function getIPs(callback){
}, function(){}); }, function(){});
//wait for a while to let everything done //wait for a while to let everything done
setTimeout(function() { setTimeout(function(){
//read candidate info from local description //read candidate info from local description
var lines = pc.localDescription.sdp.split('\n'); var lines = pc.localDescription.sdp.split('\n');
lines.forEach(function(line) { lines.forEach(function(line){
if (line.startsWith('a=candidate:')) { if(line.startsWith('a=candidate:'))
handleCandidate(line); handleCandidate(line);
}
}); });
}, 1000); }, 1000);
} }

View file

@ -28,21 +28,20 @@
var RTCPeerConnection = window.RTCPeerConnection var RTCPeerConnection = window.RTCPeerConnection
|| window.mozRTCPeerConnection || window.mozRTCPeerConnection
|| window.webkitRTCPeerConnection; || window.webkitRTCPeerConnection;
var useWebKit = !!window.webkitRTCPeerConnection;
//bypass naive webrtc blocking //bypass naive webrtc blocking
if (!RTCPeerConnection) { if(!RTCPeerConnection){
var iframe = document.createElement('iframe'); var iframe = document.createElement('iframe');
//invalidate content script //invalidate content script
iframe.sandbox = 'allow-same-origin'; iframe.sandbox = 'allow-same-origin';
iframe.style.display = 'none'; iframe.style.display = 'none';
document.body.appendChild(iframe); document.body.appendChild(iframe);
var win = iframe.contentWindow; var win = iframe.contentWindow;
window.RTCPeerConnection = win.RTCPeerConnection; RTCPeerConnection = win.RTCPeerConnection
window.mozRTCPeerConnection = win.mozRTCPeerConnection; || win.mozRTCPeerConnection
window.webkitRTCPeerConnection = win.webkitRTCPeerConnection; || win.webkitRTCPeerConnection;
RTCPeerConnection = window.RTCPeerConnection useWebKit = !!win.webkitRTCPeerConnection;
|| window.mozRTCPeerConnection
|| window.webkitRTCPeerConnection;
} }
//minimal requirements for data connection //minimal requirements for data connection
@ -56,7 +55,7 @@
var servers = undefined; var servers = undefined;
//add same stun server for chrome //add same stun server for chrome
if(window.webkitRTCPeerConnection) if(useWebKit)
servers = {iceServers: [{urls: "stun:stun.services.mozilla.com"}]}; servers = {iceServers: [{urls: "stun:stun.services.mozilla.com"}]};
//construct a new RTCPeerConnection //construct a new RTCPeerConnection