From 8c06ee805f97ceadeb0c4d72625bba7db21b1f86 Mon Sep 17 00:00:00 2001 From: Philipp Hancke Date: Wed, 8 Feb 2017 10:28:34 +0100 Subject: [PATCH 1/2] override the correct RTCPeerConnection I just notice this broke in Chrome 56 because it continued to override webkitRTCPeerConnection. adapter.js stopped using webkitRTCPeerConnection in 3.x which meant the RTCPeerConnection used by downstream was not overridden. This should probably override both RTCPeerConnection and (webkit|moz)RTCPeerConnection but for now this solves my problem. --- rtcstats.js | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/rtcstats.js b/rtcstats.js index 9afc72c..949811b 100644 --- a/rtcstats.js +++ b/rtcstats.js @@ -107,11 +107,11 @@ } } - var origPeerConnection = window.webkitRTCPeerConnection || - window.RTCPeerConnection || window.mozRTCPeerConnection; + var origPeerConnection = window.RTCPeerConnection || + window.webkitRTCPeerConnection || window.mozRTCPeerConnection; if (origPeerConnection) { var peerconnectioncounter = 0; - var isChrome = origPeerConnection === window.webkitRTCPeerConnection; + var isChrome = !!window.webkitRTCPeerConnection; var peerconnection = function(config, constraints) { var id = 'PC_' + peerconnectioncounter++; var pc = new origPeerConnection(config, constraints); @@ -284,13 +284,14 @@ }, }); } - if (window.webkitRTCPeerConnection) { - window.webkitRTCPeerConnection = peerconnection; - window.webkitRTCPeerConnection.prototype = origPeerConnection.prototype; - } else if (window.RTCPeerConnection) { + + if (origPeerConnection === window.RTCPeerConnection) { window.RTCPeerConnection = peerconnection; window.RTCPeerConnection.prototype = origPeerConnection.prototype; - } else { + } else if (origPeerConnection === window.webkitRTCPeerConnection) { + window.webkitRTCPeerConnection = peerconnection; + window.webkitRTCPeerConnection.prototype = origPeerConnection.prototype; + } else if (origPeerConnection === window.mozRTCPeerConnection) { window.mozRTCPeerConnection = peerconnection; window.mozRTCPeerConnection.prototype = origPeerConnection.prototype; } From afd13919c0644b4b901d7d9a3632721582048db4 Mon Sep 17 00:00:00 2001 From: Philipp Hancke Date: Sun, 19 Feb 2017 20:50:10 +0100 Subject: [PATCH 2/2] override all --- rtcstats.js | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/rtcstats.js b/rtcstats.js index 949811b..398d9ec 100644 --- a/rtcstats.js +++ b/rtcstats.js @@ -107,11 +107,13 @@ } } - var origPeerConnection = window.RTCPeerConnection || - window.webkitRTCPeerConnection || window.mozRTCPeerConnection; - if (origPeerConnection) { - var peerconnectioncounter = 0; - var isChrome = !!window.webkitRTCPeerConnection; + var peerconnectioncounter = 0; + var isChrome = !!window.webkitRTCPeerConnection; + ['', 'webkit', 'moz'].forEach(function(prefix) { + if (!window[prefix + 'RTCPeerConnection']) { + return; + } + var origPeerConnection = window[prefix + 'RTCPeerConnection']; var peerconnection = function(config, constraints) { var id = 'PC_' + peerconnectioncounter++; var pc = new origPeerConnection(config, constraints); @@ -284,18 +286,9 @@ }, }); } - - if (origPeerConnection === window.RTCPeerConnection) { - window.RTCPeerConnection = peerconnection; - window.RTCPeerConnection.prototype = origPeerConnection.prototype; - } else if (origPeerConnection === window.webkitRTCPeerConnection) { - window.webkitRTCPeerConnection = peerconnection; - window.webkitRTCPeerConnection.prototype = origPeerConnection.prototype; - } else if (origPeerConnection === window.mozRTCPeerConnection) { - window.mozRTCPeerConnection = peerconnection; - window.mozRTCPeerConnection.prototype = origPeerConnection.prototype; - } - } + window[prefix + 'RTCPeerConnection'] = peerconnection; + window[prefix + 'RTCPeerConnection'].prototype = origPeerConnection.prototype; + }); // getUserMedia wrappers function dumpStream(stream) {