canmove, Confirmed users
432
edits
(Copy in template from /Firefox3/Feature_Plan_Template) |
(mid-edit checkpoint...) |
||
| Line 1: | Line 1: | ||
= Status = | = Status = | ||
;Feature tracking bug | ;Feature tracking bug | ||
* {{bug| | * {{bug|371000}} - Password Manager update metabug | ||
* | * {{bug|374723}} - Password Manager should be a JavaScript-based component | ||
'' Has a design review been completed?'' | '' Has a design review been completed?'' | ||
'' When do you anticipate the feature landing'' | '' When do you anticipate the feature landing'' | ||
Password Manager was an existing feature. The most significant update (the JS rewrite) landed for Alpha 5. Other modifications have been landing since then. | |||
Remaining work: notification bar, UI cleanup. | |||
''Any relevant status comments for the feature can be placed here.'' | ''Any relevant status comments for the feature can be placed here.'' | ||
| Line 34: | Line 38: | ||
== Exported APIs == | == Exported APIs == | ||
* Please provide a table of exported interfaces (APIs, ABIs, protocols, UI, etc.) | * Please provide a table of exported interfaces (APIs, ABIs, protocols, UI, etc.) | ||
[http://mxr.mozilla.org/seamonkey/source/toolkit/components/passwordmgr/public/nsILoginInfo.idl nsILoginInfo.idl] | |||
[http://mxr.mozilla.org/seamonkey/source/toolkit/components/passwordmgr/public/nsILoginManager.idl nsILoginManager.idl] | |||
[http://mxr.mozilla.org/seamonkey/source/toolkit/components/passwordmgr/public/nsILoginManagerStorage.idl nsILoginManangerStorage.idl] | |||
In user's profile: | |||
signons2.txt | |||
key3.db (dependancy) | |||
Current UI: | |||
In preferences, under "Security" tab, a "Passwords" section... | |||
* "Remember password for sites" checkbox | |||
* "Use a master password" checkbox | |||
* "Change master password" button [PSM] | |||
* "Show Passwords" button | |||
** Popup window with a list of stored logins | |||
* "Exceptions" button | |||
** Popup window with a list of sites for which logins should not be saved | |||
Prompts for HTTP/FTP authentication, changing passwords. | |||
Notification bar to allow saving a login (for a HTTP/FTP authentication, or submission of a form-based login). | |||
* Does it interoperate with a web service? How will it do so? | * Does it interoperate with a web service? How will it do so? | ||
No. A simple "store-my-passwords.com" could, by implementing a nsILoginManagerStorage module. More complex authentication schemes (eg OpenID, CardSpace) would require deeper changes to Mozilla. | |||
* Explain the significant file formats, names, syntax, and semantics. | * Explain the significant file formats, names, syntax, and semantics. | ||
signons2.txt: | |||
key3.db: | |||
* Are the externally visible interfaces documented clearly enough for a non-Mozilla developer to use them successfully? | * Are the externally visible interfaces documented clearly enough for a non-Mozilla developer to use them successfully? | ||
Yes. (IDL, devmo, straightforward) | |||
* Does it change any existing interfaces? | * Does it change any existing interfaces? | ||
Yes. It completely replaces all of the existing Password Mananger interfaces. They were poorly designed and not well documented. | |||
== Web Compatibility == | == Web Compatibility == | ||
* Does the feature had any impact on Web compatibility? | * Does the feature had any impact on Web compatibility? | ||
Yes. There is no standard for programatically locating logins in a document's form, so there is a certain degree of fuzzy logic involved in doing this. Password fields are easy to find, but the Password Manager must try to determine is a username field is present (and where it is), and how to handle multiple password fields. As there is no standard, login forms can come in many different flavors. | |||
The previous password manager usually handled the most common cases, but was not very robust. The new code is more robust and handles more cases, and has a test suite to exercise many variations. There is some risk that the change in algorithms could break a small number of sites, but overall more sites should work. | |||
== Performance == | == Performance == | ||
* How will the project contribute (positively or negatively) to "perceived performance"? | * How will the project contribute (positively or negatively) to "perceived performance"? | ||
There should not be any effect on performance-sensitive areas. | |||
* What are the performance goals of the project? How were they evaluated? What is the test or reference platform and baseline results? | * What are the performance goals of the project? How were they evaluated? What is the test or reference platform and baseline results? | ||
* Will it require large files/databases (for example, browsing history)? | * Will it require large files/databases (for example, browsing history)? | ||
| Line 47: | Line 95: | ||
* What failure modes or decision points are presented to the user? | * What failure modes or decision points are presented to the user? | ||
* Can its files be corrupted by failures? Does it clean up any locks/files after crashes? | * Can its files be corrupted by failures? Does it clean up any locks/files after crashes? | ||
The only file it writes to, signons2.txt, is edited using a nsISafeOutputStream. The original file is only updated (atomically) upon success. | |||
== l10n and a11y == | == l10n and a11y == | ||
* are any strings being changed or added? | * are any strings being changed or added? | ||
There may be some string changes as the UI is polished, but the major work to date has been accomplished with the existing strings. | |||
* are all UI elements available through accessibility technologies? | * are all UI elements available through accessibility technologies? | ||
Yes. (notification bar??) | |||
== Installation, Upgrade/Downgrade/Sidegrade, and platform requirements == | == Installation, Upgrade/Downgrade/Sidegrade, and platform requirements == | ||
* Does it equally support all Tier-1 platforms? | * Does it equally support all Tier-1 platforms? | ||
Yes. | |||
* Does is have a hardware requirement (or increase minimum requirements)? | * Does is have a hardware requirement (or increase minimum requirements)? | ||
No. | |||
* Does it require changes to the installer? | * Does it require changes to the installer? | ||
No. | |||
* Does it impact updates? | * Does it impact updates? | ||
No. | |||
*list the expected behavior of this feature/function when Firefox is upgraded to a newer minor release, downgraded by installation of an earlier revision, or re-installed (same version) | *list the expected behavior of this feature/function when Firefox is upgraded to a newer minor release, downgraded by installation of an earlier revision, or re-installed (same version) | ||
| Line 61: | Line 128: | ||
* Can the end user configure settings, via a UI or about:config? Hidden prefs? Environment variables? | * Can the end user configure settings, via a UI or about:config? Hidden prefs? Environment variables? | ||
* Are there build options for developers? [#ifdefs, ac_add_options, etc.] | * Are there build options for developers? [#ifdefs, ac_add_options, etc.] | ||
The signons.debug pref is available for logging extra debug information to the console, to help with runtime diagnosis of problems. | |||
* What ranges for the tunable are appropriate? How are they determined? | * What ranges for the tunable are appropriate? How are they determined? | ||
No tunables, all prefs are boolean on/off. | |||
* What are its on-going maintenance requirements (e.g. Web links, perishable data files)? | * What are its on-going maintenance requirements (e.g. Web links, perishable data files)? | ||
None. | |||
== Relationships to other projects - are there related projects in the community? == | == Relationships to other projects - are there related projects in the community? == | ||
* If so, what is the proposal's relationship to their work? Do you depend on others' work, or vice-versa? | * If so, what is the proposal's relationship to their work? Do you depend on others' work, or vice-versa? | ||
| Line 69: | Line 145: | ||
== Documentation == | == Documentation == | ||
* Do built-in Help pages need modified? | * Do built-in Help pages need modified? | ||
TBD? | |||
* Documentation for developer.mozilla.org? | * Documentation for developer.mozilla.org? | ||
Complete. | |||
(insert URLs here) | |||
== Other == | == Other == | ||