PasswordManagerPresenter observes PasswordStore for changes. If a change is signalled, it asks PasswordStore to send its current contents. Sending the contents can take noticeable time, especially in the presence of Gnome or KDE backends or slow hardware, in connection with many stored passwords.
Currently, PasswordManagerPresenter::OnLoginsChanged handles the change notification by starting the tasks for fetching stored passwords and immediately discarding the cached list of PasswordForms from the previous fetch.
Meanwhile, the views supplied by PasswordManagerPresenter (desktop and Android) continue to show the list of password entries based on the just discarded information. On desktop, at least, the view is still unable to show the password values until PasswordManagerPresenter obtains the new data from PasswordStore. It will also be unable to export the passwords once exporting is supported.
Hence I propose that PasswordManagerPresenter keeps the data stored in password_list_, password_duplicates_, password_exception_list_, and password_exception_duplicates_ untouched. PasswordManagerPresenter::PasswordListPopulater::OnGetPasswordStoreResult will keep overwriting them.
This means that between the start and completion of a fetch, PasswordManagerPresenter will still be able to provide the data which is outdated, but corresponds to what shows the UI and is more useful than nothing.
Comment 1 by vabr@chromium.org
, Mar 13 2018Status: Available (was: Assigned)