Currently, the Mac app launcher always targets the XUL runtime contained in the application with Bundle ID "org.mozilla.firefox". There is a command-line option (-p) to the foxlauncher which allows the use of a different application, but this doesn't give a great launch experience (no menubar, no Dock icon, etc)
Developers and advanced users would benefit from the ability to target an Aurora or Nightly build of Firefox, so they could use a new feature or API. It would additionally be useful to target a different build on a per-application basis.
A clean implementation of this would be to place something inside the bundle that contains a "preferred web runtime" field. This could potentially have a UI to allow users to pick a different runtime.
A short-term fix would be to do something like this:
When the launcher starts, check whether a FIREFOX_RUNTIME_ID file exists.
If it does, load it as a string, and append it to "org.mozilla.".
If an application with that Bundle identifier is found (through NSWorkspace), use that application as the runner; if not, fallback on "org.mozilla.firefox"
We would then advise developers to "Show Package Contents" and create a new file with this name, and place the string "aurora" or "nightly" into it. Alternatively we could make the file part of our standard .app distribution but make it empty.
This is relevant on Windows too. We should allow apps to target a specific version of Firefox, and hopefully we can do this in a cross-platform manner (eg. putting the FIREFOX_RUNTIME_ID file in XUL/?).
marking as P2, not a blocker but do want ASAP.
A Pivotal Tracker story has been created for this Bug: http://www.pivotaltracker.com/story/show/24808731
This is still relevant as we move from the extension-based implementation to the m-c-based implementation: Developers will likely want to test their natively-installed apps against multiple versions of Firefox.
On Windows, the version of Firefox that will be loaded is the one whose directory is specified in the natively-installed webapp's "application.ini":
Adding Dan and Myk to weigh in about Mac.
I've already implemented and checked in a process for doing this. It is intended as a developer tool though, and must be changed on a per-app basis.
As Dan mentions in comment 5, he has implemented a mechanism for doing this on Mac. And as Tim mentions in comment 4, there's another mechanism for doing it in Windows. So this seems fixed. If there are aspects of those mechanisms that are suboptimal, let's open new, targeted bugs on them.
(In reply to Dan Walkowski from comment #5)
> I've already implemented and checked in a process for doing this. It is
> intended as a developer tool though, and must be changed on a per-app basis.
Dan, do you mind informing me of this process so I can show app developers how to use it for testing?
How would I go about verifying this fix? Would this involve changing the application.ini file for a web application to change what firefox version to use?
Jason: you would edit the Info.plist file for an app, adding a FirefoxBinary key whose value is the ID of an installed Firefox version, f.e. (to specify a debug nightly build):
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
I don't actually know what the valid values of that string are, however.
Would an end-user ever do what you've described? Sounds like they wouldn't do that, but would like to confirm (trying to figure out if this is worth verifying or not).
No, a user will never do that. It's a developer- and tester-facing feature.