Firefox/Features/Installers

From MozillaWiki
Jump to: navigation, search

Summary

This page captures all workflow and other issues with the installer and channel switcher. We understand that there are tradeoffs and no solution will be perfect. The goal here is understand how it works today, the issues, where we want to end up long term and figure out what changes we can make for Firefox 5 to make sure we can ultimately provide the right experience for all our users.

Specifically we will detail..

  • The goals from a marketing perspective.
  • How things work as of today (5/13/11).
  • Use cases and behavior.
  • Analysis of the problems we run into.
  • Decisions for moving forward.

Marketing Goals

Ideally from a marketing perspective, we would like to be building a brand around all the channels and keep this consistent across products (Firefox & Mobile). This also applies to all platforms (Mac, Windows). The Nightly channel is less important here but will be included just for completion. Here's what we are aiming for.

Channel Icon App.name About box
Nightly Nightly icon Firefox Nightly Nightly branded about box
Aurora Aurora icon Firefox Aurora Aurora branded about box
Beta Beta icon Firefox Beta Beta branded about box
Release Firefox icon Firefox Firefox branded about box

Basically this is saying that we would like to use the app name, icon, about box, startup pages etc to convey a distinct brand to our users.

Current State

Today, this is what we see.

Branding

Mac:

Channel Icon App.name About box
Nightly Nightly icon Nightly Minefield branded about box Bug 649526 and Bug 648368
Aurora Aurora icon Aurora Minefield branded about box Bug 649526 and Bug 648368
Beta Firefox icon Firefox Firefox branded about box
Release Firefox icon Firefox Firefox branded about box

Windows:

Channel Icon App.name About box
Nightly Nightly icon Nightly Minefield branded about box Bug 649526 and Bug 648368
Aurora Aurora icon Aurora Minefield branded about box Bug 649526 and Bug 648368
Beta Firefox icon Mozilla Firefox Firefox branded about box
Release Firefox icon Mozilla Firefox Firefox branded about box

Installer/Updater Use Cases

Here is a list of all the use cases I could come up with.

  • 1. User installs and runs the Nightly build.
    • Nightly can install in the same directory as other releases (Aurora, Beta, Release). Users are prompted for regular updates.
    • There is no access to the channel switcher from the nightly build.
    • A previous version of Nightly in the same directory is replaced.
  • 2. A user downloads the Aurora build from the download page
    • The user may or may not be on the Aurora channel.
    • Aurora can be installed into the same directory as Nightly and (Beta or Release).
    • If there is a previous version of Aurora in that directory, it will be replaced.
    • Mac: By default the install goes into the Applications directory. It has a distinct Aurora icon with the app name Aurora.
    • Windows: By default the install goes into the Program Files directory. It has a distinct Aurora icon. The app name is Aurora. A short-cut is created on the desktop, start menu, taskbar (win 7+), quicklaunch (versions below win7). The name of the shortcuts on the desktop, start menu etc are all Aurora.
  • 3. A user downloads the Beta build from the download page.
    • The user may or may not already be on the Beta channel.
    • If the user is running a release version of Firefox.app in the same directory, it will be replaced.
    • Mac: By default the install goes into the Applications directory. It has the Firefox icon with the app name Firefox.
    • Windows: By default the install goes into the Program Files directory. It has the Firefox icon. The app name is Firefox. A short-cut is created on the desktop, start menu, taskbar (win 7+), quicklaunch (versions below win7). The name of the shortcuts on the desktop, start menu etc are all Firefox.
  • 4. A user downloads the Release build from the download page.
    • If the Release build is put in the same directory as ie: the 5.0b1 Beta build, it replaces it since the app name is the same. If it goes into the same directory as another version of Firefox ie: 4.0.1, it replaces it.
    • If I put the Release build in a different directory, I can have multiple versions of firefox.app.
    • Mac: By default the install goes into the Applications directory. It has the Firefox icon with the app name Firefox.
    • Windows: By default the install goes into the Program Files directory. It has the Firefox icon. The app name is Firefox. A short-cut is created on the desktop, start menu, taskbar (win 7+), quicklaunch (versions below win7). The name of the shortcuts on the desktop, start menu etc are all Firefox.
  • 5. A user downloads and runs the Release build and uses the channel switcher to change to the Aurora channel. They select "Apply and Update" and the update is downloaded. They select Apply and we shutdown the app and launch a version of Aurora.
    • We install on top of the Release build so it is replaced by Aurora in the same directory.
    • Mac: The Firefox logo will change to the Aurora logo but the name appearing in the text will show Firefox.
    • Windows: The Firefox logo will change to the Aurora logo but the shortcuts will all show Firefox as the name.
  • 6. A user downloads and runs the Beta build and uses the channel switcher to change to the Aurora channel. They select "Apply and Update" and the update is downloaded. They select Apply and we shutdown the app and launch a version of Aurora.
    • We install on top of the Beta build so it is replaced by Aurora in the same directory.
    • Mac: The Firefox logo will change to the Aurora logo but the name appearing in the text will show Firefox.
    • Windows: The Firefox logo will change to the Aurora logo but the shortcuts will all show Firefox as the name.
  • 7. A user downloads and runs the Aurora build and uses the channel switcher to change to the Beta channel. They select "Apply and Update" and the update is downloaded. They select Apply and we shutdown the app and launch a version of Beta.
    • We install on top of the Aurora build so it is replaced by Beta in the same directory.
    • Mac: The Firefox logo will change to the Firefox logo but the name appearing in the text will show Aurora.
    • Windows: The Firefox logo will change to the Firefox logo but the shortcuts will all show Aurora as the name.
  • 8. A user downloads and runs the Aurora build and uses the channel switcher to change to the Release channel. They select "Apply and Update" and the update is downloaded. They select Apply and we shutdown the app and launch a version of Release.
    • We install on top of the Aurora build so it is replaced by Release in the same directory.
    • The Release logo (Firefox) will appear but the name appearing in the text will show Aurora.
    • Mac: The Firefox logo will change to the Firefox logo but the name appearing in the text will show Aurora.
    • Windows: The Firefox logo will change to the Firefox logo but the shortcuts will all show Aurora as the name.

