Posted on November 10th, 2008 by Ray Baxter
“I want to create a custom launcher for Firefox 2 and Firefox 3 with different profiles. Perhaps the real question is how do we create a custom version of a Mac application launcher, passing in the arguments we need?”
… without having to invoke it on the command line every time.
Mac OS X is assumed.
Firefoxen is an answer in code. It’s a script to automatically configure multiple installations of Firefox so that they open with different profiles. The script encapsulates what I needed to do to figure out how to solve this problem.
The steps are:
- Modify each application’s Info.plist CFBundleExecutable to point to a shell script inside the application’s bundle
- Create the appropriate shell script that runs ./firefox-bin -P profile-name in each bundle.
- Reregister the application’s bundle with launchservices so that the changes are picked up. Normally they are cached.
Only the last of these took too longer to figure out. You can trigger an update of launchservices by renaming the application bundle (Firefox.app => Firefox3.app), but if you rename it back it seems to revert to the previous db entry. (Cached by application name?)
Unfortunately, you can’t combine 1 and 2 either. I tried multiple permutations on changing the CFBundleExecutable parameter in each bundle from the default
firefox-bin to something like
firefox-bin -P versioned-profile but I couldn’t make it work with any amount of quoting.
Git it here: http://github.com/yesteray/firefoxen/tree
Here’s a screen grab:
2 Responses to “Running Multiple Versions of Firefox”
Leave a Reply
- Fix a Typo, Go to Rails
- Embedding Private and Shared Calendars – Google Apps for Your Domain
- Embedding Private and Shared Google Calendars
- Restyle Google Calendar
- Single Purpose Web Dev Browser
- Getting to know the Atom Publishing Protocol, Part 1: Create and edit Web resources with the Atom Publishing Protocol
- Getting to know the Atom Publishing Protocol, Part 2: Put the Atom Publishing Protocol (APP) to work
Date and Time
- Articles and Tutorials
- Bugs and Enhancements
- Calendar API FAQ
- Calendar Feeds
- Developer’s Guide
- Google Calendar Data API Group
- Reference Guide
- Batch Processing
- Client Libraries
- Common Elements
- Protocol Basics
- Protocol Reference
- Zend Documentation
- 30 Boxes
- CalendarHub – Web Calendars
- Google Calendar
- Online calendar publishing: Google Calendar
- Online calendar publishing: iCal
- Online calendar publishing: Outlook
- The Human Calendar
- Yahoo! Calendar