GNOME Shell password prompt no longer shows description
When running GNOME Shell on the current GJS master branch, it no longer tells me which private key needs to be unlocked in order to SSH into a remote machine. It just shows a dialog saying 'Password:' without providing any additional description why a password is needed. If I downgrade GJS to 1.53.3, GNOME Shell works properly so I think it may be a regression of GJS.
I have tried to use git bisect
to find which commit broke it, but there are too many untestable commits because of GNOME Shell crash. The only thing I know here is that GJS 1.53.3 works but GJS 1.53.4 doesn't.
It seems that it is KeyringDialog
in js/ui/components/keyring.js
that shows the password dialog in GNOME Shell. In its _init
function, it connects a callback function to notify::description
signal, and it accesses this.prompt.description
to retrieve the description of the password request. On GJS 1.53.3, this.prompt.description
is a string with description text, but on GJS master branch this.prompt.description
is empty.
I also find that the current GJS master branch breaks a local patch I made to a GNOME Shell extension. It seems that the type of the return value of GLib.spawn_command_line_sync
has changed since GJS 1.53.3. I am not sure whether this kind of change is expected or whether it changes the behaviour of other functions.
GJS 1.53.3:
$ gjs --version
gjs 1.53.3
$ gjs -c 'print(imports.gi.GLib.spawn_command_line_sync("uname")[1])'
FreeBSD
GJS master branch:
$ gjs --version
gjs 1.53.91
$ gjs -c 'print(imports.gi.GLib.spawn_command_line_sync("uname")[1])'
70,114,101,101,66,83,68,10