FS#74373 - [firefox] missing dependency gnome-keyring

Attached to Project: Arch Linux
Opened by Michael Prager (mp31231) - Wednesday, 06 April 2022, 19:36 GMT
Last edited by Buggy McBugFace (bugbot) - Saturday, 25 November 2023, 20:17 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To Jan Alexander Steffens (heftig)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
Firefox requires gnome-keyring to secure stored credit card information. If the package is not installed, the settings dialog to add credit cards will not work correctly ("Save" button is without function).

https://support.mozilla.org/en-US/kb/credit-card-autofill

This feature is currently only enabled for specific countries. As of version 99.0, this affects:
US,CA,UK,FR,DE

In previous versions this only affected US.


Additional info:
Internally, Firefox will show the following error in logs:

debuggee 'resource://devtools/shared/loader/base-loader.js:289' would run 2 builtin-modules.js:206:11
Failed to enumerate localStorage for host about:devtools-toolbox: [Exception... "Component is not available" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: resource://devtools/server/actors/storage.js :: populateStoresForHost :: line 1335" data: no] storage.js:1337:17
Failed to enumerate sessionStorage for host about:devtools-toolbox: [Exception... "Component is not available" nsresult: "0x80040111 (NS_ERROR_NOT_AVAILABLE)" location: "JS frame :: resource://devtools/server/actors/storage.js :: populateStoresForHost :: line 1335" data: no] storage.js:1337:17
Uncaught TypeError: mutation.target.closest is not a function
onMutation chrome://formautofill/content/l10n.js:44
onDCL chrome://formautofill/content/l10n.js:26
EventListener.handleEvent* chrome://formautofill/content/l10n.js:22
l10n.js:44:58
Element.releaseCapture() is deprecated. Use Element.releasePointerCapture() instead. For more help https://developer.mozilla.org/docs/Web/API/Element/releasePointerCapture menupopup.js:169:13
[Exception... "User canceled OS unlock entry" nsresult: "0x80004004 (NS_ERROR_ABORT)" location: "JS frame :: resource://gre/modules/OSKeyStore.jsm :: encrypt :: line 332" data: no] OSKeyStore.jsm:332:24


Steps to reproduce:
1. Start Firefox in one of US,CA,UK,FR,DE
2. Settings -> Privacy & Security -> Logins and Passwords -> [x] Autofill credit cards -> Save Cedit Cards...
3. Try to add a Visa card with number 4111111111111111, 01/2023, Test. Pressing "Save" will not have any effect. The dialog stays open and the card is not stored.
This task depends upon

Closed by  Buggy McBugFace (bugbot)
Saturday, 25 November 2023, 20:17 GMT
Reason for closing:  Moved
Additional comments about closing:  https://gitlab.archlinux.org/archlinux/p ackaging/packages/firefox/issues/1
Comment by André (aandre) - Thursday, 07 April 2022, 15:24 GMT
Could you test if it also works with keepassxc instead of gnome-keyring. If so, org.freedesktop.secrets should be used as dependency.
Comment by Michael Prager (mp31231) - Thursday, 07 April 2022, 15:47 GMT
I do have keepassxc installed but had the issue anyway. I also have kwallet but I think that does not have org.freedesktop.secrets suppert enabled. I also talked to one of the FF devs but he did not find any obvious reference to org.freedejtop.secrets. So I assume that indeed gnome-keyring is required.
Comment by Michel Koss (MichelKoss1) - Thursday, 07 April 2022, 21:33 GMT
Please make it optdepend for people who don't use gnome-keyring or even gnome at all.
Comment by Michael Prager (mp31231) - Friday, 08 April 2022, 07:05 GMT
Problem is that users will not be able to tell that they need the optional dependency since there is no hint about it in Firefox. On the other hand, gnome-keyring does not depend on gnome and can be installed on its own.
Comment by Michel Koss (MichelKoss1) - Friday, 08 April 2022, 14:44 GMT
The same is true for perhaps all optdepends in Arch. Users are expected to check it themselves. Chromium has it as optional so ff shouldn't be different. I think this is quite canonical case for optional dependency that extends some functionality but otherwise app works flawless without it.
Comment by Michael Prager (mp31231) - Saturday, 09 April 2022, 13:37 GMT
I see, then this is "by design".

Btw: I did another test with keepassxc and this time, I managed to get it working with firefox without having gnome-keyring backend installed. However for it to work:

1. keepassxc needs to be running
2. the secret service integration must be enabled in settings
3. a database must be setup where at least one group is accessable to the secret service

So this looks indeed like a dep on org.freedesktop.secrets might be sufficient instead of gnome-keyring.
Comment by Jan Alexander Steffens (heftig) - Tuesday, 26 April 2022, 20:56 GMT
OSKeyStore attempts to load libsecret if installed. Was libsecret installed but not a secrets backend?
Comment by Michael Prager (mp31231) - Tuesday, 26 April 2022, 21:03 GMT
I'm not sure if I understand the question correctly. When org.freedesktop.secrets is installed and setup (e.g. gnome-keyring or keepassxc), then the issue goes away.
Comment by Jan Alexander Steffens (heftig) - Tuesday, 26 April 2022, 21:04 GMT
Does this bug still appear if libsecret is not installed?
Comment by Michael Prager (mp31231) - Tuesday, 26 April 2022, 21:09 GMT
Hm good question, libsecret is required by some (for me) essential packages (e.g. vlc and pinentry), thus I cannot test this.
Comment by Jan Alexander Steffens (heftig) - Tuesday, 26 April 2022, 21:26 GMT
I suspect the problem is Firefox assumes libsecret is functional when installed, but we don't actually require it to be (the backend is only an optdepend).

Loading...