# Phoenix

This project is a redesign of the Mozilla browser component, similar to Galeon, K-Meleon and Chimera, but written using the XUL user interface language and designed to be cross-platform.

## Principles, Strategy, Tactics, and Concrete Design Decisions

1. CVS access is restricted to a very small team. We'll grow as needed, based on reputation and meritorious hacks.
2. This will be a single process for the browser only. Mail clients, web editors, etc, will be out-of-process. Hooks for other apps will be provided eventually, although that is not an immediate goal.
3. No profile manager UI on startup, although you can still select multiple profiles from the command line.
4. The default theme will be based on Classic, utilizing nsITheme to respects the system look and feel. Phoenix will not use the old and stale Communicator icons. Additional themes will be supported but will not be part of Phoenix.
5. The toolbar(s) will be configurable. That includes moving the location bar where the user wants it (not just splitting it so it takes a whole toolbar width).
6. The personal toolbar is the personal toolbar, not the whorebar.
7. All wallet-like functionality will be rewritten from scratch.
8. We will have a sidebar, but it may work differently from Mozilla's current one.
9. There won't be 239 access points for Search and for Bookmarks!
10. We may drop the throbber.
11. The interface will not be "geeky" nor will it have a "hacker-focus". Nor will it be "minimal". The idea is to design the best web browser for most people. (This doesn't mean every feature has to be enabled by default.)

## Notes

We won't be redesigning the editor widget(s) or other parts of Gecko as part of this project.

We plan to move this app to the MRE or the XRE but those projects are not ready for us so we have not started that work yet.

## FAQ

### Q1. Why?

Some of us want to have fun and build an excellent, user-friendly browser without the constraints (such as unnecessary features, compatibility, marketing requirements, month long discussions, etc.) that the current browser development requires.

Others of us are simply using this as a prototype to demonstrate possible optimizations to the trunk, such as stripping overlays or separating the application into separate processes instead of running one monolithic suite.

### Q2. Why only a small team?

The size of the team working on the trunk is one of the many reasons that development on the trunk is so slow. We feel that fewer dependencies (no marketing constraints), faster innovation (no UI committees), and more freedom to experiment (no backwards compatibility requirements) will lead to a better end product.

### Q3. Where do I file bugs on this?

We're still chopping with strong bursts and broad strokes. There's plenty that's obviously broken and we don't need bugs on that. If you find a bug (a feature request is not a bug) and you're sure that it's specific to Phoenix (not present in Mozilla) and you've read all of the existing Phoenix bugs well enough to know that it's not already reported then feel free report it on the Phoenix product in Bugzilla.

### Q4: Why are you guys wasting time making a FAQ?

Because we would waste tons of time answering these questions, if there were no FAQ.

### Q6: So to whom do I send patches?

We're not quite ready for this stage.

### Q7: How do I get involved?

By invitation. This is a meritocracy -- those who gain the respect of those in the group will be invited to join the group. See Q6.

### Q8: What about OS X?

Chimera is the top gecko-based browser for OS X. We do not intend to compete on that platform.

## Getting the Source

1. Go to the root of your mozilla tree.
2. `cvs up -Pd browser and toolkit`

## Building mozilla/browser

### UNIX, Windows (gmake), Mac (mach-o)

1. Ensure that MOZ_PHOENIX is set to 1 in your .mozconfig file. A good .mozconfig file is shown below:
   `export MOZ_PHOENIX=1
   mk_add_options MOZ_PHOENIX=1
   ac_add_options --enable-crypto
   ac_add_options --disable-tests
   ac_add_options --disable-debug
   ac_add_options --disable-mailnews
   ac_add_options --disable-composer
   ac_add_options --enable-optimize=-O2
   `
2. Run the mozbrowser executable that is left in dist/bin

## Mac (CodeWarrior)

This platform is currently not supported.