Mobile/Projects/Java-side replacement for nsILoginManager: Difference between revisions

Jump to navigation Jump to search
no edit summary
No edit summary
Line 3: Line 3:


== Goals ==
== Goals ==
''rnewman - could use some help filling this bit in''


== User stories & use cases ==
Main-thread I/O is evil. {{bug|853549}} aims to remove this from password manager by eliminating the use of signons.sqlite altogether, switching to a JSON representation.
* TBD if needed (ie: user-facing rather than just a backend change)


== UX design ==
Unfortunately, on Android we need simultaneous access to the passwords store from two processes, because our PasswordsProvider must exist independently of Gecko. We can't simultaneously read and write from a JSON file on disk, so we need to rework our implementation.
* TBD if needed
 
The goals of this project are:
 
* Unblock desktop from landing their perf improvements.
* Preserve the ability to sync and use the browser either at the same time or independently.
* Ideally: get some perf wins, too.
* Ideally: fix Master Password on Fennec.
 
== Possibilities ==
 
* Keep signons.sqlite on Android, change nothing. This is painful.
* Keep signons.sqlite, wrapped in PasswordsProvider. Implement a new nsILoginManagerStorage class that talks to the CP. This is a good first step.
* Then replace the PasswordsProvider implementation with something that doesn't use sqlite at all, and doesn't use NSS.
* Eliminate the use of NSS and moz's own sqlite library (do-able now that we're not sharing a database with Gecko), and move PasswordsProvider into the same process as the rest of Fennec.
* While we're doing this, adjust how we do Master Password -- preserve the key in-memory, 'lock' when you close the browser, or after a timeout.


== Justification ==
== Justification ==
* TBD if needed
 
We're kinda blocking desktop performance improvements, and this area has been ripe for fixing for a while. Add to this the possibility to lower memory and disk usage, and allow for syncing with MP enabled (and fix {{bug|939900}}, too), and this seems justifiable.


== References and other info ==
== References and other info ==
* TBD
 
* {{bug|853549}}
* {{bug|939900}}


== Quality criteria ==
== Quality criteria ==
* No user-perceptible performance degradation
* No user-perceptible performance degradation
* All goals are met
* All goals are met
canmove, Confirmed users
640

edits

Navigation menu