@@ -21,7 +21,7 @@ let deprecationWarnings_ = true;
21
21
*/
22
22
export function extractVersion ( uastring , expr , pos ) {
23
23
const match = uastring . match ( expr ) ;
24
- return match && match . length >= pos && parseInt ( match [ pos ] , 10 ) ;
24
+ return match && match . length >= pos && parseFloat ( match [ pos ] , 10 ) ;
25
25
}
26
26
27
27
// Wraps the peerconnection event eventNameToWrap in a function
@@ -163,24 +163,27 @@ export function detectBrowser(window) {
163
163
164
164
if ( navigator . mozGetUserMedia ) { // Firefox.
165
165
result . browser = 'firefox' ;
166
- result . version = extractVersion ( navigator . userAgent ,
167
- / F i r e f o x \/ ( \d + ) \. / , 1 ) ;
166
+ result . version = parseInt ( extractVersion ( navigator . userAgent ,
167
+ / F i r e f o x \/ ( \d + ) \. / , 1 ) ) ;
168
168
} else if ( navigator . webkitGetUserMedia ||
169
169
( window . isSecureContext === false && window . webkitRTCPeerConnection ) ) {
170
170
// Chrome, Chromium, Webview, Opera.
171
171
// Version matches Chrome/WebRTC version.
172
172
// Chrome 74 removed webkitGetUserMedia on http as well so we need the
173
173
// more complicated fallback to webkitRTCPeerConnection.
174
174
result . browser = 'chrome' ;
175
- result . version = extractVersion ( navigator . userAgent ,
176
- / C h r o m ( e | i u m ) \/ ( \d + ) \. / , 2 ) ;
175
+ result . version = parseInt ( extractVersion ( navigator . userAgent ,
176
+ / C h r o m ( e | i u m ) \/ ( \d + ) \. / , 2 ) ) ;
177
177
} else if ( window . RTCPeerConnection &&
178
178
navigator . userAgent . match ( / A p p l e W e b K i t \/ ( \d + ) \. / ) ) { // Safari.
179
179
result . browser = 'safari' ;
180
- result . version = extractVersion ( navigator . userAgent ,
181
- / A p p l e W e b K i t \/ ( \d + ) \. / , 1 ) ;
180
+ result . version = parseInt ( extractVersion ( navigator . userAgent ,
181
+ / A p p l e W e b K i t \/ ( \d + ) \. / , 1 ) ) ;
182
182
result . supportsUnifiedPlan = window . RTCRtpTransceiver &&
183
183
'currentDirection' in window . RTCRtpTransceiver . prototype ;
184
+ // Only for internal usage.
185
+ result . _safariVersion = extractVersion ( navigator . userAgent ,
186
+ / V e r s i o n \/ ( \d + ( \. ? \d + ) ) / , 1 ) ;
184
187
} else { // Default fallthrough: not supported.
185
188
result . browser = 'Not a supported browser.' ;
186
189
return result ;
0 commit comments