Support/Firefox Features/Clean up user profile

From MozillaWiki
Jump to navigation Jump to search
Draft-template-image.png THIS PAGE IS A WORKING DRAFT Pencil-emoji U270F-gray.png
The page may be difficult to navigate, and some information on its subject might be incomplete and/or evolving rapidly.
If you have any questions or ideas, please add them as a new topic on the discussion page.

Status

Reset Firefox
Stage Stage II
Version TBD
Health Ok
Status note Needs a design review so it can move to planning

{{#set: |feature name = Reset Firefox |stage = Stage II |version = TBD |health = Ok |status = Needs a design review so it can move to planning }}

Team

Product Manager
Feature Manager Michael Verdi
Lead Developer Dave Townsend
Security
Privacy
Localization
Accessibility
Quality assurance George Carstoiu (irc: GeorgeCarstoiu)
User experience Alex Limi

{{#set: | product manager = | feature manager = Michael Verdi | lead developer = Dave Townsend | security = | privacy = | localization = | accessibility = | qa = George Carstoiu (irc: GeorgeCarstoiu) | ux = Alex Limi }}

  • Feel free to list other team members below the table here.

Open issues/risks

  • Since OS X and Linux don't have installers, we don't have a way to trigger this process for them upon re-installation. The other use-cases are still valid though.

Stage I: Definition

1. Feature overview

The Reset Firefox feature will provide a way for users to automatically fix Firefox by creating a new profile and migrating their data (bookmarks, history, passwords, etc).

There are a number of serious Firefox issues (not starting, crashing, unexpected behavior, lost toolbars and more) that can be solved by creating a new profile. The problem is, creating a new profile (which is an incredibly difficult task) is not enough. A user will almost always want to also migrate their data to the new profile which is another difficult task. See these two articles (1, 2) for complete steps.

Many users try to reinstall Firefox to solve these issues but reinstallation doesn't do anything to the profile folder. Providing this option upon reinstallation and, in addition, offering this after consecutive start-up crashes and on the Troubleshooting Information page will make this feature both intuitive and discoverable.

  • There is a plan to remove the Profile Manager UI (Bug 214675) and add an external Profile Manager application (Bug 539524). This solution is fine from a testing point of view but for the user who is just trying to fix Firefox this will complicate an already difficult process. Our feature would make the removal of the profile manager ui irrelevant from the user's point of view.

2. Users & use cases

The goal is to take a difficult and confusing repair process that most people never discover (and often need one-on-one help to complete when they do find it) and turn it into an easy and discoverable operation that can be done by most users without guidance.

Example 1:
A user determines that "something" is wrong with Firefox, so they attempt to fix it by reinstalling. When the installer detectes that the same version of Firefox already exists on the computer it will offer the option to repair Firefox by resetting it to its default state. That intent can be passed on to Firefox and the reset process will be started the next time Firefox starts.

Example 2:
After a third consecutive start-up crash, Firefox will offer to either start in safe mode so diagnosis can be done or to reset Firefox to it's default state.

Example 3:
A SUMO article or helper can direct a user to a simple method for repairing Firefox by accessing the Troubleshooting Information page and clicking the Reset Firefox button.

3. Dependencies

Defining giver dependencies and taker dependencies so you know who owes to whom what and when.

4. Requirements

  • Easy to use
  • Easy to discover (Ideally the user shouldn't have to go to SUMO to figure this out)

Non-goals

  • A Clean Install is another repair process that is not covered by this feature.

Stage II: Design

5. Functional specification

There are three ways the Reset Firefox feature can be accessed:

  1. During installation we can detect or be told by the user that this is a repair attempt. That information will then be passed on to Firefox which will start the Reset Firefox process.
  2. A third consecutive startup crash will trigger Firefox to offer to start in safe mode or to reset Firefox.
  3. A user can start this process by clicking a "Reset Firefox" button on the Troubleshooting Information page.

When the Reset Firefox command is invoked, Firefox will:

  1. Confirm with the user what actions are about to be taken
  2. Create a new user profile
  3. Migrate user data
    • Bookmarks
    • History
    • Saved passwords
    • Autofill form data
    • Extensions and themes
  4. Reset toolbars and controls
  5. Reset all user preferences to Firefox defaults
  6. Then Firefox will restart using the new profile and with all extensions and themes disabled.

6. User experience design

Preliminary Mockups:

Stage III: Planning

7. Implementation plan

Summary of the high-level approach to be taken

8. Security

Are there security risks; has the design been reviewed; what needs to be changed before we proceed?

9. Privacy

Are there privacy risks; has the design been reviewed; what needs to be changed before we proceed?

Stage IV: Development

10. Implementation

Links to bugs -- we don't try to track the detailed progress here, that should happen in bugzilla.

Stage V: Release

11. Landing criteria

Final checklist for everything the feature team feels should happen before a feature can land -- could be a scalability model, security code review, etc. Will eventually develop a standard table for this.

Feature details

Priority "unprioritized", "P1", "P2", "P3"
Roadmap whichever Roadmap this Feature is from, or set by Prod Mgr
Secondary Roadmap {{{secondary roadmap}}}
Feature List "Desktop", "Mobile", "Platform", "Services", or "Other"
Engineering Team Engineering team who will be doing primary development.

{{#set: |priority = "unprioritized", "P1", "P2", "P3" |roadmap = whichever Roadmap this Feature is from, or set by Prod Mgr |secondary roadmap = {{{secondary roadmap}}} |feature list = "Desktop", "Mobile", "Platform", "Services", or "Other" |team = Engineering team who will be doing primary development. }}

Team status notes

Teams are welcome to use these fields however they see fit. Both fields can be used in queries to generate lists on other wiki pages. If you would like help or have questions, please contact Deb.

  status notes
Products
Engineering
Security
Privacy
Localization
Accessibility
Quality assurance
User experience

{{#set: | product-status = | product-note = | security-status = | security-note = | privacy-status = | privacy-note = | localization-status = | localization-note = | accessibility-status = | accessibility-note = | qa-status = | qa-note = | ux-status = | ux-note = }}

Revision history

date author change
2011/06/16 Michael Verdi Updating to new feature page format.
2011/06/29 Michael Verdi Adding functional specifications and linking to UX mockups