Problems/Issues

There are a number of issues here to discuss.

1. If a user installs Aurora from the download page, then uses the channel switcher to switch to Beta, on Mac the logo changes to the Firefox icon but the text will forever show Aurora. On Windows, we get the same behavior but all shortcuts will also show Aurora as the name although it's not.

  • There is a mac specific bug here where the logo doesn't always change but we don't exactly know how to fix it - Bug 654853
  • Based on today's implementation, if the user started out with a Beta or Release build and channel switched to Aurora, the icon would change but the text would say Firefox in both scenarios. Not as confusing as going from Aurora->Release but not great either.

2. There are a few options to solve the above problem...

  • a) All channels could be installed as Firefox. If the app name were Firefox.app for everything and we wouldn't end up in a situation where the text, short cuts or app name was out of sync with the thing we are running.
    • On Mac: If all channels were installed as Firefox.app then installing with normal dmg method to Applications will overwrite existing installations (Aurora, Beta, Release).
    • On Windows: If all channels were installed as Firefox.app then the standard install method will overwrite the existing install. This is not problematic since the advanced install allows the user to select the install directory. We would also need to provide an option to name the shortcuts during an advanced install so the shortcut doesn't overwrite existing shortcuts. From what I understand, this is not a trivial amount of work.
  • b) We could try and change the text to be consistent with the thing we are running ie: change from Aurora to Firefox.
    • On Mac: We run into 2 problems. We can't actually change the Aurora.app name to Firefox.app IF there is another Firefox.app in the Applications directory, which is probably likely. We would also NOT be able to change this for any secondary users since we do not have access to their doc configuration files.
    • On Windows: We run into a similar problem as the Mac. Also, if we were to change the shortcut names, if the desktop shortcut was manually changed by the user, it would be automatically re-sorted among the desktop shortcuts.
  • c) We could do nothing. This basically means that for the exact use case where users start out with the Aurora channel and channel switch, they end up in a very confusing situation. This would happen on both Windows and Mac but may be a very small set of users and largely an edge case. In the more likely scenario, they would start from Beta and Release, they would simply see everything as Firefox. On the other hand, we are promoting the channel changer as a feature for this release so we draw attention to this use case.

3. Currently we use the same app name and logo between Beta and Release. This decision was made for several reasons. Firstly, it minimizes release risks. We have an option NOT to rebuild the app. AV or other 3rd parties may look for "Firefox" versus "Firefox Beta" or the reversed. Having different app names can invalidate a lot of testing depending on the way 3rd party vendors interact with Firefox. Any changes between beta and release have the opportunity to cause regressions or interact differently with 3rd parties. Because going to release is an atomic operation, there is no time to really test these and changes have the potential to invalidate all the testing we have already done (as that testing was under different variables).

  • The consequences here are that we can brand the start-up page and the about box but the application name has to stay the same.
  • It's my understanding that we could keep the application name the same but have a branded logo for the channel. The problem here is that it would probably require a rebuild and we were looking to avoid that.

