Application Name Paranoia

Situation

Mozilla builds have 2 values to set application name, MOZ_APP_NAME and MOZ_APP_DISPLAYNAME.

  • MOZ_APP_NAME is a internal name. typically lower-cased string e.g. "firefox".
  • MOZ_APP_DISPLAYNAME is a user-visible name. tipically title-cased string e.g. "Firefox".
Use Cases
Firefox 2.0 Firefox 3.0 Nightly (1.9) Debian Iceweasel 2.0
MOZ_APP_NAME firefox firefox firefox firefox
MOZ_APP_DISPLAYNAME Firefox Firefox Minefield Iceweasel
-
nsXREAppData::name Firefox (hardcoded) Firefox (hardcoded) Firefox (hardcoded) Firefox (hardcoded)
nsXREAppData::vendor Mozilla (hardcoded) Mozilla (hardcoded) Mozilla (hardcoded) Mozilla (hardcoded)
Executable Name (unix) firefox-bin (hardcoded) firefox-bin (MOZ_APP_NAME) firefox-bin (MOZ_APP_NAME) firefox-bin (hardcoded)
UA String MOZ_APP_DISPLAYNAME MOZ_APP_DISPLAYNAME MOZ_APP_DISPLAYNAME MOZ_APP_DISPLAYNAME
Archive Package Name MOZ_APP_NAME MOZ_APP_NAME MOZ_APP_NAME iceweasel (hardcoded)
Installer Package Name MOZ_APP_NAME MOZ_APP_NAME MOZ_APP_NAME (iceweasel (hardcoded))
MacOSX (.app) Name MOZ_APP_DISPLAYNAME MOZ_APP_DISPLAYNAME MOZ_APP_DISPLAYNAME (MOZ_APP_DISPLAYNAME)
Windows DDE (installer) Firefox (hardcoded) Firefox (hardcoded) Firefox (hardcoded) (Firefox (hardcoded))
XRemote (-a APPNAME) firefox (nsXREAppData::name + ToLowerCases) firefox (nsXREAppData::name + ToLowerCases) firefox (nsXREAppData::name + ToLowerCases) firefox (nsXREAppData::name + ToLowerCases)
-
Default Profile (script) ~/.mozilla/firefox (hardcoded) ~/.mozilla/firefox (hardcoded) ~/.mozilla/firefox (hardcoded) ~/.mozilla/firefox (hardcoded)
Default Profile (Directory Service) ~/.mozilla/firefox (nsXREAppData::vender, nsXREAppData::name) ~/.mozilla/firefox (nsXREAppData::vender, nsXREAppData::name) ~/.mozilla/firefox (nsXREAppData::vender, nsXREAppData::name) ~/.mozilla/firefox (nsXREAppData::vender, nsXREAppData::name)

Proposal

Actually, the browser needs 3 names, that is, "firefox", "Minefield" and "Firefox" (See "Nightly" in the above table), respecitively MOZ_APP_NAME, MOZ_APP_DISPLAYNAME and nsXREAppData::name. So I'd like to suggest to add a new flag MOZ_APP_BRANDNAME as below.

Proposed Build Configs (Pink is what's new)
Nightly (proposal)
MOZ_APP_NAME firefox
MOZ_APP_DISPLAYNAME Firefox
MOZ_APP_BRANDNAME Minefield
-
nsXREAppData::name MOZ_APP_DISPLAYNAME
Executable Name MOZ_APP_NAME
UA String MOZ_APP_BRANDNAME
Archive Package Name MOZ_APP_NAME
Installer Package Name MOZ_APP_NAME
MacOSX (.app) Name MOZ_APP_DISPLAYNAME (Minefield -> Firefox)
Windows DDE (installer) MOZ_APP_DISPLAYNAME
XRemote (-a APPNAME) nsXREAppData::name + ToLowerCases


Proposal2, more backwards compatible (Pink is what's new)
Nightly (proposal2)
MOZ_APP_NAME firefox
MOZ_APP_DISPLAYNAME Minefield
MOZ_APP_TITLENAME Firefox
-
nsXREAppData::name MOZ_APP_TITLENAME
Executable Name MOZ_APP_NAME
UA String MOZ_APP_DISPLAYNAME
Archive Package Name MOZ_APP_NAME
Installer Package Name MOZ_APP_NAME
MacOSX (.app) Name MOZ_APP_TITLENAME (Minefield -> Firefox)
Windows DDE (installer) MOZ_APP_TITLENAME
XRemote (-a APPNAME) nsXREAppData::name + ToLowerCases


Proposal3, ToLowerCases Everywhere (Pink is what's new)
Nightly (proposal2)
MOZ_APP_NAME Firefox
MOZ_APP_DISPLAYNAME Minefield
-
nsXREAppData::name MOZ_APP_NAME
Executable Name MOZ_APP_NAME + ToLowerCases
UA String MOZ_APP_DISPLAYNAME
Archive Package Name MOZ_APP_NAME + ToLowerCases
Installer Package Name MOZ_APP_NAME + ToLowerCases
MacOSX (.app) Name MOZ_APP_NAME (Minefield -> Firefox)
Windows DDE (installer) MOZ_APP_NAME
XRemote (-a APPNAME) nsXREAppData::name + ToLowerCases