Closed Bug 1653472 Opened 4 years ago Closed 4 years ago

about:logins loads with no logins due to `login.displayOrigin is null` from an all null/0/"" login

Categories

(Firefox :: about:logins, defect)

78 Branch
defect

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: aztecjoe, Unassigned)

Details

Attachments

(3 files)

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Firefox/78.0

Steps to reproduce:

  1. Start Firefox using Launcher icon
  2. Click Open Menu > Logins & Passwords
  3. In new browser tab open Yahoo Mail and select "Sign in"
  4. Click "username" field
  5. Select login from drop-down list -> Next
  6. Password is supplied -> Next

Actual results:

about:logins page is blank

Yahoo Mail is a saved (synced) bookmark and I can login with the saved (synced) logins.

Expected results:

about:logins page should display my saved logins.

Attached image screenshot.jpg (deleted) —
Comment on attachment 9164226 [details] screenshot.jpg Shows yahoo mail with saved login drop down and empty about:logins page

See initial details logged in closed (sorry) bug #1587737

Hello, can you please attach Browser Console logs? I suspect this is due to E10S being disabled (bug 1592562) which is no longer a supported configuration.

Component: Untriaged → about:logins
Flags: needinfo?(aztecjoe)
Attached file about:logins.log (deleted) —

about.logins.log attached as requested

Flags: needinfo?(aztecjoe)
Attachment #9164941 - Attachment mime type: text/x-log → text/plain

I'm guessing the problem is:

TypeError: login.displayOrigin is null AboutLoginsParent.jsm:199:15

Is that error something I can do anything about? Could the issue be something to do with the browser being installed as a snap?

Hello, can you please run the following code in the Browser Console (after enabling the console command line) and provide the output in the bug?

Services.logins.getAllLogins().filter(l => l.displayOrigin === null).map(l => l.origin)

Thanks

Flags: needinfo?(aztecjoe)

Hello, See attached screenshot of the browser console

Flags: needinfo?(aztecjoe)

Thanks. So somehow you got a login with a null origin which isn't valid and shouldn't be possible if it was added via Firefox (vs. an external program). Can you run the following code in the same Browser Console (WARNING: it will output the username and password of the login with a null origin) and then provide the output in the bug after censoring the password and/or username is they aren't dummy values?

console.log(JSON.stringify(Services.logins.getAllLogins().filter(l => l.displayOrigin === null), null, 2))

I'm mostly interested in identifying the source of this login which the httpRealm, formActionOrigin, username and password may tell you. Let me know if you have an idea where this login came from. The timestamps from the output will also give me an idea of how old this invalid login is.

Thanks again.

Flags: needinfo?(aztecjoe)

Hi I ran your code and produced the following:

[
  {
    "guid": null,
    "timeCreated": 0,
    "timeLastUsed": 0,
    "timePasswordChanged": 0,
    "timesUsed": 0,
    "username": "",
    "password": "",
    "displayOrigin": null,
    "origin": null,
    "hostname": null,
    "formActionOrigin": null,
    "formSubmitURL": null,
    "httpRealm": null,
    "usernameField": "",
    "passwordField": ""
  }
]

From my limited knowledge of Python there is a single dict item in the List with the ** "displayOrigin": null ** item. I reran your code without the filter and was able to see all my saved logins including clear text passwords (ouch). Anyway hope this helps.

Flags: needinfo?(aztecjoe)

(In reply to aztecjoe from comment #11)

Hi I ran your code and produced the following:

Wow, that's a very invalid login record… everything is null/empty/0. Unfortunately it gives no hints as to its origin so I think for now I will just help you remove it and then if we see other reports we can investigate more.

To remove that invalid login run the following code in the same Browser Console. You may want to make a temporary backup of your logins in advance by using the new export option.

Services.logins.removeLogin(Services.logins.getAllLogins().filter(l => l.displayOrigin === null)[0])

about:logins should load fine after that and we can close the bug. Thanks.

Flags: needinfo?(aztecjoe)
Summary: Saved logins not displayed in about:logins page even after sync(ing) → about:logins loads with no logins due to `login.displayOrigin is null` from an all null/0/"" login

Ran your script:
Services.logins.removeLogin(Services.logins.getAllLogins().filter(l => l.displayOrigin === null)[0])

Got message:
TypeError: login.displayOrigin is null

Refreshed Logins page and all my logins loaded successfully.

Thanks for your help. Much appreciated. Please close the issue.

Flags: needinfo?(aztecjoe)
Status: UNCONFIRMED → RESOLVED
Closed: 4 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: