- Consolidated duplicate UndoManagers to single instance - Fixed connection promise to only resolve on 'connected' status - Fixed WebSocketProvider import (WebsocketProvider) - Added proper doc.destroy() cleanup - Renamed isPresenceInitialized property to avoid conflict Co-Authored-By: Paperclip <noreply@paperclip.ing>
64 lines
3.5 KiB
JavaScript
64 lines
3.5 KiB
JavaScript
/*
|
|
* 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.
|
|
*/
|
|
/* eslint-env node */
|
|
'use strict';
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.shimGetUserMedia = shimGetUserMedia;
|
|
var utils = _interopRequireWildcard(require("../utils"));
|
|
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
function shimGetUserMedia(window, browserDetails) {
|
|
var navigator = window && window.navigator;
|
|
var MediaStreamTrack = window && window.MediaStreamTrack;
|
|
navigator.getUserMedia = function (constraints, onSuccess, onError) {
|
|
// Replace Firefox 44+'s deprecation warning with unprefixed version.
|
|
utils.deprecated('navigator.getUserMedia', 'navigator.mediaDevices.getUserMedia');
|
|
navigator.mediaDevices.getUserMedia(constraints).then(onSuccess, onError);
|
|
};
|
|
if (!(browserDetails.version > 55 && 'autoGainControl' in navigator.mediaDevices.getSupportedConstraints())) {
|
|
var remap = function remap(obj, a, b) {
|
|
if (a in obj && !(b in obj)) {
|
|
obj[b] = obj[a];
|
|
delete obj[a];
|
|
}
|
|
};
|
|
var nativeGetUserMedia = navigator.mediaDevices.getUserMedia.bind(navigator.mediaDevices);
|
|
navigator.mediaDevices.getUserMedia = function (c) {
|
|
if (_typeof(c) === 'object' && _typeof(c.audio) === 'object') {
|
|
c = JSON.parse(JSON.stringify(c));
|
|
remap(c.audio, 'autoGainControl', 'mozAutoGainControl');
|
|
remap(c.audio, 'noiseSuppression', 'mozNoiseSuppression');
|
|
}
|
|
return nativeGetUserMedia(c);
|
|
};
|
|
if (MediaStreamTrack && MediaStreamTrack.prototype.getSettings) {
|
|
var nativeGetSettings = MediaStreamTrack.prototype.getSettings;
|
|
MediaStreamTrack.prototype.getSettings = function () {
|
|
var obj = nativeGetSettings.apply(this, arguments);
|
|
remap(obj, 'mozAutoGainControl', 'autoGainControl');
|
|
remap(obj, 'mozNoiseSuppression', 'noiseSuppression');
|
|
return obj;
|
|
};
|
|
}
|
|
if (MediaStreamTrack && MediaStreamTrack.prototype.applyConstraints) {
|
|
var nativeApplyConstraints = MediaStreamTrack.prototype.applyConstraints;
|
|
MediaStreamTrack.prototype.applyConstraints = function (c) {
|
|
if (this.kind === 'audio' && _typeof(c) === 'object') {
|
|
c = JSON.parse(JSON.stringify(c));
|
|
remap(c, 'autoGainControl', 'mozAutoGainControl');
|
|
remap(c, 'noiseSuppression', 'mozNoiseSuppression');
|
|
}
|
|
return nativeApplyConstraints.apply(this, [c]);
|
|
};
|
|
}
|
|
}
|
|
}
|