|
@@ -30,7 +30,7 @@ export default class BrowserCapabilities extends BrowserDetection {
|
30
|
30
|
* strategy or <tt>false</tt> otherwise.
|
31
|
31
|
*/
|
32
|
32
|
doesVideoMuteByStreamRemove() {
|
33
|
|
- return this.isChromiumBased();
|
|
33
|
+ return this.isChromiumBased() || this.isSafari();
|
34
|
34
|
}
|
35
|
35
|
|
36
|
36
|
/**
|
|
@@ -61,28 +61,6 @@ export default class BrowserCapabilities extends BrowserDetection {
|
61
|
61
|
|| this.isOpera();
|
62
|
62
|
}
|
63
|
63
|
|
64
|
|
- /**
|
65
|
|
- * Checks if current browser is a Safari and a version of Safari that
|
66
|
|
- * supports native webrtc.
|
67
|
|
- *
|
68
|
|
- * @returns {boolean}
|
69
|
|
- */
|
70
|
|
- isSafariWithWebrtc() {
|
71
|
|
- return this.isSafari()
|
72
|
|
- && !this.isVersionLessThan('11');
|
73
|
|
- }
|
74
|
|
-
|
75
|
|
- /**
|
76
|
|
- * Checks if current browser is a Safari and a version of Safari that
|
77
|
|
- * supports VP8.
|
78
|
|
- *
|
79
|
|
- * @returns {boolean}
|
80
|
|
- */
|
81
|
|
- isSafariWithVP8() {
|
82
|
|
- return this.isSafari()
|
83
|
|
- && !this.isVersionLessThan('12.1');
|
84
|
|
- }
|
85
|
|
-
|
86
|
64
|
/**
|
87
|
65
|
* Checks if the current browser is supported.
|
88
|
66
|
*
|
|
@@ -92,7 +70,7 @@ export default class BrowserCapabilities extends BrowserDetection {
|
92
|
70
|
return this.isChromiumBased()
|
93
|
71
|
|| this.isFirefox()
|
94
|
72
|
|| this.isReactNative()
|
95
|
|
- || this.isSafariWithWebrtc();
|
|
73
|
+ || (this.isSafari() && !this.isVersionLessThan('12.1'));
|
96
|
74
|
}
|
97
|
75
|
|
98
|
76
|
/**
|
|
@@ -112,8 +90,7 @@ export default class BrowserCapabilities extends BrowserDetection {
|
112
|
90
|
* otherwise.
|
113
|
91
|
*/
|
114
|
92
|
supportsVideoMuteOnConnInterrupted() {
|
115
|
|
- return this.isChromiumBased() || this.isReactNative()
|
116
|
|
- || this.isSafariWithVP8();
|
|
93
|
+ return this.isChromiumBased() || this.isReactNative() || this.isSafari();
|
117
|
94
|
}
|
118
|
95
|
|
119
|
96
|
/**
|
|
@@ -124,7 +101,7 @@ export default class BrowserCapabilities extends BrowserDetection {
|
124
|
101
|
supportsBandwidthStatistics() {
|
125
|
102
|
// FIXME bandwidth stats are currently not implemented for FF on our
|
126
|
103
|
// side, but not sure if not possible ?
|
127
|
|
- return !this.isFirefox() && !this.isSafariWithWebrtc();
|
|
104
|
+ return !this.isFirefox() && !this.isSafari();
|
128
|
105
|
}
|
129
|
106
|
|
130
|
107
|
/**
|
|
@@ -142,8 +119,7 @@ export default class BrowserCapabilities extends BrowserDetection {
|
142
|
119
|
* candidates through the legacy getStats() API.
|
143
|
120
|
*/
|
144
|
121
|
supportsLocalCandidateRttStatistics() {
|
145
|
|
- return this.isChromiumBased() || this.isReactNative()
|
146
|
|
- || this.isSafariWithVP8();
|
|
122
|
+ return this.isChromiumBased() || this.isReactNative() || this.isSafari();
|
147
|
123
|
}
|
148
|
124
|
|
149
|
125
|
/**
|
|
@@ -169,7 +145,7 @@ export default class BrowserCapabilities extends BrowserDetection {
|
169
|
145
|
* @returns {boolean}
|
170
|
146
|
*/
|
171
|
147
|
supportsRtpSender() {
|
172
|
|
- return this.isFirefox() || this.isSafariWithVP8();
|
|
148
|
+ return this.isFirefox() || this.isSafari();
|
173
|
149
|
}
|
174
|
150
|
|
175
|
151
|
/**
|
|
@@ -178,7 +154,7 @@ export default class BrowserCapabilities extends BrowserDetection {
|
178
|
154
|
* @returns {boolean}
|
179
|
155
|
*/
|
180
|
156
|
supportsRtx() {
|
181
|
|
- return !this.isFirefox() && !this.usesUnifiedPlan();
|
|
157
|
+ return !this.isFirefox();
|
182
|
158
|
}
|
183
|
159
|
|
184
|
160
|
/**
|
|
@@ -188,14 +164,7 @@ export default class BrowserCapabilities extends BrowserDetection {
|
188
|
164
|
* @returns {boolean}
|
189
|
165
|
*/
|
190
|
166
|
supportsVideo() {
|
191
|
|
- // FIXME: Check if we can use supportsVideoOut and supportsVideoIn. I
|
192
|
|
- // leave the old implementation here in order not to brake something.
|
193
|
|
-
|
194
|
|
- // Older versions of Safari using webrtc/adapter do not support video
|
195
|
|
- // due in part to Safari only supporting H264 and the bridge sending VP8
|
196
|
|
- // Newer Safari support VP8 and other WebRTC features.
|
197
|
|
- return !this.isSafariWithWebrtc()
|
198
|
|
- || (this.isSafariWithVP8() && this.usesPlanB());
|
|
167
|
+ return true;
|
199
|
168
|
}
|
200
|
169
|
|
201
|
170
|
/**
|
|
@@ -213,7 +182,7 @@ export default class BrowserCapabilities extends BrowserDetection {
|
213
|
182
|
* @returns {boolean}
|
214
|
183
|
*/
|
215
|
184
|
usesSdpMungingForSimulcast() {
|
216
|
|
- return this.isChromiumBased() || this.isSafariWithVP8();
|
|
185
|
+ return this.isChromiumBased() || this.isSafari();
|
217
|
186
|
}
|
218
|
187
|
|
219
|
188
|
/**
|
|
@@ -226,7 +195,7 @@ export default class BrowserCapabilities extends BrowserDetection {
|
226
|
195
|
return true;
|
227
|
196
|
}
|
228
|
197
|
|
229
|
|
- if (this.isSafariWithVP8() && typeof window.RTCRtpTransceiver !== 'undefined') {
|
|
198
|
+ if (this.isSafari() && typeof window.RTCRtpTransceiver !== 'undefined') {
|
230
|
199
|
// eslint-disable-next-line max-len
|
231
|
200
|
// https://trac.webkit.org/changeset/236144/webkit/trunk/LayoutTests/webrtc/video-addLegacyTransceiver.html
|
232
|
201
|
// eslint-disable-next-line no-undef
|
|
@@ -252,7 +221,7 @@ export default class BrowserCapabilities extends BrowserDetection {
|
252
|
221
|
return !this.isVersionLessThan(REQUIRED_CHROME_VERSION);
|
253
|
222
|
}
|
254
|
223
|
|
255
|
|
- if (this.isFirefox() || this.isSafariWithWebrtc()) {
|
|
224
|
+ if (this.isFirefox() || this.isSafari()) {
|
256
|
225
|
return true;
|
257
|
226
|
}
|
258
|
227
|
|