Issue metadata
Sign in to add a comment
|
Aura Linux accessibility does not initialize atk bridge with use_gtk3 |
||||||||||||||||||||
Issue descriptionUserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.62 Safari/537.36 Steps to reproduce the problem: 1. Build chromium on Linux with use_gtk3 2. Launch Chromium with environment variable ACCESSIBILITY_ENABLED set 3. Run accerciser a11y test app What is the expected behavior? Chrome should show in accerciser, and the UI components should be visible. If renderer accessibility is enabled, web contents should also be accessible. What went wrong? Chromium app has 0 children. Did this work before? N/A Chrome version: 62.0.3202.62 Channel: n/a OS Version: Flash Version: Chromium relays for a11y initialization on old gtk2 procedure, checking and loading the atk-bridge gtk-module. On gtk3, accessibility is always enabled. So initialization is already happening for GTK. Unfortunately this initialization makes GTK AtkMisc object be registered in AT instead of the custom Chromium AtkMisc implementation, so the ATK root is wrong.
,
Nov 3 2017
,
Nov 3 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/cdcf70465b4a924a087bfd46f0cdc73af5743e15 commit cdcf70465b4a924a087bfd46f0cdc73af5743e15 Author: Jose Dapena Paz <jose.dapena@lge.com> Date: Fri Nov 03 18:33:27 2017 Add atk-bridge dependency to Linux installers. In order to enable accessibility support in Aura Linux, with GTK3 based Chromium, atk-bridge is a required dependency. Bug: 780973 Change-Id: Iad545bde54ec9119b709e83265e27ed17f9642f1 Reviewed-on: https://chromium-review.googlesource.com/753683 Commit-Queue: Thomas Anderson <thomasanderson@chromium.org> Reviewed-by: Thomas Anderson <thomasanderson@chromium.org> Cr-Commit-Position: refs/heads/master@{#513847} [modify] https://crrev.com/cdcf70465b4a924a087bfd46f0cdc73af5743e15/chrome/installer/linux/debian/dist_package_versions.json [modify] https://crrev.com/cdcf70465b4a924a087bfd46f0cdc73af5743e15/chrome/installer/linux/debian/update_dist_package_versions.py [modify] https://crrev.com/cdcf70465b4a924a087bfd46f0cdc73af5743e15/chrome/installer/linux/rpm/dist_package_provides.json [modify] https://crrev.com/cdcf70465b4a924a087bfd46f0cdc73af5743e15/chrome/installer/linux/rpm/update_package_provides.py
,
Nov 3 2017
There is a third patch pending review, that adds the implementation based on atk-bridge. It will keep existing gtk2 valid implementation while providing the new implementation for gtk3 build. A further patch could just drop gtk2 implementation and use atk-bridgel library always It would simplify code a lot. Another possibility is just dropping gtk2 support on all Chromium. Is there any reason why this is still kept in the tree?
,
Nov 3 2017
c#4 The short answer is that whenever the gtk2 build breaks, someone complains. So we just keep the code around, even though it's not officially supported.
,
Nov 6 2017
,
Nov 6 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/07b715eb4c52e0610dab4818737b05f4f9bfa405 commit 07b715eb4c52e0610dab4818737b05f4f9bfa405 Author: Jose Dapena Paz <jose.dapena@lge.com> Date: Mon Nov 06 18:33:49 2017 Initialize ATK bridge without atk-bridge GTK module on GTK3. On GTK3, the atk-bridge.so GTK module is not expected to be available as the policy is that accessibility support is always loaded. So GTK initialization was already registering its own AtkMisc instance, and the GTK ATK root node. This was the node associated to ATK bridge. But Chromium needs to register its own ATK root node. So, for the case of GTK3, ATK bridge should happen immediately after the registration of Chromium AtkMisc instance, that will refer to the proper ATK root node. Bug: 780973 Change-Id: Iaed33530eb6a801ab2bec0a299d8c9b7fa091f5f Reviewed-on: https://chromium-review.googlesource.com/753442 Reviewed-by: Thomas Anderson <thomasanderson@chromium.org> Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org> Reviewed-by: Elliot Glaysher <erg@chromium.org> Reviewed-by: Dirk Pranke <dpranke@chromium.org> Commit-Queue: José Dapena Paz <jose.dapena@lge.com> Cr-Commit-Position: refs/heads/master@{#514191} [modify] https://crrev.com/07b715eb4c52e0610dab4818737b05f4f9bfa405/build/config/linux/atk/BUILD.gn [modify] https://crrev.com/07b715eb4c52e0610dab4818737b05f4f9bfa405/chrome/browser/ui/libgtkui/gtk_ui.cc [modify] https://crrev.com/07b715eb4c52e0610dab4818737b05f4f9bfa405/ui/accessibility/platform/atk_util_auralinux.cc
,
Nov 6 2017
Though the issue is fixed, I am closing it after a couple of follow ups: - Move gtk2 and gtk3 specific code to independent files. - Replace getenv call with base::Environment. Once done I think we can close this.
,
Nov 6 2017
,
Nov 6 2017
,
Nov 6 2017
,
Nov 7 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/e1ffaeb14eb807371612c62bec5f116431915f55 commit e1ffaeb14eb807371612c62bec5f116431915f55 Author: Jose Dapena Paz <jose.dapena@lge.com> Date: Tue Nov 07 19:43:13 2017 Move GTK2 and GTK3 ATK initialization to specific files. Instead of using build guards to isolate ATK bridge initialization code in GTK2 and GTK3, split it into different files. Bug: 780973 Change-Id: I2877a1c0aea6252211d2d17e43a331c3b706a505 Reviewed-on: https://chromium-review.googlesource.com/755134 Commit-Queue: José Dapena Paz <jose.dapena@lge.com> Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org> Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org> Cr-Commit-Position: refs/heads/master@{#514546} [modify] https://crrev.com/e1ffaeb14eb807371612c62bec5f116431915f55/ui/accessibility/BUILD.gn [modify] https://crrev.com/e1ffaeb14eb807371612c62bec5f116431915f55/ui/accessibility/platform/atk_util_auralinux.cc [modify] https://crrev.com/e1ffaeb14eb807371612c62bec5f116431915f55/ui/accessibility/platform/atk_util_auralinux.h [add] https://crrev.com/e1ffaeb14eb807371612c62bec5f116431915f55/ui/accessibility/platform/atk_util_auralinux_gtk2.cc [add] https://crrev.com/e1ffaeb14eb807371612c62bec5f116431915f55/ui/accessibility/platform/atk_util_auralinux_gtk3.cc
,
Nov 7 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/fb5617d1da7e8ba3e077fae301b4ee58f382f87a commit fb5617d1da7e8ba3e077fae301b4ee58f382f87a Author: Jose Dapena Paz <jose.dapena@lge.com> Date: Tue Nov 07 20:09:55 2017 Use base::Environment instead of getenv on ATK bridge initialization. base::Environment is preferred to directly calling getenv. Bug: 780973 Change-Id: Ieff0416279e2bdaf7915387ee6883cbb0edc6799 Reviewed-on: https://chromium-review.googlesource.com/755135 Commit-Queue: José Dapena Paz <jose.dapena@lge.com> Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org> Cr-Commit-Position: refs/heads/master@{#514565} [modify] https://crrev.com/fb5617d1da7e8ba3e077fae301b4ee58f382f87a/ui/accessibility/platform/atk_util_auralinux.cc
,
Nov 7 2017
,
Dec 13 2017
Hi, you forgot to add the ui namespace in ui/accessibility/platform/atk_util_auralinux_gtk2.cc. Building with use_gtk3=false fails:
../../ui/accessibility/platform/atk_util_auralinux_gtk2.cc:59:6: error: use of undeclared identifier 'AtkUtilAuraLinux'; did you mean 'ui::AtkUtilAuraLinux'?
bool AtkUtilAuraLinux::PlatformShouldEnableAccessibility() {
^~~~~~~~~~~~~~~~
ui::AtkUtilAuraLinux
../../ui/accessibility/platform/atk_util_auralinux.h:17:17: note: 'ui::AtkUtilAuraLinux' declared here
class AX_EXPORT AtkUtilAuraLinux {
^
../../ui/accessibility/platform/atk_util_auralinux_gtk2.cc:74:6: error: use of undeclared identifier 'AtkUtilAuraLinux'; did you mean 'ui::AtkUtilAuraLinux'?
void AtkUtilAuraLinux::PlatformInitializeAsync() {
^~~~~~~~~~~~~~~~
ui::AtkUtilAuraLinux
../../ui/accessibility/platform/atk_util_auralinux.h:17:17: note: 'ui::AtkUtilAuraLinux' declared here
class AX_EXPORT AtkUtilAuraLinux {
^
2 errors generated.
,
Dec 13 2017
c#15: That's already fixed by this CL https://chromium.googlesource.com/chromium/src/+/dbaad4aaba7885d8fa08fee909b5dd9e19f2879d |
|||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||
Comment 1 by bugdroid1@chromium.org
, Nov 3 2017