Firefox3/UpgradePolicy

From MozillaWiki
Jump to navigation Jump to 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.