@@ -22,7 +22,7 @@ import { getUbuntuVersionSync } from './ubuntuVersion';
22
22
import { getFromENV } from './utils' ;
23
23
24
24
export type BrowserName = 'chromium' | 'webkit' | 'firefox' ;
25
- export type BrowserPlatform = 'win32' | 'win64' | 'mac10.13' | 'mac10.14' | 'mac10.15' | 'mac11.0 ' | 'mac11.0-arm64' | 'mac11.1' | 'mac11.1 -arm64'| 'ubuntu18.04' | 'ubuntu20.04' ;
25
+ export type BrowserPlatform = 'win32' | 'win64' | 'mac10.13' | 'mac10.14' | 'mac10.15' | 'mac11' | 'mac11-arm64' | 'ubuntu18.04' | 'ubuntu20.04' ;
26
26
export type BrowserDescriptor = {
27
27
name : BrowserName ,
28
28
revision : string ,
@@ -32,15 +32,19 @@ export type BrowserDescriptor = {
32
32
export const hostPlatform = ( ( ) : BrowserPlatform => {
33
33
const platform = os . platform ( ) ;
34
34
if ( platform === 'darwin' ) {
35
- const macVersion = execSync ( 'sw_vers -productVersion' , {
35
+ const [ major , minor ] = execSync ( 'sw_vers -productVersion' , {
36
36
stdio : [ 'ignore' , 'pipe' , 'ignore' ]
37
- } ) . toString ( 'utf8' ) . trim ( ) . split ( '.' ) . slice ( 0 , 2 ) . join ( '.' ) ;
37
+ } ) . toString ( 'utf8' ) . trim ( ) . split ( '.' ) . map ( x => parseInt ( x , 10 ) ) ;
38
38
let arm64 = false ;
39
- if ( ! macVersion . startsWith ( '10.' ) ) {
39
+ // BigSur is the first version that might run on Apple Silicon.
40
+ if ( major >= 11 ) {
40
41
arm64 = execSync ( 'sysctl -in hw.optional.arm64' , {
41
42
stdio : [ 'ignore' , 'pipe' , 'ignore' ]
42
43
} ) . toString ( ) . trim ( ) === '1' ;
43
44
}
45
+ // We do not want to differentiate between minor big sur releases
46
+ // since they don't change core APIs so far.
47
+ const macVersion = major === 10 ? `${ major } .${ minor } ` : `${ major } ` ;
44
48
const archSuffix = arm64 ? '-arm64' : '' ;
45
49
return `mac${ macVersion } ${ archSuffix } ` as BrowserPlatform ;
46
50
}
@@ -92,10 +96,8 @@ export function executablePath(browserPath: string, browser: BrowserDescriptor):
92
96
[ 'mac10.13' , [ 'chrome-mac' , 'Chromium.app' , 'Contents' , 'MacOS' , 'Chromium' ] ] ,
93
97
[ 'mac10.14' , [ 'chrome-mac' , 'Chromium.app' , 'Contents' , 'MacOS' , 'Chromium' ] ] ,
94
98
[ 'mac10.15' , [ 'chrome-mac' , 'Chromium.app' , 'Contents' , 'MacOS' , 'Chromium' ] ] ,
95
- [ 'mac11.0' , [ 'chrome-mac' , 'Chromium.app' , 'Contents' , 'MacOS' , 'Chromium' ] ] ,
96
- [ 'mac11.0-arm64' , [ 'chrome-mac' , 'Chromium.app' , 'Contents' , 'MacOS' , 'Chromium' ] ] ,
97
- [ 'mac11.1' , [ 'chrome-mac' , 'Chromium.app' , 'Contents' , 'MacOS' , 'Chromium' ] ] ,
98
- [ 'mac11.1-arm64' , [ 'chrome-mac' , 'Chromium.app' , 'Contents' , 'MacOS' , 'Chromium' ] ] ,
99
+ [ 'mac11' , [ 'chrome-mac' , 'Chromium.app' , 'Contents' , 'MacOS' , 'Chromium' ] ] ,
100
+ [ 'mac11-arm64' , [ 'chrome-mac' , 'Chromium.app' , 'Contents' , 'MacOS' , 'Chromium' ] ] ,
99
101
[ 'win32' , [ 'chrome-win' , 'chrome.exe' ] ] ,
100
102
[ 'win64' , [ 'chrome-win' , 'chrome.exe' ] ] ,
101
103
] ) . get ( hostPlatform ) ;
@@ -108,10 +110,8 @@ export function executablePath(browserPath: string, browser: BrowserDescriptor):
108
110
[ 'mac10.13' , [ 'firefox' , 'Nightly.app' , 'Contents' , 'MacOS' , 'firefox' ] ] ,
109
111
[ 'mac10.14' , [ 'firefox' , 'Nightly.app' , 'Contents' , 'MacOS' , 'firefox' ] ] ,
110
112
[ 'mac10.15' , [ 'firefox' , 'Nightly.app' , 'Contents' , 'MacOS' , 'firefox' ] ] ,
111
- [ 'mac11.0' , [ 'firefox' , 'Nightly.app' , 'Contents' , 'MacOS' , 'firefox' ] ] ,
112
- [ 'mac11.0-arm64' , [ 'firefox' , 'Nightly.app' , 'Contents' , 'MacOS' , 'firefox' ] ] ,
113
- [ 'mac11.1' , [ 'firefox' , 'Nightly.app' , 'Contents' , 'MacOS' , 'firefox' ] ] ,
114
- [ 'mac11.1-arm64' , [ 'firefox' , 'Nightly.app' , 'Contents' , 'MacOS' , 'firefox' ] ] ,
113
+ [ 'mac11' , [ 'firefox' , 'Nightly.app' , 'Contents' , 'MacOS' , 'firefox' ] ] ,
114
+ [ 'mac11-arm64' , [ 'firefox' , 'Nightly.app' , 'Contents' , 'MacOS' , 'firefox' ] ] ,
115
115
[ 'win32' , [ 'firefox' , 'firefox.exe' ] ] ,
116
116
[ 'win64' , [ 'firefox' , 'firefox.exe' ] ] ,
117
117
] ) . get ( hostPlatform ) ;
@@ -124,10 +124,8 @@ export function executablePath(browserPath: string, browser: BrowserDescriptor):
124
124
[ 'mac10.13' , undefined ] ,
125
125
[ 'mac10.14' , [ 'pw_run.sh' ] ] ,
126
126
[ 'mac10.15' , [ 'pw_run.sh' ] ] ,
127
- [ 'mac11.0' , [ 'pw_run.sh' ] ] ,
128
- [ 'mac11.0-arm64' , [ 'pw_run.sh' ] ] ,
129
- [ 'mac11.1' , [ 'pw_run.sh' ] ] ,
130
- [ 'mac11.1-arm64' , [ 'pw_run.sh' ] ] ,
127
+ [ 'mac11' , [ 'pw_run.sh' ] ] ,
128
+ [ 'mac11-arm64' , [ 'pw_run.sh' ] ] ,
131
129
[ 'win32' , [ 'Playwright.exe' ] ] ,
132
130
[ 'win64' , [ 'Playwright.exe' ] ] ,
133
131
] ) . get ( hostPlatform ) ;
0 commit comments