Firefox3/UpgradePolicy

From MozillaWiki
Jump to: navigation, search

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)

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.
  • 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.