Features/Desktop/Ability to run concurrent channels

From MozillaWiki
Jump to: navigation, search
Please use "Edit with form" above to edit this page.


Ability to run concurrent channels
Stage Design
Status In progress
Release target `
Health OK
Status note Channel switcher removed, identifying participants & priority next.


Product manager Chris Lee
Directly Responsible Individual Alex Limi
Lead engineer `
Security lead `
Privacy lead `
Localization lead `
Accessibility lead `
QA lead Juan Becerra
UX lead Alex Limi
Product marketing lead `
Operations lead `
Additional members `

Open issues/risks


Stage 1: Definition

1. Feature overview

We want us to move to a model where the channels are self-contained and standalone instead of using a channel switcher model, and use Firefox Sync to bring over the data if those users want it to be available across channels.

This feature falls primarily in the Experience category (from the "Discover, Experience, and Connect" vision statement.)

2. Users & use cases

Web Developer use case

Here are the defining characteristics of pretty much every web developer that I have contact with in my other open source projects and consultancy companies:

  1. They rarely want to give up the stability of their setup. They need a functional Firefox with a stable, predictable Firebug. It's their bread and butter, and they need this to always work.
  2. They don't know about the profile manager (I'm always surprised about this, but it makes sense, since it's invoked via command line, and you have to know it exists in the first place to look for it)
  3. They'd like to test in multiple versions of Firefox at once, especially once we hit beta, so they know what to expect from the sites they are working on, so their clients won't come back and yell at them 1 month later when the new version is out.
  4. Having their history, bookmarks and settings available in the Beta, Nightly or whatever version they are testing is a bonus, but not super important to them.

How I'd like us to solve this:

  1. Make the solution conceptually simple, and make it easy to identify what browser you're actually using.
  2. Make running the various versions in parallel dead simple, and make this the default behavior.
  3. Use Sync to transfer data and settings, and don't try to reuse the same profile across different channels.

How it would work for them, step by step

I'm a web developer. I have the latest stable version of Firefox installed. I have two paths to discovering the Aurora/Beta channels:

  1. By downloading it from the Firefox web site
  2. By following a link or selecting an option in the About dialog

...both of which would give me a downloadable installer instead of trying to switch the release version I have with something else.

Let's say I decide to test the Beta:

  • I get the downloadable installer, branded "Firefox Beta" everywhere. No version numbers anywhere.
  • I install the thing, and end up with an entry called "Firefox Beta" in my start menu.
  • When I click the Firefox Beta entry, it starts in parallel with my existing, running Firefox. It has a blank profile that is associated only with the Beta.
  • The first page I see is "Congratulations, and thanks for helping us test Firefox Beta. Here's how to set up Sync if you want your data & settings to exist in all of your Firefox setups."
  • I set up Sync, have my data & settings available, and I'm able to quickly switch between Firefox and the upcoming Firefox+1 (= Beta) to see if the project I'm currently working on is working the way it should in the upcoming version
    • I can even run an experimental new Firebug in the Beta, and have my stable Firebug in the Release version.
  • When e.g. Firefox 4 release upgrades to Firefox 5, my Firefox Beta will automatically be what will become Firefox 6.
  • I can keep these start menu entries around essentially forever, and always be able to test the latest on each channel, with a minimum of confusion, since the application name always reflects what I'm looking at.


If someone was testing all of our variants, their start menu on windows would then look something like this:

  • Firefox
  • Firefox Beta
  • Firefox Aurora
  • Firefox Nightly

These entries would have the respective logos of the various channels. It would appear in a similar way in the Mac OS X dock. They would update on their respective channels, in a mostly silent manner.

These would:

  1. All be separate binaries, with their own directories named accordingly.
  2. Never mention the version name in the start menu or app name.
  3. Have separate process names, like firefox-beta.exe, firefox-aurora.exe, etc.
  4. All of them would run in separate profiles by default.

I believe this is conceptually simpler for the end user, easier to work with for us, and solves the testing use cases in a better way than what replacing the binary from under you will accomplish.

3. Dependencies


4. Requirements




Stage 2: Design

5. Functional specification


6. User experience design


Stage 3: Planning

7. Implementation plan


8. Reviews

Security review


Privacy review


Localization review




Quality Assurance review


Operations review


Stage 4: Development

9. Implementation

bug 895030 for Nightly

Stage 5: Release

10. Landing criteria


Feature details

Priority P2
Rank 3
Theme / Goal Experience
Roadmap Firefox Desktop
Secondary roadmap `
Feature list Desktop
Project `
Engineering team Desktop front-end

Team status notes

  status notes
Products ` `
Engineering ` `
Security ` `
Privacy ` `
Localization ` `
Accessibility ` `
Quality assurance ` `
User experience ` `
Product marketing ` `
Operations ` `