Closed Bug 1550122 Opened 7 months ago Closed 3 months ago

Handle errors while saving

Categories

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

enhancement

Tracking

()

VERIFIED FIXED
Firefox 70
Tracking Status
firefox70 --- verified

People

(Reporter: jaws, Assigned: lnorton, NeedInfo)

References

(Regressed 1 open bug)

Details

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

Attachments

(3 files)

We should surface an error to the user if their newly created login or edits could not be saved.

Flags: qe-verify+
Whiteboard: [passwords:management] [skyline]
Assignee: nobody → jaws
Status: NEW → ASSIGNED
Assignee: jaws → nobody
Status: ASSIGNED → NEW
Assignee: nobody → lnorton
Status: NEW → ASSIGNED
Whiteboard: [passwords:management] [skyline] → [passwords:management] [skyline] [strings]
Pushed by mozilla@noorenberghe.ca:
https://hg.mozilla.org/integration/autoland/rev/8f134018ed03
Show errors in aboutLogins UI. r=MattN,fluent-reviewers,ntim,flod
Pushed by mozilla@noorenberghe.ca:
https://hg.mozilla.org/integration/autoland/rev/80bb50e715a3
Show errors in aboutLogins UI. r=MattN,fluent-reviewers,ntim,flod

Backed out changeset 80bb50e715a3 (Bug 1550122) for browser_loginItemErrors.js failures

Push with failures: https://treeherder.mozilla.org/#/jobs?repo=autoland&group_state=expanded&fromchange=80bb50e715a30879981baac975767e26f42a7a87&tochange=ce8d92d5a45b48b2d191503dcc73dc844bd6986a&selectedJob=264175162

Backout link: https://hg.mozilla.org/integration/autoland/rev/ce8d92d5a45b48b2d191503dcc73dc844bd6986a

Failure log: https://treeherder.mozilla.org/logviewer.html#/jobs?job_id=264175162&repo=autoland&lineNumber=5561

