webrtc-adapter
Advanced tools
Comparing version 3.1.3 to 3.1.4
@@ -55,2 +55,3 @@ (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ | ||
chromeShim.shimOnTrack(); | ||
chromeShim.shimGetSendersWithDtmf(); | ||
break; | ||
@@ -157,2 +158,30 @@ case 'firefox': | ||
shimGetSendersWithDtmf: function() { | ||
if (typeof window === 'object' && window.RTCPeerConnection && | ||
!('getSenders' in RTCPeerConnection.prototype) && | ||
'createDTMFSender' in RTCPeerConnection.prototype) { | ||
RTCPeerConnection.prototype.getSenders = function() { | ||
return this._senders; | ||
}; | ||
var origAddStream = RTCPeerConnection.prototype.addStream; | ||
RTCPeerConnection.prototype.addStream = function(stream) { | ||
var pc = this; | ||
pc._senders = pc._senders || []; | ||
origAddStream.apply(pc, [stream]); | ||
stream.getTracks().forEach(function(track) { | ||
pc._senders.push({ | ||
track: track, | ||
get dtmf() { | ||
if (!this._dtmf) { | ||
this._dtmf = pc.createDTMFSender(track); | ||
} | ||
return this._dtmf; | ||
} | ||
}); | ||
}); | ||
}; | ||
} | ||
}, | ||
shimSourceObject: function() { | ||
@@ -366,2 +395,3 @@ if (typeof window === 'object') { | ||
shimOnTrack: chromeShim.shimOnTrack, | ||
shimGetSendersWithDtmf: chromeShim.shimGetSendersWithDtmf, | ||
shimSourceObject: chromeShim.shimSourceObject, | ||
@@ -945,3 +975,13 @@ shimPeerConnection: chromeShim.shimPeerConnection, | ||
shimGetUserMedia: function() { | ||
navigator.getUserMedia = navigator.webkitGetUserMedia; | ||
if (!navigator.getUserMedia) { | ||
if (navigator.webkitGetUserMedia) { | ||
navigator.getUserMedia = navigator.webkitGetUserMedia.bind(navigator); | ||
} else if (navigator.mediaDevices && | ||
navigator.mediaDevices.getUserMedia) { | ||
navigator.getUserMedia = function(constraints, cb, errcb) { | ||
navigator.mediaDevices.getUserMedia(constraints) | ||
.then(cb, errcb); | ||
}.bind(navigator); | ||
} | ||
} | ||
} | ||
@@ -1029,5 +1069,3 @@ }; | ||
result.version = this.extractVersion(navigator.userAgent, | ||
/Firefox\/([0-9]+)\./, 1); | ||
// all webkit-based browsers | ||
/Firefox\/(\d+)\./, 1); | ||
} else if (navigator.webkitGetUserMedia) { | ||
@@ -1038,25 +1076,9 @@ // Chrome, Chromium, Webview, Opera, all use the chrome shim for now | ||
result.version = this.extractVersion(navigator.userAgent, | ||
/Chrom(e|ium)\/([0-9]+)\./, 2); | ||
// Safari or unknown webkit-based | ||
// for the time being Safari has support for MediaStreams but not webRTC | ||
} else { | ||
// Safari UA substrings of interest for reference: | ||
// - webkit version: AppleWebKit/602.1.25 (also used in Op,Cr) | ||
// - safari UI version: Version/9.0.3 (unique to Safari) | ||
// - safari UI webkit version: Safari/601.4.4 (also used in Op,Cr) | ||
// | ||
// if the webkit version and safari UI webkit versions are equals, | ||
// ... this is a stable version. | ||
// | ||
// only the internal webkit version is important today to know if | ||
// media streams are supported | ||
// | ||
/Chrom(e|ium)\/(\d+)\./, 2); | ||
} else { // Safari (in an unpublished version) or unknown webkit-based. | ||
if (navigator.userAgent.match(/Version\/(\d+).(\d+)/)) { | ||
result.browser = 'safari'; | ||
result.version = this.extractVersion(navigator.userAgent, | ||
/AppleWebKit\/([0-9]+)\./, 1); | ||
// unknown webkit-based browser | ||
} else { | ||
/AppleWebKit\/(\d+)\./, 1); | ||
} else { // unknown webkit-based browser. | ||
result.browser = 'Unsupported webkit-based browser ' + | ||
@@ -1067,12 +1089,14 @@ 'with GUM support but no WebRTC support.'; | ||
} | ||
// Edge. | ||
} else if (navigator.mediaDevices && | ||
navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)) { | ||
navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)) { // Edge. | ||
result.browser = 'edge'; | ||
result.version = this.extractVersion(navigator.userAgent, | ||
/Edge\/(\d+).(\d+)$/, 2); | ||
// Default fallthrough: not supported. | ||
} else { | ||
} else if (navigator.mediaDevices && | ||
navigator.userAgent.match(/AppleWebKit\/(\d+)\./)) { | ||
// Safari, with webkitGetUserMedia removed. | ||
result.browser = 'safari'; | ||
result.version = this.extractVersion(navigator.userAgent, | ||
/AppleWebKit\/(\d+)\./, 1); | ||
} else { // Default fallthrough: not supported. | ||
result.browser = 'Not a supported browser.'; | ||
@@ -1124,2 +1148,11 @@ return result; | ||
}); | ||
var nativeSetAttribute = HTMLMediaElement.prototype.setAttribute; | ||
HTMLMediaElement.prototype.setAttribute = function() { | ||
if (arguments.length === 2 && | ||
('' + arguments[0]).toLowerCase() === 'src') { | ||
this.srcObject = streams.get(arguments[1]) || null; | ||
} | ||
return nativeSetAttribute.apply(this, arguments); | ||
}; | ||
} | ||
@@ -1134,5 +1167,6 @@ }; | ||
extractVersion: utils.extractVersion, | ||
shimCreateObjectURL: utils.shimCreateObjectURL | ||
shimCreateObjectURL: utils.shimCreateObjectURL, | ||
detectBrowser: utils.detectBrowser.bind(utils) | ||
}; | ||
},{}]},{},[2]); |
@@ -55,2 +55,3 @@ (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.adapter = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ | ||
chromeShim.shimOnTrack(); | ||
chromeShim.shimGetSendersWithDtmf(); | ||
break; | ||
@@ -157,2 +158,30 @@ case 'firefox': | ||
shimGetSendersWithDtmf: function() { | ||
if (typeof window === 'object' && window.RTCPeerConnection && | ||
!('getSenders' in RTCPeerConnection.prototype) && | ||
'createDTMFSender' in RTCPeerConnection.prototype) { | ||
RTCPeerConnection.prototype.getSenders = function() { | ||
return this._senders; | ||
}; | ||
var origAddStream = RTCPeerConnection.prototype.addStream; | ||
RTCPeerConnection.prototype.addStream = function(stream) { | ||
var pc = this; | ||
pc._senders = pc._senders || []; | ||
origAddStream.apply(pc, [stream]); | ||
stream.getTracks().forEach(function(track) { | ||
pc._senders.push({ | ||
track: track, | ||
get dtmf() { | ||
if (!this._dtmf) { | ||
this._dtmf = pc.createDTMFSender(track); | ||
} | ||
return this._dtmf; | ||
} | ||
}); | ||
}); | ||
}; | ||
} | ||
}, | ||
shimSourceObject: function() { | ||
@@ -366,2 +395,3 @@ if (typeof window === 'object') { | ||
shimOnTrack: chromeShim.shimOnTrack, | ||
shimGetSendersWithDtmf: chromeShim.shimGetSendersWithDtmf, | ||
shimSourceObject: chromeShim.shimSourceObject, | ||
@@ -945,3 +975,13 @@ shimPeerConnection: chromeShim.shimPeerConnection, | ||
shimGetUserMedia: function() { | ||
navigator.getUserMedia = navigator.webkitGetUserMedia; | ||
if (!navigator.getUserMedia) { | ||
if (navigator.webkitGetUserMedia) { | ||
navigator.getUserMedia = navigator.webkitGetUserMedia.bind(navigator); | ||
} else if (navigator.mediaDevices && | ||
navigator.mediaDevices.getUserMedia) { | ||
navigator.getUserMedia = function(constraints, cb, errcb) { | ||
navigator.mediaDevices.getUserMedia(constraints) | ||
.then(cb, errcb); | ||
}.bind(navigator); | ||
} | ||
} | ||
} | ||
@@ -1029,5 +1069,3 @@ }; | ||
result.version = this.extractVersion(navigator.userAgent, | ||
/Firefox\/([0-9]+)\./, 1); | ||
// all webkit-based browsers | ||
/Firefox\/(\d+)\./, 1); | ||
} else if (navigator.webkitGetUserMedia) { | ||
@@ -1038,25 +1076,9 @@ // Chrome, Chromium, Webview, Opera, all use the chrome shim for now | ||
result.version = this.extractVersion(navigator.userAgent, | ||
/Chrom(e|ium)\/([0-9]+)\./, 2); | ||
// Safari or unknown webkit-based | ||
// for the time being Safari has support for MediaStreams but not webRTC | ||
} else { | ||
// Safari UA substrings of interest for reference: | ||
// - webkit version: AppleWebKit/602.1.25 (also used in Op,Cr) | ||
// - safari UI version: Version/9.0.3 (unique to Safari) | ||
// - safari UI webkit version: Safari/601.4.4 (also used in Op,Cr) | ||
// | ||
// if the webkit version and safari UI webkit versions are equals, | ||
// ... this is a stable version. | ||
// | ||
// only the internal webkit version is important today to know if | ||
// media streams are supported | ||
// | ||
/Chrom(e|ium)\/(\d+)\./, 2); | ||
} else { // Safari (in an unpublished version) or unknown webkit-based. | ||
if (navigator.userAgent.match(/Version\/(\d+).(\d+)/)) { | ||
result.browser = 'safari'; | ||
result.version = this.extractVersion(navigator.userAgent, | ||
/AppleWebKit\/([0-9]+)\./, 1); | ||
// unknown webkit-based browser | ||
} else { | ||
/AppleWebKit\/(\d+)\./, 1); | ||
} else { // unknown webkit-based browser. | ||
result.browser = 'Unsupported webkit-based browser ' + | ||
@@ -1067,12 +1089,14 @@ 'with GUM support but no WebRTC support.'; | ||
} | ||
// Edge. | ||
} else if (navigator.mediaDevices && | ||
navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)) { | ||
navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)) { // Edge. | ||
result.browser = 'edge'; | ||
result.version = this.extractVersion(navigator.userAgent, | ||
/Edge\/(\d+).(\d+)$/, 2); | ||
// Default fallthrough: not supported. | ||
} else { | ||
} else if (navigator.mediaDevices && | ||
navigator.userAgent.match(/AppleWebKit\/(\d+)\./)) { | ||
// Safari, with webkitGetUserMedia removed. | ||
result.browser = 'safari'; | ||
result.version = this.extractVersion(navigator.userAgent, | ||
/AppleWebKit\/(\d+)\./, 1); | ||
} else { // Default fallthrough: not supported. | ||
result.browser = 'Not a supported browser.'; | ||
@@ -1124,2 +1148,11 @@ return result; | ||
}); | ||
var nativeSetAttribute = HTMLMediaElement.prototype.setAttribute; | ||
HTMLMediaElement.prototype.setAttribute = function() { | ||
if (arguments.length === 2 && | ||
('' + arguments[0]).toLowerCase() === 'src') { | ||
this.srcObject = streams.get(arguments[1]) || null; | ||
} | ||
return nativeSetAttribute.apply(this, arguments); | ||
}; | ||
} | ||
@@ -1134,3 +1167,4 @@ }; | ||
extractVersion: utils.extractVersion, | ||
shimCreateObjectURL: utils.shimCreateObjectURL | ||
shimCreateObjectURL: utils.shimCreateObjectURL, | ||
detectBrowser: utils.detectBrowser.bind(utils) | ||
}; | ||
@@ -1137,0 +1171,0 @@ |
{ | ||
"name": "webrtc-adapter", | ||
"version": "3.1.3", | ||
"version": "3.1.4", | ||
"description": "A shim to insulate apps from WebRTC spec changes and browser prefix differences", | ||
@@ -5,0 +5,0 @@ "license": "BSD-3-Clause", |
@@ -52,2 +52,3 @@ /* | ||
chromeShim.shimOnTrack(); | ||
chromeShim.shimGetSendersWithDtmf(); | ||
break; | ||
@@ -54,0 +55,0 @@ case 'firefox': |
@@ -56,2 +56,30 @@ | ||
shimGetSendersWithDtmf: function() { | ||
if (typeof window === 'object' && window.RTCPeerConnection && | ||
!('getSenders' in RTCPeerConnection.prototype) && | ||
'createDTMFSender' in RTCPeerConnection.prototype) { | ||
RTCPeerConnection.prototype.getSenders = function() { | ||
return this._senders; | ||
}; | ||
var origAddStream = RTCPeerConnection.prototype.addStream; | ||
RTCPeerConnection.prototype.addStream = function(stream) { | ||
var pc = this; | ||
pc._senders = pc._senders || []; | ||
origAddStream.apply(pc, [stream]); | ||
stream.getTracks().forEach(function(track) { | ||
pc._senders.push({ | ||
track: track, | ||
get dtmf() { | ||
if (!this._dtmf) { | ||
this._dtmf = pc.createDTMFSender(track); | ||
} | ||
return this._dtmf; | ||
} | ||
}); | ||
}); | ||
}; | ||
} | ||
}, | ||
shimSourceObject: function() { | ||
@@ -265,2 +293,3 @@ if (typeof window === 'object') { | ||
shimOnTrack: chromeShim.shimOnTrack, | ||
shimGetSendersWithDtmf: chromeShim.shimGetSendersWithDtmf, | ||
shimSourceObject: chromeShim.shimSourceObject, | ||
@@ -267,0 +296,0 @@ shimPeerConnection: chromeShim.shimPeerConnection, |
@@ -18,3 +18,13 @@ /* | ||
shimGetUserMedia: function() { | ||
navigator.getUserMedia = navigator.webkitGetUserMedia; | ||
if (!navigator.getUserMedia) { | ||
if (navigator.webkitGetUserMedia) { | ||
navigator.getUserMedia = navigator.webkitGetUserMedia.bind(navigator); | ||
} else if (navigator.mediaDevices && | ||
navigator.mediaDevices.getUserMedia) { | ||
navigator.getUserMedia = function(constraints, cb, errcb) { | ||
navigator.mediaDevices.getUserMedia(constraints) | ||
.then(cb, errcb); | ||
}.bind(navigator); | ||
} | ||
} | ||
} | ||
@@ -21,0 +31,0 @@ }; |
@@ -71,5 +71,3 @@ /* | ||
result.version = this.extractVersion(navigator.userAgent, | ||
/Firefox\/([0-9]+)\./, 1); | ||
// all webkit-based browsers | ||
/Firefox\/(\d+)\./, 1); | ||
} else if (navigator.webkitGetUserMedia) { | ||
@@ -80,25 +78,9 @@ // Chrome, Chromium, Webview, Opera, all use the chrome shim for now | ||
result.version = this.extractVersion(navigator.userAgent, | ||
/Chrom(e|ium)\/([0-9]+)\./, 2); | ||
// Safari or unknown webkit-based | ||
// for the time being Safari has support for MediaStreams but not webRTC | ||
} else { | ||
// Safari UA substrings of interest for reference: | ||
// - webkit version: AppleWebKit/602.1.25 (also used in Op,Cr) | ||
// - safari UI version: Version/9.0.3 (unique to Safari) | ||
// - safari UI webkit version: Safari/601.4.4 (also used in Op,Cr) | ||
// | ||
// if the webkit version and safari UI webkit versions are equals, | ||
// ... this is a stable version. | ||
// | ||
// only the internal webkit version is important today to know if | ||
// media streams are supported | ||
// | ||
/Chrom(e|ium)\/(\d+)\./, 2); | ||
} else { // Safari (in an unpublished version) or unknown webkit-based. | ||
if (navigator.userAgent.match(/Version\/(\d+).(\d+)/)) { | ||
result.browser = 'safari'; | ||
result.version = this.extractVersion(navigator.userAgent, | ||
/AppleWebKit\/([0-9]+)\./, 1); | ||
// unknown webkit-based browser | ||
} else { | ||
/AppleWebKit\/(\d+)\./, 1); | ||
} else { // unknown webkit-based browser. | ||
result.browser = 'Unsupported webkit-based browser ' + | ||
@@ -109,12 +91,14 @@ 'with GUM support but no WebRTC support.'; | ||
} | ||
// Edge. | ||
} else if (navigator.mediaDevices && | ||
navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)) { | ||
navigator.userAgent.match(/Edge\/(\d+).(\d+)$/)) { // Edge. | ||
result.browser = 'edge'; | ||
result.version = this.extractVersion(navigator.userAgent, | ||
/Edge\/(\d+).(\d+)$/, 2); | ||
// Default fallthrough: not supported. | ||
} else { | ||
} else if (navigator.mediaDevices && | ||
navigator.userAgent.match(/AppleWebKit\/(\d+)\./)) { | ||
// Safari, with webkitGetUserMedia removed. | ||
result.browser = 'safari'; | ||
result.version = this.extractVersion(navigator.userAgent, | ||
/AppleWebKit\/(\d+)\./, 1); | ||
} else { // Default fallthrough: not supported. | ||
result.browser = 'Not a supported browser.'; | ||
@@ -166,2 +150,11 @@ return result; | ||
}); | ||
var nativeSetAttribute = HTMLMediaElement.prototype.setAttribute; | ||
HTMLMediaElement.prototype.setAttribute = function() { | ||
if (arguments.length === 2 && | ||
('' + arguments[0]).toLowerCase() === 'src') { | ||
this.srcObject = streams.get(arguments[1]) || null; | ||
} | ||
return nativeSetAttribute.apply(this, arguments); | ||
}; | ||
} | ||
@@ -176,3 +169,4 @@ }; | ||
extractVersion: utils.extractVersion, | ||
shimCreateObjectURL: utils.shimCreateObjectURL | ||
shimCreateObjectURL: utils.shimCreateObjectURL, | ||
detectBrowser: utils.detectBrowser.bind(utils) | ||
}; |
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
Sorry, the diff of this file is too big to display
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
471860
35
12193