@@ -21,7 +21,7 @@ let deprecationWarnings_ = true;
2121 */
2222export function extractVersion ( uastring , expr , pos ) {
2323 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 ) ;
2525}
2626
2727// Wraps the peerconnection event eventNameToWrap in a function
@@ -163,24 +163,27 @@ export function detectBrowser(window) {
163163
164164 if ( navigator . mozGetUserMedia ) { // Firefox.
165165 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 ) ) ;
168168 } else if ( navigator . webkitGetUserMedia ||
169169 ( window . isSecureContext === false && window . webkitRTCPeerConnection ) ) {
170170 // Chrome, Chromium, Webview, Opera.
171171 // Version matches Chrome/WebRTC version.
172172 // Chrome 74 removed webkitGetUserMedia on http as well so we need the
173173 // more complicated fallback to webkitRTCPeerConnection.
174174 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 ) ) ;
177177 } else if ( window . RTCPeerConnection &&
178178 navigator . userAgent . match ( / A p p l e W e b K i t \/ ( \d + ) \. / ) ) { // Safari.
179179 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 ) ) ;
182182 result . supportsUnifiedPlan = window . RTCRtpTransceiver &&
183183 '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 ) ;
184187 } else { // Default fallthrough: not supported.
185188 result . browser = 'Not a supported browser.' ;
186189 return result ;
0 commit comments