Support/Firefox Features/Clean up user profile: Difference between revisions

remove completed todo
mNo edit summary
(remove completed todo)
 
(39 intermediate revisions by 7 users not shown)
Line 1: Line 1:
{{FeatureStatus
{{FeatureStatus
|Feature name=Ability to clean up user profile
|Feature name=Ability to clean up user profile
|Feature stage=Planning
|Feature stage=Shipped
|Feature status=Complete
|Feature version=Firefox 13
|Feature health=OK
|Feature health=OK
|Feature status note=Startup crash detection landed in 13. Migrator with stub import landed (no add-ons) in 12.  UI to initiate from about:support landed in 13. UI from safe mode dialog landed in 15.
}}
}}
{{FeatureTeam
{{FeatureTeam
|Feature product manager=Asa Dotzler
|Feature product manager=Asa Dotzler
|Feature feature manager=Michael Verdi
|Feature feature manager=Matthew Noorenberghe
|Feature lead engineer=Matthew Noorenberghe
|Feature qa lead=Ioana Budnar
|Feature qa lead=Ioana Budnar
|Feature ux lead=Alex Limi
|Feature ux lead=Alex Limi
Line 24: Line 28:


Example 1:<br>
Example 1:<br>
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.
A user determines that "something" is wrong with Firefox, so they attempt to fix it by reinstalling. When the installer detects 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:<br>
Example 2:<br>
Line 32: Line 36:
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.
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.
|Feature dependencies=This will probably require the expertise of installer, migration, and Firefox front-end hackers, reviewers, and testers.
|Feature dependencies=This will probably require the expertise of installer, migration, and Firefox front-end hackers, reviewers, and testers.
* {{bug|700898}} - test harness for migration tools
|Feature requirements=*Easy to use
|Feature requirements=*Easy to use
*Easy to discover (Ideally the user shouldn't have to go to SUMO to figure this out)
*Easy to discover (Ideally the user shouldn't have to go to SUMO to figure this out)
Line 37: Line 42:
|Feature functional spec=There are three ways the Reset Firefox feature can be accessed:
|Feature functional spec=There are three ways the Reset Firefox feature can be accessed:
#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. Note that the reset process is not performed by the installer.
#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. Note that the reset process is not performed by the installer.
#A third consecutive startup crash will trigger Firefox to offer to start in safe mode or to reset Firefox. (do we have the safe mode part of this already or is that "new work" too?)
#A third consecutive startup crash will trigger Firefox to offer to start in safe mode or to reset Firefox.
#A user can start this process by clicking a "Reset Firefox" button on the Troubleshooting Information page.
#A user can start this process by clicking a "Reset Firefox" button on the Troubleshooting Information (about:support) page.


When the Reset Firefox command is invoked, Firefox will:
When the Reset Firefox command is invoked, Firefox will:
Line 47: Line 52:
#*History
#*History
#*Saved passwords
#*Saved passwords
#*Autofill form data
#*Autofill form/search data
#*Extensions and themes
#*Extensions and themes
#Reset toolbars and controls
#Reset toolbars and controls
#Reset all user preferences to Firefox defaults
#Reset all user preferences to Firefox defaults
#Disable all add-ons and switch to the default theme
#Disable all add-ons and switch to the default theme
#Then Firefox will restart using the new profile.
#Then Firefox will open using the new profile.
#(asa said: "do we want to load the add-ons manager on this restart so users can see they still have add-ons but those have been set to disabled? do we want to migrate their add-on prefs as well?)
#*''asa said: "do we want to load the add-ons manager on this restart so users can see they still have add-ons but those have been set to disabled? do we want to migrate their add-on prefs as well?
#** We don't know which add-on prefs are safe so I suggest not –– MattN''
|Feature ux design='''Preliminary Mockups:'''
|Feature ux design='''Preliminary Mockups:'''
*[http://people.mozilla.org/~mverdi/screenshots/reset-on-install-20110629-233708.jpg Reset Firefox on re-installation]
*[http://people.mozilla.org/~mverdi/screenshots/reset-on-install-20110629-233708.jpg Reset Firefox on re-installation]
*[http://people.mozilla.org/~mverdi/screenshots/reset-after-crash-20110629-233522.jpg Reset Firefox after a crash]
*[http://people.mozilla.org/~mverdi/screenshots/reset-after-crash-20110629-233522.jpg Reset Firefox after a crash]
*[http://people.mozilla.org/~mverdi/screenshots/reset-from-support-20110629-233613.jpg Reset Firefox from the Troubleshooting Information tab]
*[http://people.mozilla.org/~mverdi/screenshots/reset-from-support-20110629-233613.jpg Reset Firefox from the Troubleshooting Information tab]
|Feature implementation plan=Notes to keep in mind:
* There are two different kinds of startup crashes:
*# Caused by a user's profile
*# Caused by code that loads in all profiles - may still crash on a new profile
*#* I think that third-party code (except plugins) wouldn't get loaded in safe mode but if malware has infected Firefox install files then this will still be a problem.
*#** The installer repair workflow may fix some of this.
* The Reset Firefox process should run in <strike>safe mode to prevent crashes</strike> – runs in a new profile instead and pulls data
* Non goal: Another option is to add a button to restart in safe mode from about:sessionrestore when it had trouble restoring the session. {{bug|347680}}
* Safe mode should always be used before reset since reset causes data loss which may be unnecessary if safe mode would have solved the problem. As a result, I think that a button to restart in safe mode is a higher priority for about:support than going directly to a reset.
** The safe mode dialog could provide a method to reset the profile
** Less discoverable
* We need to make the distinction between the reset process and making permanent changes in safe mode  more clear as they appear to do the same thing in the UI. In reality, resetting involves more data loss since it's actually going to migrate only high priority data to a new profile.
* Use prefs in the profile to keep track of crashes for startup crash detection
* Add command-line argument(s) and/or environment variable(s) to launch the reset process
** This is needed so that the installer has a way of telling Firefox to repair after installation
* Migration to a new profile
** Use profile migrator infrastructure
*** Can only migrate from the default/selected profile since the Toolkit Profile Service is going to be replaced in {{bug|214675}}
* Migration of Places data (notes from rnewman)
** Queries refer directly to a Places ID. If you do a low-level migration to a new DB, make sure that you don't break those foreign pseudo-keys!
** Note that Sync relies on the GUIDs assigned to records. Those must persist.
** For now, the entire places.sqlite file and bookmarkbackups directory are copied to the new profile.
* Interaction with Sync (notes from rnewman; feel free to ask for clarification):
** {{todo|N.B.}} , clearing all user-set prefs will eliminate the user's Sync configuration, with unpleasant consequences. (Take a look in about:config for services.sync.*.) If you start a blank profile, it'll pull down all the old prefs from the Sync server. If you preserve timestamps, the new values won't necessarily be uploaded, unless you send Sync the correct observer notifications for change events.
** Note that Sync whitelists prefs to sync between devices (services.sync.prefs.*). You might want to think about that.
** Similar caveats apply to other data stored in Sync. Making this feature work correctly with Sync will need a little bit of thought.
* DONE - Make sure that UI isn't exposed in cases where we won't migrate due to ToolkitProfileService limitations
|Feature security review=sec-review happened on 2012-02-03. Completed 2012-03-05.
|Feature implementation notes=#{{Done| in Mozilla 13 - }}{{bug|294260}} – Safe Mode: Auto detect previous start-up failure and offer to start in safe mode
#{{Done| in Mozilla 12 - }}{{bug|273874}} – Create migrator with bookmark support and simple file copies ([https://bugzilla.mozilla.org/showdependencytree.cgi?id=273874&hide_resolved=1 dependencies])
#UI to reset profile
#* {{Done| in Mozilla 15 - }} {{bug|732303}} - startup crashes & safe mode dialog
#* {{Done| in Mozilla 13 - }} {{bug|717070}} - about:support with dialog
#* {{bug|750979}} - Installer Reset option - Add profile reset option to installer on re-install
# Other migrations
## {{Done| in Mozilla 12 - }}{{bug|721265}} - form history
## add-ons
# {{Done| in Mozilla 15 - }}{{bug|731047}} - Privacy – Functionality to clean up the old profile
# Make data migration more conservative
#* prefer data export + import rather than file copies
|Feature landing criteria=* Ensure migration of a profile that had sync setup still works - Done
}}
}}
{{FeatureInfo
{{FeatureInfo
Line 68: Line 115:
}}
}}
{{FeatureTeamStatus
{{FeatureTeamStatus
|Feature security status=sec-review-needed
|Feature engineering status=Startup crash detection landed in 12.  Migrator with stub import landed (no add-ons). Safe mode dialog UI landed in 15.
|Feature engineering notes=Migrators to just copy the relevant files has landed (except add-ons). Can iterate as necessary to better handle corrupt files.
|Feature security status=sec-review-complete
|Feature security notes=[[Security/Reviews/CleanUpUserProfile]]
|Feature qa status=Signed off
|Feature qa notes=[http://mzl.la/vv96eq Test Plan]
}}
}}
Confirmed users
933

edits