-
Notifications
You must be signed in to change notification settings - Fork 5
/
darwinChrome.ts
82 lines (77 loc) · 2.05 KB
/
darwinChrome.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/*---------------------------------------------------------
* Copyright (C) Microsoft Corporation. All rights reserved.
*--------------------------------------------------------*/
import { sort } from './util';
import { Quality } from './index';
import { DarwinFinderBase } from './darwinFinderBase';
/**
* Finds the Chrome browser on OS X.
*/
export class DarwinChromeBrowserFinder extends DarwinFinderBase {
/**
* @override
*/
protected wellKnownPaths = [
{
path: '/Applications/Google Chrome.app/Contents/MacOS/Google Chrome',
quality: Quality.Stable,
},
{
path: '/Applications/Google Chrome Canary.app/Contents/MacOS/Google Chrome Canary',
quality: Quality.Canary,
},
{
path: '/Applications/Google Chrome Beta.app/Contents/MacOS/Google Chrome Beta',
quality: Quality.Beta,
},
{
path: '/Applications/Google Chrome Dev.app/Contents/MacOS/Google Chrome Dev',
quality: Quality.Dev,
},
];
protected override async findAllInner() {
const suffixes = [
'/Contents/MacOS/Google Chrome Canary',
'/Contents/MacOS/Google Chrome Beta',
'/Contents/MacOS/Google Chrome Dev',
'/Contents/MacOS/Google Chrome',
];
const defaultPaths = [
'/Applications/Google Chrome.app',
'/Applications/Google Chrome Canary.app',
];
const installations = await this.findLaunchRegisteredApps(
'google chrome[A-Za-z() ]*.app',
defaultPaths,
suffixes,
);
return sort(
installations,
this.createPriorities([
{
name: 'Chrome.app',
weight: 0,
quality: Quality.Stable,
},
{
name: 'Chrome Canary.app',
weight: 1,
quality: Quality.Canary,
},
{
name: 'Chrome Beta.app',
weight: 2,
quality: Quality.Beta,
},
{
name: 'Chrome Dev.app',
weight: 3,
quality: Quality.Dev,
},
]),
);
}
public getPreferredPath() {
return this.env.CHROME_PATH;
}
}