You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
173 lines
5.7 KiB
173 lines
5.7 KiB
10 months ago
|
'use strict';
|
||
|
|
||
|
Object.defineProperty(exports, "__esModule", {
|
||
|
value: true
|
||
|
});
|
||
|
exports.adapterFactory = adapterFactory;
|
||
|
|
||
|
var _utils = require('./utils');
|
||
|
|
||
|
var utils = _interopRequireWildcard(_utils);
|
||
|
|
||
|
var _chrome_shim = require('./chrome/chrome_shim');
|
||
|
|
||
|
var chromeShim = _interopRequireWildcard(_chrome_shim);
|
||
|
|
||
|
var _edge_shim = require('./edge/edge_shim');
|
||
|
|
||
|
var edgeShim = _interopRequireWildcard(_edge_shim);
|
||
|
|
||
|
var _firefox_shim = require('./firefox/firefox_shim');
|
||
|
|
||
|
var firefoxShim = _interopRequireWildcard(_firefox_shim);
|
||
|
|
||
|
var _safari_shim = require('./safari/safari_shim');
|
||
|
|
||
|
var safariShim = _interopRequireWildcard(_safari_shim);
|
||
|
|
||
|
var _common_shim = require('./common_shim');
|
||
|
|
||
|
var commonShim = _interopRequireWildcard(_common_shim);
|
||
|
|
||
|
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; } }
|
||
|
|
||
|
// Shimming starts here.
|
||
|
/*
|
||
|
* Copyright (c) 2016 The WebRTC project authors. All Rights Reserved.
|
||
|
*
|
||
|
* Use of this source code is governed by a BSD-style license
|
||
|
* that can be found in the LICENSE file in the root of the source
|
||
|
* tree.
|
||
|
*/
|
||
|
function adapterFactory() {
|
||
|
var _ref = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},
|
||
|
window = _ref.window;
|
||
|
|
||
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {
|
||
|
shimChrome: true,
|
||
|
shimFirefox: true,
|
||
|
shimEdge: true,
|
||
|
shimSafari: true
|
||
|
};
|
||
|
|
||
|
// Utils.
|
||
|
var logging = utils.log;
|
||
|
var browserDetails = utils.detectBrowser(window);
|
||
|
|
||
|
var adapter = {
|
||
|
browserDetails: browserDetails,
|
||
|
commonShim: commonShim,
|
||
|
extractVersion: utils.extractVersion,
|
||
|
disableLog: utils.disableLog,
|
||
|
disableWarnings: utils.disableWarnings
|
||
|
};
|
||
|
|
||
|
// Shim browser if found.
|
||
|
switch (browserDetails.browser) {
|
||
|
case 'chrome':
|
||
|
if (!chromeShim || !chromeShim.shimPeerConnection || !options.shimChrome) {
|
||
|
logging('Chrome shim is not included in this adapter release.');
|
||
|
return adapter;
|
||
|
}
|
||
|
if (browserDetails.version === null) {
|
||
|
logging('Chrome shim can not determine version, not shimming.');
|
||
|
return adapter;
|
||
|
}
|
||
|
logging('adapter.js shimming chrome.');
|
||
|
// Export to the adapter global object visible in the browser.
|
||
|
adapter.browserShim = chromeShim;
|
||
|
|
||
|
chromeShim.shimGetUserMedia(window);
|
||
|
chromeShim.shimMediaStream(window);
|
||
|
chromeShim.shimPeerConnection(window);
|
||
|
chromeShim.shimOnTrack(window);
|
||
|
chromeShim.shimAddTrackRemoveTrack(window);
|
||
|
chromeShim.shimGetSendersWithDtmf(window);
|
||
|
chromeShim.shimGetStats(window);
|
||
|
chromeShim.shimSenderReceiverGetStats(window);
|
||
|
chromeShim.fixNegotiationNeeded(window);
|
||
|
|
||
|
commonShim.shimRTCIceCandidate(window);
|
||
|
commonShim.shimConnectionState(window);
|
||
|
commonShim.shimMaxMessageSize(window);
|
||
|
commonShim.shimSendThrowTypeError(window);
|
||
|
commonShim.removeAllowExtmapMixed(window);
|
||
|
break;
|
||
|
case 'firefox':
|
||
|
if (!firefoxShim || !firefoxShim.shimPeerConnection || !options.shimFirefox) {
|
||
|
logging('Firefox shim is not included in this adapter release.');
|
||
|
return adapter;
|
||
|
}
|
||
|
logging('adapter.js shimming firefox.');
|
||
|
// Export to the adapter global object visible in the browser.
|
||
|
adapter.browserShim = firefoxShim;
|
||
|
|
||
|
firefoxShim.shimGetUserMedia(window);
|
||
|
firefoxShim.shimPeerConnection(window);
|
||
|
firefoxShim.shimOnTrack(window);
|
||
|
firefoxShim.shimRemoveStream(window);
|
||
|
firefoxShim.shimSenderGetStats(window);
|
||
|
firefoxShim.shimReceiverGetStats(window);
|
||
|
firefoxShim.shimRTCDataChannel(window);
|
||
|
firefoxShim.shimAddTransceiver(window);
|
||
|
firefoxShim.shimGetParameters(window);
|
||
|
firefoxShim.shimCreateOffer(window);
|
||
|
firefoxShim.shimCreateAnswer(window);
|
||
|
|
||
|
commonShim.shimRTCIceCandidate(window);
|
||
|
commonShim.shimConnectionState(window);
|
||
|
commonShim.shimMaxMessageSize(window);
|
||
|
commonShim.shimSendThrowTypeError(window);
|
||
|
break;
|
||
|
case 'edge':
|
||
|
if (!edgeShim || !edgeShim.shimPeerConnection || !options.shimEdge) {
|
||
|
logging('MS edge shim is not included in this adapter release.');
|
||
|
return adapter;
|
||
|
}
|
||
|
logging('adapter.js shimming edge.');
|
||
|
// Export to the adapter global object visible in the browser.
|
||
|
adapter.browserShim = edgeShim;
|
||
|
|
||
|
edgeShim.shimGetUserMedia(window);
|
||
|
edgeShim.shimGetDisplayMedia(window);
|
||
|
edgeShim.shimPeerConnection(window);
|
||
|
edgeShim.shimReplaceTrack(window);
|
||
|
|
||
|
// the edge shim implements the full RTCIceCandidate object.
|
||
|
|
||
|
commonShim.shimMaxMessageSize(window);
|
||
|
commonShim.shimSendThrowTypeError(window);
|
||
|
break;
|
||
|
case 'safari':
|
||
|
if (!safariShim || !options.shimSafari) {
|
||
|
logging('Safari shim is not included in this adapter release.');
|
||
|
return adapter;
|
||
|
}
|
||
|
logging('adapter.js shimming safari.');
|
||
|
// Export to the adapter global object visible in the browser.
|
||
|
adapter.browserShim = safariShim;
|
||
|
|
||
|
safariShim.shimRTCIceServerUrls(window);
|
||
|
safariShim.shimCreateOfferLegacy(window);
|
||
|
safariShim.shimCallbacksAPI(window);
|
||
|
safariShim.shimLocalStreamsAPI(window);
|
||
|
safariShim.shimRemoteStreamsAPI(window);
|
||
|
safariShim.shimTrackEventTransceiver(window);
|
||
|
safariShim.shimGetUserMedia(window);
|
||
|
safariShim.shimAudioContext(window);
|
||
|
|
||
|
commonShim.shimRTCIceCandidate(window);
|
||
|
commonShim.shimMaxMessageSize(window);
|
||
|
commonShim.shimSendThrowTypeError(window);
|
||
|
commonShim.removeAllowExtmapMixed(window);
|
||
|
break;
|
||
|
default:
|
||
|
logging('Unsupported browser!');
|
||
|
break;
|
||
|
}
|
||
|
|
||
|
return adapter;
|
||
|
}
|
||
|
|
||
|
// Browser shims.
|