After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 756827 - orca would speak password in lightdm-gtk-greeter
orca would speak password in lightdm-gtk-greeter
Status: VERIFIED FIXED
Product: orca
Classification: Applications
Component: speech
unspecified
Other Linux
: Normal normal
: ---
Assigned To: Orca Maintainers
Orca Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-10-19 20:11 UTC by Samuel Thibault
Modified: 2015-10-20 21:18 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
proposed fix (4.45 KB, patch)
2015-10-19 20:11 UTC, Samuel Thibault
none Details | Review

Description Samuel Thibault 2015-10-19 20:11:49 UTC
Created attachment 313697 [details] [review]
proposed fix

Hello,

Source: http://bugs.debian.org/800602

When lightdm-gtk-greeter is configured with

[SeatDefaults]
greeter-hide-users=false

Orca would speak the letters of the password being typed. This seems to be because by default Orca sets the locus on the application frame, and not on the object, and thus it doesn't notice that it's already a password object, for which keypresses should not be echoed!

Apparently this is avoided in gdmlogin by overriding onWindowActivated(). The proposed attached fix simply copies that implementation over for lightdm-gtk-greeter.

It'd however be probably a good thing to try to generalize this, because all DMs will suffer from the same issue...
Comment 1 Joanmarie Diggs (IRC: joanie) 2015-10-20 16:35:45 UTC
(In reply to Samuel Thibault from comment #0)

> Orca would speak the letters of the password being typed. This seems to be
> because by default Orca sets the locus on the application frame,

Yes. For two reasons:

1. It is expected that the application will then emit a focused-changed event on the focused widget. (I'm guessing that lightdm-gtk-greeter fails to do so?)

2. If Orca looked for the focused object as a general rule, Orca users would experience significant delays in presenting most newly-activated windows. There is no API to ask an application for the currently-focused widget, so a tree dive is required.

> Apparently this is avoided in gdmlogin by overriding onWindowActivated().
> The proposed attached fix simply copies that implementation over for
> lightdm-gtk-greeter.

Thanks for the patch. Given what you say here:

> It'd however be probably a good thing to try to generalize this, because all
> DMs will suffer from the same issue...

I am going to hold off on committing it and give this issue some more thought.
Comment 2 Samuel Thibault 2015-10-20 16:40:57 UTC
> > Orca would speak the letters of the password being typed. This seems to be
> > because by default Orca sets the locus on the application frame,
>
> Yes. For two reasons:
>
> 1. It is expected that the application will then emit a focused-changed event
> on the focused widget. (I'm guessing that lightdm-gtk-greeter fails to do so?)

Why would it?

orca gets started after lightdm-gtk-greeter, so it's up to orca to find
out what it needs to show.  Really, this is the same case as gdmlogin.

> 2. If Orca looked for the focused object as a general rule, Orca users would
> experience significant delays in presenting most newly-activated windows.

I'm talking about the initial research, when Orca starts up. I.e.
typically DM banners or desktop startup.
Comment 3 Samuel Thibault 2015-10-20 16:41:30 UTC
> I am going to hold off on committing it and give this issue some more thought.

Well, in the meanwhile this is a security issue for our users...
Comment 4 Joanmarie Diggs (IRC: joanie) 2015-10-20 16:48:15 UTC
(In reply to Samuel Thibault from comment #3)
> > I am going to hold off on committing it and give this issue some more thought.
> 
> Well, in the meanwhile this is a security issue for our users...

Understood. I didn't say I was going to wait for years. I may even do an alternative solution today. In the meanwhile, I don't see adding a new script just to delete it a little while later.

I trust you can solve this security issue immediately for your users in your downstream Orca package.
Comment 5 Joanmarie Diggs (IRC: joanie) 2015-10-20 20:53:08 UTC
I've made some changes in Orca master to update the state when keys are pressed and when there's text changes in a password field -- even if it's not a greeter. Could you please test master and see if it resolves your specific problem with lightdm-gtk-greeter?
Comment 6 Samuel Thibault 2015-10-20 21:18:22 UTC
Yes, the change fixes the issue (and applies cleanly on 3.14 we have in Debian Jessie).