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

remove completed todo
No edit summary
(remove completed todo)
 
(23 intermediate revisions by 4 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=Development
|Feature stage=Shipped
|Feature status=In progress
|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=Sheila Mooney
|Feature feature manager=Matthew Noorenberghe
|Feature lead engineer=Matt 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 40: 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 50: 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]
Line 65: Line 68:
*# Caused by a user's profile
*# Caused by a user's profile
*# Caused by code that loads in all profiles - may still crash on a new profile
*# Caused by code that loads in all profiles - may still crash on a new profile
*#* I think that third-party code wouldn't get loaded in safe mode but if malware has infected Firefox install files then this will still be a problem.
*#* 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 Reset Firefox process should run in safe mode to prevent crashes
*#** The installer repair workflow may fix some of this.
* Another option is to add a button to restart in safe mode from about:sessionrestore when it had trouble restoring the session.
* 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.
* 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
** The safe mode dialog could provide a method to reset the profile
* We need to make the distinction between the reset process and making changes in safe mode permanent 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.
** Less discoverable
* Use prefs in the profile to keep track of crashes
* 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.
* Add command-line arguments and/or environment variables to launch the reset process
* 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
* Migration to a new profile
** Use profile migrator infrastructure
** 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)
* 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!
** 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.
** 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):
* Interaction with Sync (notes from rnewman; feel free to ask for clarification):
** 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.
** {{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.
** 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.
** Similar caveats apply to other data stored in Sync. Making this feature work correctly with Sync will need a little bit of thought.
|Feature implementation notes=#{{In progress}} {{bug|294260}} - Safe Mode: Auto detect previous start-up failure and offer to start in safe mode
* DONE - Make sure that UI isn't exposed in cases where we won't migrate due to ToolkitProfileService limitations
#{{Done| - }}{{bug|273874}} - Create migrator with bookmark support and simple file copies ([https://bugzilla.mozilla.org/showdependencytree.cgi?id=273874&hide_resolved=1 dependencies])
|Feature security review=sec-review happened on 2012-02-03. Completed 2012-03-05.
#{{In progress}} {{bug|717070}} - UI to reset profile
|Feature implementation notes=#{{Done| in Mozilla 13 - }}{{bug|294260}} Safe Mode: Auto detect previous start-up failure and offer to start in safe mode
#* startup crashes
#{{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])
#* about:support
#UI to reset profile
# Installer Reset option
#* {{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  
# Other migrations  
## form history
## {{Done| in Mozilla 12 - }}{{bug|721265}} - form history
## add-ons
## add-ons
## preferences - {{bug|715348}}
# {{Done| in Mozilla 15 - }}{{bug|731047}} - Privacy Functionality to clean up the old profile
# Privacy - Functionality to support removing the old profile
# Make data migration more conservative
# Make data migration more conservative
#* prefer data export + import rather than file copies
#* 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 105: Line 115:
}}
}}
{{FeatureTeamStatus
{{FeatureTeamStatus
|Feature engineering status=Startup crash detection nearly complete.  Migrator + stub import in review process
|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=Plan is to stub migrators to just copy the relevant files initially and then iteratively improve them to better handle corrupt files.
|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-needed
|Feature security status=sec-review-complete
|Feature qa status=In progress
|Feature security notes=[[Security/Reviews/CleanUpUserProfile]]
|Feature qa status=Signed off
|Feature qa notes=[http://mzl.la/vv96eq Test Plan]
|Feature qa notes=[http://mzl.la/vv96eq Test Plan]
}}
}}
Confirmed users
933

edits