Skip to content

Commit 75ed3b9

Browse files
committed
Add adapter artifacts
1 parent b4d1e73 commit 75ed3b9

File tree

3 files changed

+61
-12
lines changed

3 files changed

+61
-12
lines changed

release/adapter.js

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1676,6 +1676,8 @@ var utils = _interopRequireWildcard(_utils);
16761676

16771677
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
16781678

1679+
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
1680+
16791681
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
16801682

16811683
function shimOnTrack(window) {
@@ -1845,11 +1847,16 @@ function shimAddTransceiver(window) {
18451847
if (origAddTransceiver) {
18461848
window.RTCPeerConnection.prototype.addTransceiver = function addTransceiver() {
18471849
this.setParametersPromises = [];
1848-
var initParameters = arguments[1];
1849-
var shouldPerformCheck = initParameters && 'sendEncodings' in initParameters;
1850+
// WebIDL input coercion and validation
1851+
var sendEncodings = arguments[1] && arguments[1].sendEncodings;
1852+
if (sendEncodings === undefined) {
1853+
sendEncodings = [];
1854+
}
1855+
sendEncodings = [].concat(_toConsumableArray(sendEncodings));
1856+
var shouldPerformCheck = sendEncodings.length > 0;
18501857
if (shouldPerformCheck) {
18511858
// If sendEncodings params are provided, validate grammar
1852-
initParameters.sendEncodings.forEach(function (encodingParam) {
1859+
sendEncodings.forEach(function (encodingParam) {
18531860
if ('rid' in encodingParam) {
18541861
var ridRegex = /^[a-z0-9]{0,16}$/i;
18551862
if (!ridRegex.test(encodingParam.rid)) {
@@ -1883,8 +1890,8 @@ function shimAddTransceiver(window) {
18831890
if (!('encodings' in params) ||
18841891
// Avoid being fooled by patched getParameters() below.
18851892
params.encodings.length === 1 && Object.keys(params.encodings[0]).length === 0) {
1886-
params.encodings = initParameters.sendEncodings;
1887-
sender.sendEncodings = initParameters.sendEncodings;
1893+
params.encodings = sendEncodings;
1894+
sender.sendEncodings = sendEncodings;
18881895
this.setParametersPromises.push(sender.setParameters(params).then(function () {
18891896
delete sender.sendEncodings;
18901897
}).catch(function () {
@@ -2623,7 +2630,7 @@ function detectBrowser(window) {
26232630
// Firefox.
26242631
result.browser = 'firefox';
26252632
result.version = extractVersion(navigator.userAgent, /Firefox\/(\d+)\./, 1);
2626-
} else if (navigator.webkitGetUserMedia || window.isSecureContext === false && window.webkitRTCPeerConnection && !window.RTCIceGatherer) {
2633+
} else if (navigator.webkitGetUserMedia || window.isSecureContext === false && window.webkitRTCPeerConnection) {
26272634
// Chrome, Chromium, Webview, Opera.
26282635
// Version matches Chrome/WebRTC version.
26292636
// Chrome 74 removed webkitGetUserMedia on http as well so we need the

release/adapter_no_global.js

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1676,6 +1676,8 @@ var utils = _interopRequireWildcard(_utils);
16761676

16771677
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
16781678

1679+
function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }
1680+
16791681
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
16801682

16811683
function shimOnTrack(window) {
@@ -1845,11 +1847,16 @@ function shimAddTransceiver(window) {
18451847
if (origAddTransceiver) {
18461848
window.RTCPeerConnection.prototype.addTransceiver = function addTransceiver() {
18471849
this.setParametersPromises = [];
1848-
var initParameters = arguments[1];
1849-
var shouldPerformCheck = initParameters && 'sendEncodings' in initParameters;
1850+
// WebIDL input coercion and validation
1851+
var sendEncodings = arguments[1] && arguments[1].sendEncodings;
1852+
if (sendEncodings === undefined) {
1853+
sendEncodings = [];
1854+
}
1855+
sendEncodings = [].concat(_toConsumableArray(sendEncodings));
1856+
var shouldPerformCheck = sendEncodings.length > 0;
18501857
if (shouldPerformCheck) {
18511858
// If sendEncodings params are provided, validate grammar
1852-
initParameters.sendEncodings.forEach(function (encodingParam) {
1859+
sendEncodings.forEach(function (encodingParam) {
18531860
if ('rid' in encodingParam) {
18541861
var ridRegex = /^[a-z0-9]{0,16}$/i;
18551862
if (!ridRegex.test(encodingParam.rid)) {
@@ -1883,8 +1890,8 @@ function shimAddTransceiver(window) {
18831890
if (!('encodings' in params) ||
18841891
// Avoid being fooled by patched getParameters() below.
18851892
params.encodings.length === 1 && Object.keys(params.encodings[0]).length === 0) {
1886-
params.encodings = initParameters.sendEncodings;
1887-
sender.sendEncodings = initParameters.sendEncodings;
1893+
params.encodings = sendEncodings;
1894+
sender.sendEncodings = sendEncodings;
18881895
this.setParametersPromises.push(sender.setParameters(params).then(function () {
18891896
delete sender.sendEncodings;
18901897
}).catch(function () {
@@ -2623,7 +2630,7 @@ function detectBrowser(window) {
26232630
// Firefox.
26242631
result.browser = 'firefox';
26252632
result.version = extractVersion(navigator.userAgent, /Firefox\/(\d+)\./, 1);
2626-
} else if (navigator.webkitGetUserMedia || window.isSecureContext === false && window.webkitRTCPeerConnection && !window.RTCIceGatherer) {
2633+
} else if (navigator.webkitGetUserMedia || window.isSecureContext === false && window.webkitRTCPeerConnection) {
26272634
// Chrome, Chromium, Webview, Opera.
26282635
// Version matches Chrome/WebRTC version.
26292636
// Chrome 74 removed webkitGetUserMedia on http as well so we need the

0 commit comments

Comments
 (0)