Firefox3/UpgradePolicy
This document tries to articulate the policy for how Firefox upgrades, downgrades, sidegrades, etc... should work.
Topics not covered in this document include:
- multi-OS user interactions
- multi-Firefox profile interactions
- OS upgrade interactions (e.g. upgrading from Win XP to Vista)
- multiple installations of Firefox on the same machine (different directory)
Notation:
- "Vanilla" below refers to the base Firefox distribution as delivered by Mozilla.
- Fx {x} is referring to Fx version x, e.g. Fx 1.5.0.9 or Fx 2.0.0.2
- Fx {x-1} is referring to the immediate previous version of Firefox (e.g. in downgrade scenarios)
- Fx {x+1} is referring to the immediate next version of Firefox (e.g. in upgrade scenarios)
Contents
Core Principles
- Firefox is shipped with "default settings", these should be preserved as much as possible assuming that the user has not customized them.
- Once a user has run Firefox, we should do our best to preserve default settings as well as personalized settings
- Any upgrades performed whether via running another "Firefox Setup" from the desktop or applying an AUS-delivered update should maintain default and personalized settings.
- Default and Personalized Settings include the following:
- Home Page(s) and First-Run Setting
- Selected Search Engine
- Search engine order
- Bookmarks, Bookmark toolbar settings, folders, etc...
- History
- Values in Firefox Preferences panel
- Profile-installed search engines
- Profile-installed extensions
- Toolbar customizations
- Default RSS feed handler
- {New Firefox 3 settings - e.g. microformat handlers, web site content handlers}
- The following may not be preserved across updates/downgrades/sidegrades:
- Theme selection
- Installed dictionaries
- AUS Update Channel Name
- Our Belief: A user's expectations about upgrading is that they expect to get the core of Firefox updated to version {x+1} and to get any new add-on functionality installed. Users do not expect to get their home page changed if they were running say Fx {x} Yahoo! Edition and then installed Fx {x+1} Google Edition on top of it. But, it's acceptable to have add-ons or search engines added to users' search engine list if included in the newer version.
Vanilla to Vanilla
Vanilla to Vanilla Updates/Upgrades
- AUS Updates
- AUS updates may update default settings
- AUS updates should always preserve the users' personal settings
- AUS Updates should apply the core Firefox updates
- Setup/Install Updates
- Users download Firefox Setup to their desktop and run it
- No changes to personal settings should occur, only core is updated
Vanilla to Vanilla Sidegrades
- Locale switch
- Say, a user has Fx {x} en-us and then installs Fx {x} ko on top of it by downloading it to the desktop and running it.
- The expectation is that they would keep their settings including the en-us based home page and get the new ko search engines merged into the list.
- Issue: If we add search engines with a locale switch, then we might have lots of duplicates, e.g. Google appearing twice or Yahoo! and Yahoo! Japan. Attempting a merge might be difficult and imperfect.
- Same Version Install
- If users already have Fx {x} and they believe that something is corrupted about their installation. They may download the same Fx {x} distro and install it.
- Expected Results: The core Fx is updated with the latest files but no personalized settings are changed or lost.
Vanilla to Vanilla Downgrades
If a user is running Fx {x} and decide to downgrade to Fx {x-1} or Fx {x-3}
- Downgrade via Setup
- Ideally: If installing into the same location, installer would warn that they already have a newer version and ask if they want to uninstall that first. If they agree, Fx {x} is uninstalled, then Fx {x-1} is installed. (This keeps their installed set of core files clean and consistent)
- Otherwise: ?
- Downgrade via Uninstall/reinstall
- They would uninstall Fx {x}, profile would be saved, then run Fx {x-1}, personal settings are restored since profiles are not removed. (Similar to the Downgrade via Setup Ideal case.)
Vanilla Uninstall
- If a user uninstalls Firefox, we retain their profile/personalized settings
- If they subsequently install a new Firefox edition, we recall that profile and the personal settings there.
Vanilla to Partner
After any of these scenarios, the expectation is that the user is running a partner-branded edition of Firefox, not vanilla Firefox. End result is AUS setting should be the partner's release channel.
- Sidegrade
- Vanilla Fx {x} is installed and user decides to install a Fx {x} partner distro. We should retain their personal settings. Any additional addons or search engines not included in the vanilla distro should get added in.
- Example 1: if a user installs vanilla Fx and then installs the Fx+Kodak Bundle, they should get the the Kodak companion installed for them.
- Example 2: If a user is running vanilla Fx {x} with ko locale and installs Fx {x} partner distro in the ja locale. The expectation is that search engines included in the ja partner distro not included with vanilla Fx would be added.
- Vanilla Fx {x} is installed and user decides to install a Fx {x} partner distro. We should retain their personal settings. Any additional addons or search engines not included in the vanilla distro should get added in.
- Upgrade
- The core Fx engine is updated, personal settings are retained, search engines/addons are added to the final result.
- Downgrade
- Ideally: warning is generated about downgrade. Uninstall of existing version is offered. If accepted, remove Fx {x}, install Fx {x-1}. Retain personal settings.
Partner to Vanilla
After any of these scenarios, the expectation is that the user is now running a vanilla Firefox. End result is AUS channel should be "release".
- Sidegrade
- Retain their personal settings. Any additional addons or search engines included in the vanilla distro should get added in.
- Upgrade
- The core Fx engine is updated, personal settings are retained, missing search engines/addons are added from vanilla Firefox to the final result.
- Downgrade
- Ideally: warning is generated about downgrade. Uninstall of existing version is offered. If accepted, remove Fx {x}, install Fx {x-1}. Retain personal settings.
Partner to Partner
After any of these scenarios, the expectation is that the user has switched their partner-branded edition of Firefox from one partner to another. End result is AUS setting should be the new partner's release channel.
- Sidegrade
- Retain their personal settings. Any additional addons or search engines included in the new partner distro should get added in.
- Upgrade
- The core Fx engine is updated, personal settings are retained, missing search engines/addons are added from new partner distro to the final result.
- Downgrade
- Ideally: warning is generated about downgrade. Uninstall of existing version is offered. If accepted, remove Fx {x} old partner distro, install Fx {x-1} new partner distro. Retain personal settings.