|
| 1 | +const os = require('os'); |
| 2 | + |
1 | 3 | try { |
2 | 4 | // Karma configuration for a local run (the default) |
3 | 5 | const createKarmaConfig = require("./karma.base.conf"); |
|
45 | 47 | // We use the launchers themselves to figure out if the browser exists. It's a bit sneaky, but it works. |
46 | 48 | tryAddBrowser("ChromeHeadlessNoSandbox", ChromeHeadlessBrowser.prototype); |
47 | 49 | tryAddBrowser("ChromiumHeadlessIgnoreCert", ChromiumHeadlessBrowser.prototype); |
48 | | - if (!tryAddBrowser("FirefoxHeadless", FirefoxHeadlessBrowser.prototype)) { |
49 | | - tryAddBrowser("FirefoxDeveloperHeadless", FirefoxDeveloperHeadlessBrowser.prototype); |
| 50 | + |
| 51 | + if (os.platform() !== 'darwin') { |
| 52 | + if (!tryAddBrowser("FirefoxHeadless", FirefoxHeadlessBrowser.prototype)) { |
| 53 | + tryAddBrowser("FirefoxDeveloperHeadless", FirefoxDeveloperHeadlessBrowser.prototype); |
| 54 | + } |
| 55 | + } else { |
| 56 | + // https://bugzilla.mozilla.org/show_bug.cgi?id=1871366 |
| 57 | + // https://bugzilla.mozilla.org/show_bug.cgi?id=1871447 |
| 58 | + // It looks like some Entitlements issue with Firefox and macOS, additionally, it seems 'firefox-bin' is being removed which is what the karma firefox launcher uses by default |
| 59 | + tryAddBrowser("FirefoxHeadlessMac", FirefoxHeadlessBrowser.prototype); |
50 | 60 | } |
51 | 61 |
|
52 | 62 | // We need to receive an argument from the caller, but globals don't seem to work, so we use an environment variable. |
|
71 | 81 |
|
72 | 82 | // Ignore cert errors to allow our test cert to work (NEVER do this outside of testing) |
73 | 83 | flags: ["--allow-insecure-localhost", "--ignore-certificate-errors"] |
| 84 | + }, |
| 85 | + FirefoxHeadlessMac: { |
| 86 | + base: 'FirefoxHeadless', |
| 87 | + |
| 88 | + command: '/Applications/FireFox.app/Contents/MacOS/firefox' |
74 | 89 | } |
75 | 90 | }, |
76 | 91 | }); |
|
0 commit comments