On-screen keyboard works neither in Tor Browser nor in Thunderbird if started after it
This problem probably has the same root cause as
Bug #9260. Gedit is not affected so it must be related to something weird we do for Tor Browser specifically.
So far, this got reported (Feature #10263#note-8) only by the people who participated in the 3.2 manual testing session, so I’ll assume that very few people use this feature at all. Still, the on-screen keyboard is an important accessibility and hardware enablement (touch devices) feature so I’ll handle this as a regression, not with super high priority but still. If it’s too hard to fix quickly I’ll document this as a known issue for the time being.
#2 Updated by intrigeri 2017-09-30 08:48:58
- Status changed from Confirmed to In Progress
- % Done changed from 0 to 10
- Type of work changed from Research to Code
Let’s start by eliminating potential root causes:
- I can reproduce this with pristine Firefox 52.3.0esr-2 on Debian sid.
- I’ve compared the environment in which the
plugin-containerprocesses run when started before/after the screen keyboard, and only
GIO_LAUNCHED_DESKTOP_FILE_PIDvaries (which is expected and unrelated).
- Commenting out
/usr/local/lib/tails-shell-library/tor-browser.shdoes not help.
- Disabling the
torbrowserAppArmor profile does not help.
- Disabling e10s does not help.
The value of the
accessibility.lastLoadDate Tor Browser pref changes accross startups, regardless of whether the screen keyboard is enabled.
about:support says that accessibility is activated if, and only if, the screen keyboard was enabled before starting Tor Browser. Setting
accessibility.loadedInLastSession to true does not change this. Same with pristine Firefox 52.3.0esr-2 on Debian sid.
And finally, success! After reading
accessible/atk/Platform.cpp in the Tor Browser source code, on a hunch I’ve tried running
GNOME_ACCESSIBILITY=1 tor-browser, then enables the screen keyboard, and it worked :) Same for Orca. My understanding of the code is that if this envvar is not set, Firefox will check via D-Bus at startup if accessibility is enabled in the Desktop, and if it’s not it’ll permanently disable accessibility.
I’ll now build a branch that sets this variable and see if it breaks anything.