Firefox/Projects/TabCandy/Work
This is the top-level work page for the TabCandy team.
Who
- Aza Raskin, IRC: aza
- Ian Gilman, IRC: iangilman
- Michael Yoshitaka Erlewine, IRC: mitcho
- Raymond Lee, IRC: raymondlee
Important Pages
Design
Development
These instructions assume you're on a Mac; please update with info for other platforms as needed.
TabCandy is part of Firefox, so to build it you need to build Firefox. Use the basic instructions, with a few exceptions:
- Instead of the mozilla-central branch, use ssh://hg.mozilla.org/users/edward.lee_engineering.uiuc.edu/tabcandy-central/
- For the time being, we have an assert which causes Firefox to abort at startup. Make sure your .mozconfig file does not include ac_add_options --enable-debug
Once you've done a full build, for future builds you can just package up the various pieces TabCandy needs. One approach is to make a shell script like so:
make -s -j8 -C obj-ff-dbg/browser/locales && make -s -j8 -C obj-ff-dbg/browser/themes && make -s -j8 -C obj-ff-dbg/browser/base && make -s -j8 -C obj-ff-dbg/browser/app obj-ff-dbg/dist/MinefieldDebug.app/Contents/MacOS/firefox-bin -no-remote -P tcc
This builds just the pieces needed (assuming your build directy is "obj-ff-dbg") and then launches the app (with a profile named "tcc").
Or, for those who didn't make a debug build the script would look like:
make -s -j8 -C objdir-ff-release/browser/locales && make -s -j8 -C objdir-ff-rel
ease/browser/themes && make -s -j8 -C objdir-ff-release/browser/base && make -s -j8 -C obj-ff-dbg/browser/app
objdir-ff-release/dist/Minefield.app/Contents/MacOS/firefox-bin -no-remote -P tc
c
The html and javascript files are in browser/base/content/tabcandy. The images and CSS file are in browser/themes/pinstripe/browser/tabcandy (for Mac; other platforms coming soon).
Code Documentation
We're using Natural Docs. There's a shell script (only tested on Mac) that runs Natural Docs on our code and converts the comments in the JavaScript to HTML docs: makedocs.sh.
It'll generate a folder, naturaldocs-data, that'll be ignored by hg; you should ignore it too... it's just cache for the script.