Closed Bug 1563769 Opened 5 years ago Closed 5 years ago

about:logins is still slow to display all the login count is greater than 100

Categories

(Firefox :: about:logins, defect, P1)

defect

Tracking

()

RESOLVED FIXED
Firefox 70
Tracking Status
firefox70 --- fixed

People

(Reporter: jaws, Assigned: jaws)

References

Details

(Whiteboard: [passwords:management] [skyline] )

Attachments

(4 files, 1 obsolete file)

Bug 1560447 added a new API that does batch decryption of all logins which improved the performance of loading about:logins but there is still 25ms spent in the parent process converting nsILoginInfo objects to plain vanilla JS objects.

https://perfht.ml/2XMqaMM

getAllLoginsAsync can have an extra option that returns the stored logins as plain objects so they don't need to be deconstructed later.

Flags: qe-verify-

With returnPlainObjects implemented, https://perfht.ml/2XNAnsc

title = title.replace(/^http(s)?:\/\//, "")

should be inside the catch block since .host should never contain the scheme. That may give you another speedup.

Moving the regular expressions outside of the function would also mean they would only be compiled once.

With display chunking of the login-list: https://perfht.ml/2XIvlgH

The last large chunk of time was spent doing layout of the 500 login-list-items. Moving this to a chunked layout where we do 50 items at a time takes longer overall but gives faster perceived performance by showing logins in the list in approximately 100ms versus waiting roughly 500ms when appending during with one fragment.

Attachment #9076275 - Attachment description: Bug 1563769 - Display the count of logins earlier and chunk the layout to 50 logins at a time. r?MattN → Bug 1563769 - Display the count of logins earlier and chunk the layout of loginsin the list so we can display ASAP. r?MattN

Each custom element had its own shadowRoot, duplicated instances of the style sheet, and localization root. This patch also moves to a single 'click' event listener on the list instead of one for each item.

Attachment #9076275 - Attachment description: Bug 1563769 - Display the count of logins earlier and chunk the layout of loginsin the list so we can display ASAP. r?MattN → Bug 1563769 - Display the count of logins earlier and chunk the layout of logins in the list so we can display ASAP. r?MattN
Attachment #9076272 - Attachment is obsolete: true
Attachment #9076275 - Attachment description: Bug 1563769 - Display the count of logins earlier and chunk the layout of logins in the list so we can display ASAP. r?MattN → Bug 1563769 - Display the count of logins earlier and chunk the layout of loginsin the list so we can display ASAP. r?MattN
Pushed by jwein@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/eac2cad57171
Append the children of the login-list using a fragment and prevent rendering the login-list twice during initial load. r=MattN
https://hg.mozilla.org/integration/autoland/rev/d9f8d63390ab
Compile the regular expressions for computing the login title only once. r=MattN
https://hg.mozilla.org/integration/autoland/rev/f8043220eb7e
Display the count of logins earlier and chunk the layout of loginsin the list so we can display ASAP. r=MattN
https://hg.mozilla.org/integration/autoland/rev/5f1acc97b6cc
Create login-list-item as a DOM fragment instead of a custom element to reduce overhead. r=MattN
Whiteboard: [passwords:management] [skyline]
Regressions: 1565113
Component: Password Manager → about:logins
Product: Toolkit → Firefox
Target Milestone: mozilla70 → Firefox 70
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: