New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 780973 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Nov 2017
Cc:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug-Regression

Blocking:
issue 781902



Sign in to add a comment

Aura Linux accessibility does not initialize atk bridge with use_gtk3

Project Member Reported by jdap...@gmail.com, Nov 2 2017

Issue description

UserAgent: 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.
 
Project Member

Comment 1 by bugdroid1@chromium.org, Nov 3 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/808bd3dda1e35a2b98c93f3f0c6442fda4591125

commit 808bd3dda1e35a2b98c93f3f0c6442fda4591125
Author: Jose Dapena Paz <jose.dapena@lge.com>
Date: Fri Nov 03 17:06:12 2017

Update Debian and RPM update provides lists.

Update the provides lists to the current released packages in the
distributions.

This is a preparation for adding the ATK bridge dependency on installers
creation.

Bug:  780973 
Change-Id: I692a1c8357c76e53c909be4b4afcbc2f661dfa69
Reviewed-on: https://chromium-review.googlesource.com/753682
Commit-Queue: Jose Dapena Paz <jose.dapena@lge.com>
Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
Reviewed-by: Thomas Anderson <thomasanderson@chromium.org>
Cr-Commit-Position: refs/heads/master@{#513809}
[modify] https://crrev.com/808bd3dda1e35a2b98c93f3f0c6442fda4591125/chrome/installer/linux/debian/dist_package_versions.json
[modify] https://crrev.com/808bd3dda1e35a2b98c93f3f0c6442fda4591125/chrome/installer/linux/rpm/dist_package_provides.json

Cc: thomasanderson@chromium.org
Status: (was: Unconfirmed)
Project Member

Comment 3 by bugdroid1@chromium.org, 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

Comment 4 by jdap...@gmail.com, 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?
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.

Comment 6 by r...@igalia.com, Nov 6 2017

Owner: jose.dap...@lge.com
Status: Started
Project Member

Comment 7 by bugdroid1@chromium.org, 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

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.
Blockedon: 781902
Blockedon: -781902
Blocking: 781902
Project Member

Comment 12 by bugdroid1@chromium.org, 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

Project Member

Comment 13 by bugdroid1@chromium.org, 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

Status: Fixed (was: Started)
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.

Sign in to add a comment