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
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 --version gjs 1.53.3 $ gjs -c 'print(imports.gi.GLib.spawn_command_line_sync("uname"))' FreeBSD
GJS master branch:
$ gjs --version gjs 1.53.91 $ gjs -c 'print(imports.gi.GLib.spawn_command_line_sync("uname"))' 70,114,101,101,66,83,68,10