chore(launcher): order firefox channels by stability (beta before dev)

Mozilla's stability ordering is Release → Beta → Developer Edition →
Nightly — Developer Edition is built on the Beta channel with extra
experimental features enabled, so it's strictly less stable than Beta.
Reorder the firefox entries in known-browsers, darwin, and windows to
match.

For known-browsers this also flips auto-detection identity for ambiguous
binaries (Mozilla's Beta installer reuses the firefox binary that the
\\\S+b\\\S* regex catches in both channels): an auto-detected beta-format
build now reports as firefox:beta rather than firefox:dev, which matches
Mozilla's current channel naming. Explicit --browser firefox:dev still
works for actual Developer Edition installs.
This commit is contained in:
Matthew Schile
2026-05-22 11:03:25 -06:00
parent 80ce0cc803
commit fdc340bc7c
6 changed files with 72 additions and 72 deletions
+6 -6
View File
@@ -56,12 +56,6 @@ export const browsers: Detectors = {
bundleId: 'org.mozilla.firefox',
versionProperty: 'CFBundleShortVersionString',
},
dev: {
appName: 'Firefox Developer Edition.app',
executable: 'Contents/MacOS/firefox',
bundleId: 'org.mozilla.firefoxdeveloperedition',
versionProperty: 'CFBundleShortVersionString',
},
beta: {
// Mozilla's Beta channel installer reuses the stable Firefox.app bundle —
// the version string is what differentiates them at runtime.
@@ -70,6 +64,12 @@ export const browsers: Detectors = {
bundleId: 'org.mozilla.firefox',
versionProperty: 'CFBundleShortVersionString',
},
dev: {
appName: 'Firefox Developer Edition.app',
executable: 'Contents/MacOS/firefox',
bundleId: 'org.mozilla.firefoxdeveloperedition',
versionProperty: 'CFBundleShortVersionString',
},
nightly: {
appName: 'Firefox Nightly.app',
executable: 'Contents/MacOS/firefox',
+11 -11
View File
@@ -86,17 +86,6 @@ export const knownBrowsers: Browser[] = [
binary: 'firefox',
validator: firefoxValidatorFn,
},
{
name: 'firefox',
family: 'firefox',
channel: 'dev',
displayName: 'Firefox Developer Edition',
// Mozilla Firefox 73.0b12
versionRegex: /^Mozilla Firefox (\S+b\S*)$/m,
// ubuntu PPAs install it as firefox
binary: ['firefox-developer-edition', 'firefox'],
validator: firefoxValidatorFn,
},
{
name: 'firefox',
family: 'firefox',
@@ -109,6 +98,17 @@ export const knownBrowsers: Browser[] = [
binary: ['firefox-beta', 'firefox'],
validator: firefoxValidatorFn,
},
{
name: 'firefox',
family: 'firefox',
channel: 'dev',
displayName: 'Firefox Developer Edition',
// Mozilla Firefox 73.0b12
versionRegex: /^Mozilla Firefox (\S+b\S*)$/m,
// ubuntu PPAs install it as firefox
binary: ['firefox-developer-edition', 'firefox'],
validator: firefoxValidatorFn,
},
{
name: 'firefox',
family: 'firefox',
+1 -1
View File
@@ -109,10 +109,10 @@ const formPaths: WindowsBrowserPaths = {
},
firefox: {
stable: getFirefoxPaths('Mozilla Firefox'),
dev: getFirefoxPaths('Firefox Developer Edition'),
// Mozilla's Beta installer reuses the Mozilla Firefox path; the Firefox Beta folder
// here matches PPA-style or side-by-side beta installs that are kept separate.
beta: getFirefoxPaths('Firefox Beta'),
dev: getFirefoxPaths('Firefox Developer Edition'),
nightly: getFirefoxPaths('Firefox Nightly'),
},
edge: {
@@ -61,11 +61,11 @@ exports[`browsers > returns the expected list of browsers 1`] = `
},
{
"binary": [
"firefox-developer-edition",
"firefox-beta",
"firefox",
],
"channel": "dev",
"displayName": "Firefox Developer Edition",
"channel": "beta",
"displayName": "Firefox Beta",
"family": "firefox",
"name": "firefox",
"validator": [Function],
@@ -73,11 +73,11 @@ exports[`browsers > returns the expected list of browsers 1`] = `
},
{
"binary": [
"firefox-beta",
"firefox-developer-edition",
"firefox",
],
"channel": "beta",
"displayName": "Firefox Beta",
"channel": "dev",
"displayName": "Firefox Developer Edition",
"family": "firefox",
"name": "firefox",
"validator": [Function],
@@ -107,26 +107,6 @@ exports[`darwin browser detection > detects browsers as expected 1`] = `
"version": "someVersion",
"versionRegex": /\\^Mozilla Firefox \\(\\[\\^\\\\sab\\]\\+\\)\\$/m,
},
{
"binary": [
"firefox-developer-edition",
"firefox",
],
"channel": "dev",
"displayName": "Firefox Developer Edition",
"family": "firefox",
"findAppParams": {
"appName": "Firefox Developer Edition.app",
"bundleId": "org.mozilla.firefoxdeveloperedition",
"executable": "Contents/MacOS/firefox",
"versionProperty": "CFBundleShortVersionString",
},
"name": "firefox",
"path": "/Applications/Firefox Developer Edition.app/Contents/MacOS/firefox",
"validator": [Function],
"version": "someVersion",
"versionRegex": /\\^Mozilla Firefox \\(\\\\S\\+b\\\\S\\*\\)\\$/m,
},
{
"binary": [
"firefox-beta",
@@ -147,6 +127,26 @@ exports[`darwin browser detection > detects browsers as expected 1`] = `
"version": "someVersion",
"versionRegex": /\\^Mozilla Firefox \\(\\\\S\\+b\\\\S\\*\\)\\$/m,
},
{
"binary": [
"firefox-developer-edition",
"firefox",
],
"channel": "dev",
"displayName": "Firefox Developer Edition",
"family": "firefox",
"findAppParams": {
"appName": "Firefox Developer Edition.app",
"bundleId": "org.mozilla.firefoxdeveloperedition",
"executable": "Contents/MacOS/firefox",
"versionProperty": "CFBundleShortVersionString",
},
"name": "firefox",
"path": "/Applications/Firefox Developer Edition.app/Contents/MacOS/firefox",
"validator": [Function],
"version": "someVersion",
"versionRegex": /\\^Mozilla Firefox \\(\\\\S\\+b\\\\S\\*\\)\\$/m,
},
{
"binary": [
"firefox-nightly",
@@ -105,20 +105,6 @@ exports[`windows browser detection > detects Firefox local installs 1`] = `
"version": "100",
"versionRegex": /\\^Mozilla Firefox \\(\\[\\^\\\\sab\\]\\+\\)\\$/m,
},
{
"binary": [
"firefox-developer-edition",
"firefox",
],
"channel": "dev",
"displayName": "Firefox Developer Edition",
"family": "firefox",
"name": "firefox",
"path": "C:/Users/flotwig/AppData/Local/Firefox Developer Edition/firefox.exe",
"validator": [Function],
"version": "300",
"versionRegex": /\\^Mozilla Firefox \\(\\\\S\\+b\\\\S\\*\\)\\$/m,
},
{
"binary": [
"firefox-beta",
@@ -133,6 +119,20 @@ exports[`windows browser detection > detects Firefox local installs 1`] = `
"version": "400",
"versionRegex": /\\^Mozilla Firefox \\(\\\\S\\+b\\\\S\\*\\)\\$/m,
},
{
"binary": [
"firefox-developer-edition",
"firefox",
],
"channel": "dev",
"displayName": "Firefox Developer Edition",
"family": "firefox",
"name": "firefox",
"path": "C:/Users/flotwig/AppData/Local/Firefox Developer Edition/firefox.exe",
"validator": [Function],
"version": "300",
"versionRegex": /\\^Mozilla Firefox \\(\\\\S\\+b\\\\S\\*\\)\\$/m,
},
{
"binary": [
"firefox-nightly",
@@ -221,20 +221,6 @@ exports[`windows browser detection > detects browsers as expected 1`] = `
"version": "72",
"versionRegex": /\\^Mozilla Firefox \\(\\[\\^\\\\sab\\]\\+\\)\\$/m,
},
{
"binary": [
"firefox-developer-edition",
"firefox",
],
"channel": "dev",
"displayName": "Firefox Developer Edition",
"family": "firefox",
"name": "firefox",
"path": "C:/Program Files (x86)/Firefox Developer Edition/firefox.exe",
"validator": [Function],
"version": "73",
"versionRegex": /\\^Mozilla Firefox \\(\\\\S\\+b\\\\S\\*\\)\\$/m,
},
{
"binary": [
"firefox-beta",
@@ -249,6 +235,20 @@ exports[`windows browser detection > detects browsers as expected 1`] = `
"version": "152",
"versionRegex": /\\^Mozilla Firefox \\(\\\\S\\+b\\\\S\\*\\)\\$/m,
},
{
"binary": [
"firefox-developer-edition",
"firefox",
],
"channel": "dev",
"displayName": "Firefox Developer Edition",
"family": "firefox",
"name": "firefox",
"path": "C:/Program Files (x86)/Firefox Developer Edition/firefox.exe",
"validator": [Function],
"version": "73",
"versionRegex": /\\^Mozilla Firefox \\(\\\\S\\+b\\\\S\\*\\)\\$/m,
},
{
"binary": [
"firefox-nightly",