[task 2019-08-30T03:44:04.909Z] 03:44:04 INFO - TEST-START | browser/components/aboutlogins/tests/browser/browser_loginItemErrors.js
[task 2019-08-30T03:44:04.918Z] 03:44:04 INFO - GECKO(2786) | ++DOCSHELL 0x7faed678a800 == 4 [pid = 2938] [id = {d78a3a40-312b-4e40-bd20-6a5804f520df}]
[task 2019-08-30T03:44:04.918Z] 03:44:04 INFO - GECKO(2786) | ++DOMWINDOW == 13 (0x7faed67fc7a0) [pid = 2938] [serial = 22] [outer = (nil)]
[task 2019-08-30T03:44:04.918Z] 03:44:04 INFO - GECKO(2786) | ++DOMWINDOW == 14 (0x7faed697ec00) [pid = 2938] [serial = 23] [outer = 0x7faed67fc7a0]
[task 2019-08-30T03:44:04.960Z] 03:44:04 INFO - GECKO(2786) | ++DOMWINDOW == 15 (0x7faed7718000) [pid = 2938] [serial = 24] [outer = 0x7faed67fc7a0]
[task 2019-08-30T03:44:05.345Z] 03:44:05 INFO - GECKO(2786) | console.warn: LoginHelper: "Couldn't parse origin for" "" ({})
[task 2019-08-30T03:44:05.368Z] 03:44:05 INFO - GECKO(2786) | JavaScript error: resource://gre/modules/LoginManager.jsm, line 316: Error: This login already exists.
[task 2019-08-30T03:44:05.384Z] 03:44:05 INFO - GECKO(2786) | [Parent 2786, Main Thread] WARNING: 'aRv.Failed()', file /builds/worker/workspace/build/src/dom/ipc/StructuredCloneData.cpp, line 120
[task 2019-08-30T03:44:05.404Z] 03:44:05 INFO - GECKO(2786) | console.warn: LoginHelper: "Couldn't parse origin for" "" ({})
[task 2019-08-30T03:44:06.409Z] 03:44:06 INFO - GECKO(2786) | --DOMWINDOW == 4 (0x7f36ffeebf20) [pid = 2970] [serial = 1] [outer = (nil)] [url = about:blank]
[task 2019-08-30T03:44:06.886Z] 03:44:06 INFO - GECKO(2786) | --DOCSHELL 0x7efdd10b3000 == 0 [pid = 3013] [id = {ff991ef7-bc77-4399-8292-a3e490a9d99a}] [url = about:blank]
[task 2019-08-30T03:44:08.472Z] 03:44:08 INFO - GECKO(2786) | --DOMWINDOW == 14 (0x7faed69e1000) [pid = 2938] [serial = 20] [outer = (nil)] [url = about:blank]
[task 2019-08-30T03:44:08.472Z] 03:44:08 INFO - GECKO(2786) | --DOMWINDOW == 13 (0x7faedba0b400) [pid = 2938] [serial = 3] [outer = (nil)] [url = about:logins]
[task 2019-08-30T03:44:08.473Z] 03:44:08 INFO - GECKO(2786) | --DOMWINDOW == 12 (0x7faed7e5e400) [pid = 2938] [serial = 12] [outer = (nil)] [url = about:logins]
[task 2019-08-30T03:44:08.474Z] 03:44:08 INFO - GECKO(2786) | --DOMWINDOW == 11 (0x7faed82ad000) [pid = 2938] [serial = 9] [outer = (nil)] [url = about:logins]
[task 2019-08-30T03:44:08.474Z] 03:44:08 INFO - GECKO(2786) | --DOMWINDOW == 10 (0x7faedbac5400) [pid = 2938] [serial = 6] [outer = (nil)] [url = about:logins]
[task 2019-08-30T03:44:08.474Z] 03:44:08 INFO - GECKO(2786) | --DOMWINDOW == 9 (0x7faed67a5c00) [pid = 2938] [serial = 17] [outer = (nil)] [url = about:blank]
[task 2019-08-30T03:44:08.614Z] 03:44:08 INFO - GECKO(2786) | --DOMWINDOW == 8 (0x7faed67452e0) [pid = 2938] [serial = 19] [outer = (nil)] [url = about:logins]
[task 2019-08-30T03:44:08.615Z] 03:44:08 INFO - GECKO(2786) | --DOMWINDOW == 7 (0x7faed7c99f20) [pid = 2938] [serial = 16] [outer = (nil)] [url = about:logins]
[task 2019-08-30T03:44:09.358Z] 03:44:09 INFO - GECKO(2786) | --DOCSHELL 0x7f057a5b3000 == 0 [pid = 3034] [id = {5db61703-7a2c-41e2-ad3c-fbba12e21887}] [url = about:blank]
[task 2019-08-30T03:44:10.241Z] 03:44:10 INFO - GECKO(2786) | --DOCSHELL 0x7f46c21b3000 == 0 [pid = 3076] [id = {0f8376ff-30fe-4ab5-9840-f6200910854f}] [url = https://example.com/android?utm_creative=Footer_Menu]
[task 2019-08-30T03:44:10.319Z] 03:44:10 INFO - GECKO(2786) | --DOCSHELL 0x7f08f353b000 == 1 [pid = 2910] [id = {1275671e-d3b5-4c28-b9d0-12bbed1a7c48}] [url = about:blank]
[task 2019-08-30T03:44:10.335Z] 03:44:10 INFO - GECKO(2786) | --DOCSHELL 0x7f08f3537800 == 0 [pid = 2910] [id = {578dd644-4c07-4c70-840b-104b94b8b537}] [url = https://example.com/apple?utm_creative=Footer_Menu]
[task 2019-08-30T03:44:10.379Z] 03:44:10 INFO - GECKO(2786) | --DOMWINDOW == 6 (0x7f08f39156a0) [pid = 2910] [serial = 6] [outer = (nil)] [url = about:blank]
[task 2019-08-30T03:44:10.381Z] 03:44:10 INFO - GECKO(2786) | --DOMWINDOW == 5 (0x7f08f39152e0) [pid = 2910] [serial = 3] [outer = (nil)] [url = https://example.com/apple?utm_creative=Footer_Menu]
[task 2019-08-30T03:44:10.381Z] 03:44:10 INFO - GECKO(2786) | --DOMWINDOW == 4 (0x7f08f3914f20) [pid = 2910] [serial = 1] [outer = (nil)] [url = about:blank]
[task 2019-08-30T03:44:10.421Z] 03:44:10 INFO - GECKO(2786) | --DOMWINDOW == 3 (0x7f3700d04000) [pid = 2970] [serial = 4] [outer = (nil)] [url = about:blank]
[task 2019-08-30T03:44:10.423Z] 03:44:10 INFO - GECKO(2786) | --DOMWINDOW == 2 (0x7f3700d0b400) [pid = 2970] [serial = 2] [outer = (nil)] [url = about:blank]
[task 2019-08-30T03:44:10.501Z] 03:44:10 INFO - TEST-INFO | started process screentopng
[task 2019-08-30T03:44:10.940Z] 03:44:10 INFO - TEST-INFO | screentopng: exit 0
[task 2019-08-30T03:44:10.942Z] 03:44:10 INFO - Buffered messages logged at 03:44:04
[task 2019-08-30T03:44:10.943Z] 03:44:10 INFO - Entering test bound setup
[task 2019-08-30T03:44:10.945Z] 03:44:10 INFO - Buffered messages logged at 03:44:05
[task 2019-08-30T03:44:10.946Z] 03:44:10 INFO - Leaving test bound setup
[task 2019-08-30T03:44:10.948Z] 03:44:10 INFO - Entering test bound test_showLoginItemErrors
[task 2019-08-30T03:44:10.949Z] 03:44:10 INFO - TEST-PASS | browser/components/aboutlogins/tests/browser/browser_loginItemErrors.js | An error message should not be displayed after adding a new login. - true == true -
[task 2019-08-30T03:44:10.950Z] 03:44:10 INFO - Console message: [JavaScript Error: "Error: This login already exists." {file: "resource://gre/modules/LoginManager.jsm" line: 316}]
[task 2019-08-30T03:44:10.952Z] 03:44:10 INFO - Console message: [JavaScript Warning: "Sending message that cannot be cloned. Are you trying to send an XPCOM object?" {file: "resource:///modules/AboutLoginsParent.jsm" line: 480}]
[task 2019-08-30T03:44:10.953Z] 03:44:10 INFO - Console message: [JavaScript Error: "Unknown Collection "main/fxmonitor-breaches"" {file: "resource://services-settings/RemoteSettingsClient.jsm" line: 172}]
[task 2019-08-30T03:44:10.954Z] 03:44:10 INFO - UnknownCollectionError@resource://services-settings/RemoteSettingsClient.jsm:172:5
[task 2019-08-30T03:44:10.955Z] 03:44:10 INFO - sync@resource://services-settings/RemoteSettingsClient.jsm:379:13
[task 2019-08-30T03:44:10.956Z] 03:44:10 INFO - asyncget@resource://services-settings/RemoteSettingsClient.jsm:325:22
[task 2019-08-30T03:44:10.957Z] 03:44:10 INFO - async
getPotentialBreachesByLoginGUID@resource:///modules/LoginBreaches.jsm:59:74
[task 2019-08-30T03:44:10.960Z] 03:44:10 INFO - receiveMessage@resource:///modules/AboutLoginsParent.jsm:419:61
[task 2019-08-30T03:44:10.962Z] 03:44:10 INFO - asyncreceiveMessage@resource:///modules/BrowserGlue.jsm:670:30
[task 2019-08-30T03:44:10.963Z] 03:44:10 INFO - MessageListener.receiveMessage
init@resource:///modules/BrowserGlue.jsm:685:19
[task 2019-08-30T03:44:10.964Z] 03:44:10 INFO - BG__beforeUIStartup@resource:///modules/BrowserGlue.jsm:1207:15
[task 2019-08-30T03:44:10.965Z] 03:44:10 INFO - BG_observe@resource:///modules/BrowserGlue.jsm:857:14
[task 2019-08-30T03:44:10.966Z] 03:44:10 INFO -
[task 2019-08-30T03:44:10.969Z] 03:44:10 INFO - Buffered messages finished
[task 2019-08-30T03:44:10.971Z] 03:44:10 INFO - TEST-UNEXPECTED-FAIL | browser/components/aboutlogins/tests/browser/browser_loginItemErrors.js | Uncaught exception - Waiting for error message to be shown after attempting to create a duplicate login. - timed out after 50 tries.
[task 2019-08-30T03:44:10.972Z] 03:44:10 INFO - Leaving test bound test_showLoginItemErrors
[task 2019-08-30T03:44:10.973Z] 03:44:10 INFO - GECKO(2786) | [Child 2938, Main Thread] WARNING: SendNotifyIMEFocus got rejected.: file /builds/worker/workspace/build/src/widget/PuppetWidget.cpp, line 788
[task 2019-08-30T03:44:10.974Z] 03:44:10 INFO - GECKO(2786) | JavaScript error: resource://testing-common/PromiseTestUtils.jsm, line 112: uncaught exception: Object
[task 2019-08-30T03:44:10.975Z] 03:44:10 INFO - Console message: [JavaScript Error: "uncaught exception: Object" {file: "resource://testing-common/PromiseTestUtils.jsm" line: 112}]
[task 2019-08-30T03:44:10.976Z] 03:44:10 INFO - GECKO(2786) | MEMORY STAT | vsize 3112MB | residentFast 355MB | heapAllocated 109MB
[task 2019-08-30T03:44:10.978Z] 03:44:10 INFO - TEST-OK | browser/components/aboutlogins/tests/browser/browser_loginItemErrors.js | took 5772ms

Pushed by mozilla@noorenberghe.ca:
https://hg.mozilla.org/integration/autoland/rev/a8bcdfbce01b
Show errors in aboutLogins UI. r=MattN,fluent-reviewers,ntim,flod
Pushed by mozilla@noorenberghe.ca:
https://hg.mozilla.org/integration/autoland/rev/fc86ab102993
Fix eslint in browser_loginItemErrors.js

I have verified this issue on Firefox Beta 70.0b3 and the latest Nightly 71.0a1 build on Windows 7 x64, Mac 10.14 and Ubuntu 16.04 x64.

  • The duplicate logins error is correctly displayed when creating or editing a duplicate login.
  • The logins cannot be saved error is also correctly displayed.
Status: RESOLVED → VERIFIED
Flags: qe-verify+
Component: Password Manager → about:logins
Product: Toolkit → Firefox
Target Milestone: mozilla70 → Firefox 70
Version: Trunk → unspecified
You need to log in before you can comment on or make changes to this bug.