4. There is somewhat of an inconsistency by using the same app name for Beta and Release but not Aurora. Why would we do that? If we are going to use Firefox for Beta and Release, why not do it for Aurora and then we can largely get rid of the problem in point #1.

  • One of the issues that keep coming up easing the ability of side-by-side installs for web developers.
  • After speaking with Alex Limi, it's my understanding that this is a profile problem and not really related to app naming. It sounds to me like if we were to have separate app names for Aurora, Beta, Release or just call them all Firefox which results in the "install on top of scenario", this makes know difference to web developers. They still end up with the same difficulties in running side-by-side installs that they do today. They really want to get their data and have it available for all the app versions they are running.

5. Per the requests from Marketing and Product (see first table), they want the apps for the channels on Windows and Mac called..

  • Firefox Nightly, Firefox Aurora, Firefox Beta and Firefox.
  • Mac: It means adding "Firefox" in front of Nightly and Aurora. The Firefox Beta issue is connected to #3 where we have the same app name for Beta and Release.
  • Windows: It means removing the "Mozilla" in front of Firefox for Release and Beta and adding "Firefox" in front of Aurora and Nightly.
  • I talked to Gavin about this so I am going to paste the text from the bug were we asked for these changes - "Having unbranded builds include the word "Firefox" (even in just the filename) is a pretty significant change. It means that anyone generating custom builds will get something that references "Firefox" - we've tried hard to avoid that in the past. Our trademark policy doesn't allow the use of "Firefox" at all unless you get explicit permission"

Alternative proposal: Web Developer use case

(This section is by Alex Limi)

Overview

I think the channel switcher isn't accomplishing our most important goals, and has a number of problems, which Sheila has outlined above.

I'd like us to revisit what we're trying to do here. This doesn't have to be what ships with Firefox 5 or even 6, but this is the conceptually simplest and most useful for the class of people that I'm familiar with — Web Developers who want to test cutting-edge Firefox.

As a bonus, this avoids a lot of the problems we run into when trying to replace the application in-place, and makes it easy to test multiple builds.

I think the user that wants to suddenly switch his stable version of Firefox to Beta or Aurora doesn't really exist. I think the channel switcher has great value as a discovery mechanism, but that doesn't mean we should replace the Firefox they're currently using with something else from under their feet.

Instead, I want us to move to a model where the channels are self-contained and standalone, and use Firefox Sync to bring over the data if people want it to be available.

I'll try to keep it short, so let me know if something is unclear because of it. I've given this quite a bit of thought over the past months.

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.

Goals

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.

Summary

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.

Original proposal: Optimize for the majority of users

(This section is by Robert Strong)

Overview

As I understand the purpose from several discussions starting well over a year ago, we want to increase the number of "regular" users running Aurora and Beta builds where regular is more representative of the majority of Firefox users. If that is the primary goal then we should optimize for that case and the only time we shouldn't optimize for that case is when it prevents power users (developers, web developers, etc.) from being able to use Firefox.

Firefox has never supported side by side installations of release builds without the person performing the installation performing additional steps. For example, on Windows existing shortcuts for a release build will be replaced and on Mac the installation requires installing into a location where there isn't already a release build installation by dragging the Firefox icon to a location outside of the dmg's user interface. Even with the newly proposed naming this will still be the case.

For the web developer case I believe a better solution should be created that doesn't get in the way of us implementing features like channel changing. Sayer brought this up to me recently and we came up with an outline of how this could be accomplished that addresses the naming issue under discussion as well as the pre-existing naming issue when installing multiple releases.

Reasons for channel switching and using the same install name for release, beta, and aurora

  • Channel changing is much simpler. When channel switching there are less options to choose from, less steps to perform, and a single user interface for the user to interact with (About window vs. About window, web page, download manager, and installer) when compared to installing. Simplicity is a key point because of the audience we want to attract.

Windows installation:

  1. Open the Firefox About window
  2. Click Link
  3. Download installer and wait for download to complete
  4. Launch installer
  5. Click next
  6. Click next
  7. Click install and wait for install to complete.
  8. Click finish

Channel change:

  1. Open the Firefox About window
  2. Click change channel
  3. Select channel
  4. Click apply and wait for download to complete.
  5. Click restart

Note: even if the installer were simplified there is likely no way installing a side by side installation will ever be simpler than changing channels.

  • When channel changing the end result is a single installation instead of multiple installations (e.g. Firefox vs. Firefox, Firefox Beta, and Firefox Aurora). For some users I highly suspect they will end up with an unused installation of Firefox just sitting there taking up space.
  • When channel changing the end result is a single shortcut in the standard Windows' locations instead of multiple shortcuts in the standard Windows' locations. I highly suspect this will be confusing for some users.
  • Metrics has previously tried to find out why there is a drop off between users downloading and the first launch of Firefox and as of today we don't have a good understanding as to why there is this drop off. Channel changing would not be affected by this drop off where as having users download and install almost certainly will be.

Decisions