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

Issue 784583 link

Starred by 1 user

Issue metadata

Status: Started
Owner:
Last visit > 30 days ago
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 3
Type: Task
Team-Accessibility


Sign in to add a comment

Move ATK native objects implementation to AtkPlatformNodeAuraLinux

Project Member Reported by jose.dap...@lge.com, Nov 13 2017

Issue description

Chrome Version: 64.0.3267.2
OS: Linux

There is duplication between BrowserAccessibilityAuraLinux and AxPlatformNodeAuraLinux. Ideally we want to isolate ATK native objects to be in AxPlatformNodeAuraLinux, and make BrowserAccessibilityAuraLinux use AXPlatformNodeAuraLinux.

There has been a job to refactor in Windows the specific code to AXPlatformNode that is providing the implementation that will be needed in ATK side also.

So first make AXPlatformNodeAuraLinux implement everything we have in BrowserAccessibilityAuraLinux, and then remove it ATK side so it uses AXPlatformNodeAuraLinux.

Benefits:
* Less duplication, one single implementation.
* Aura objects get an ATK implementation as good as the one we had for Blink objects.


 
Project Member

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

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

commit 27e815da65ec253132b1ca60883a576f5ff0785d
Author: Jose Dapena Paz <jose.dapena@lge.com>
Date: Tue Nov 14 21:24:44 2017

A11y: prepare AXPlatformNodeAuraLinux to implement multiple Atk interfaces.

As a first step towards moving all the ATK object implementation to
ui/accessibility, we will make AXPlatformNodeAuraLinux implement as much
as possible of the features implemented only in
BrowserAccessibilityAuraLinux ATK object.

This patch prepares AtkPlatformNodeAuraLinux to load different Atk
interfaces.

Bug: 784583
Change-Id: I056ebcc6112743b99b1bc5017dbb226b3f5cbe60
Reviewed-on: https://chromium-review.googlesource.com/767427
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#516429}
[modify] https://crrev.com/27e815da65ec253132b1ca60883a576f5ff0785d/ui/accessibility/platform/ax_platform_node_auralinux.cc
[modify] https://crrev.com/27e815da65ec253132b1ca60883a576f5ff0785d/ui/accessibility/platform/ax_platform_node_auralinux.h
[modify] https://crrev.com/27e815da65ec253132b1ca60883a576f5ff0785d/ui/views/accessibility/native_view_accessibility_base.cc

Project Member

Comment 2 by bugdroid1@chromium.org, Nov 15 2017

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

commit 8e1966b926d5aa94ae21a22c9c026d9fc7449292
Author: Dirk Pranke <dpranke@chromium.org>
Date: Wed Nov 15 02:12:17 2017

Revert "A11y: prepare AXPlatformNodeAuraLinux to implement multiple Atk interfaces."

This reverts commit 27e815da65ec253132b1ca60883a576f5ff0785d.

Reason for revert: This appears to cause the system mesa (GL) library to get loaded at runtime, which breaks the layout tests when run under MSAN :(. See  crbug.com/785106 . 

Original change's description:
> A11y: prepare AXPlatformNodeAuraLinux to implement multiple Atk interfaces.
> 
> As a first step towards moving all the ATK object implementation to
> ui/accessibility, we will make AXPlatformNodeAuraLinux implement as much
> as possible of the features implemented only in
> BrowserAccessibilityAuraLinux ATK object.
> 
> This patch prepares AtkPlatformNodeAuraLinux to load different Atk
> interfaces.
> 
> Bug: 784583
> Change-Id: I056ebcc6112743b99b1bc5017dbb226b3f5cbe60
> Reviewed-on: https://chromium-review.googlesource.com/767427
> Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
> Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
> Cr-Commit-Position: refs/heads/master@{#516429}

TBR=dmazzoni@chromium.org,jdapena@gmail.com,jose.dapena@lge.com

Change-Id: I62466e84a96902873aecb18bfcba233aec6a6c96
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 784583
Reviewed-on: https://chromium-review.googlesource.com/770452
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Dirk Pranke <dpranke@chromium.org>
Cr-Commit-Position: refs/heads/master@{#516563}
[modify] https://crrev.com/8e1966b926d5aa94ae21a22c9c026d9fc7449292/ui/accessibility/platform/ax_platform_node_auralinux.cc
[modify] https://crrev.com/8e1966b926d5aa94ae21a22c9c026d9fc7449292/ui/accessibility/platform/ax_platform_node_auralinux.h
[modify] https://crrev.com/8e1966b926d5aa94ae21a22c9c026d9fc7449292/ui/views/accessibility/native_view_accessibility_base.cc

Comment 3 by kbr@chromium.org, Nov 15 2017

Blockedon: 785106
Project Member

Comment 4 by bugdroid1@chromium.org, Nov 17 2017

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

commit 59b5d9892707371b36827670cb5eeb66fa932fc2
Author: Jose Dapena Paz <jose.dapena@lge.com>
Date: Fri Nov 17 21:18:26 2017

Reland "A11y: prepare AXPlatformNodeAuraLinux to implement multiple Atk interfaces."

Original CL: https:/crrev.com/c/767427/

> As a first step towards moving all the ATK object implementation to
> ui/accessibility, we will make AXPlatformNodeAuraLinux implement as much
> as possible of the features implemented only in
> BrowserAccessibilityAuraLinux ATK object.
>
> This patch prepares AtkPlatformNodeAuraLinux to load different Atk
> interfaces.

Changes:
- Change initalization of AuraLinuxApplication so AXNodeData is initialized
  before AXPlatformNode accesses to it avoiding MSAN crash.

Bug: 784583, 785106 
Change-Id: I59804d1e859dc95fae3af06747aaa21043aed05e
Reviewed-on: https://chromium-review.googlesource.com/774888
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#517557}
[modify] https://crrev.com/59b5d9892707371b36827670cb5eeb66fa932fc2/ui/accessibility/platform/ax_platform_node_auralinux.cc
[modify] https://crrev.com/59b5d9892707371b36827670cb5eeb66fa932fc2/ui/accessibility/platform/ax_platform_node_auralinux.h
[modify] https://crrev.com/59b5d9892707371b36827670cb5eeb66fa932fc2/ui/views/accessibility/native_view_accessibility_auralinux.cc
[modify] https://crrev.com/59b5d9892707371b36827670cb5eeb66fa932fc2/ui/views/accessibility/native_view_accessibility_base.cc

Project Member

Comment 5 by bugdroid1@chromium.org, Nov 20 2017

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

commit a38a42d6d6999f2cb1b584f55fccf8f0a0c401b2
Author: Jose Dapena Paz <jose.dapena@lge.com>
Date: Mon Nov 20 09:46:25 2017

AXPlatformNodeAuraLinux: add ref_accessible_at_point implementation.

Provide the hit test wrapper for AtkComponent interface, using
an implementation that is compatible with the one in
BrowserAccessibleAuraLinux.

Bug: 784583
Change-Id: Ie1dcae846db9aabf06e636eaf3054c87d2e8bcc9
Reviewed-on: https://chromium-review.googlesource.com/767428
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#517786}
[modify] https://crrev.com/a38a42d6d6999f2cb1b584f55fccf8f0a0c401b2/ui/accessibility/platform/ax_platform_node_auralinux.cc
[modify] https://crrev.com/a38a42d6d6999f2cb1b584f55fccf8f0a0c401b2/ui/accessibility/platform/ax_platform_node_auralinux.h

Project Member

Comment 6 by bugdroid1@chromium.org, Nov 20 2017

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

commit 0bab46d0ed62ad58d4732f286dbb76a723d0a04a
Author: Jose Dapena Paz <jose.dapena@lge.com>
Date: Mon Nov 20 12:08:53 2017

AXPlatformNodeAuraLinux: add grab_focus implementation.

Provide implementation of AtkComponent grab_focus method, that will
send a focus AXAction through the AXNodePlatformDelegate.

Bug: 784583
Change-Id: I1874240801d117fc299cd520ecdf2824a5165e24
Reviewed-on: https://chromium-review.googlesource.com/767429
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#517798}
[modify] https://crrev.com/0bab46d0ed62ad58d4732f286dbb76a723d0a04a/ui/accessibility/platform/ax_platform_node_auralinux.cc
[modify] https://crrev.com/0bab46d0ed62ad58d4732f286dbb76a723d0a04a/ui/accessibility/platform/ax_platform_node_auralinux.h

Project Member

Comment 7 by bugdroid1@chromium.org, Nov 21 2017

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

commit c1659c3f01024dec34520a93249caa4a8edd7f61
Author: Jose Dapena Paz <jose.dapena@lge.com>
Date: Tue Nov 21 09:36:10 2017

AXPlatformNodeAuraLinux: add AtkAction interface implementation.

Provide implementation of all the AtkAction interface methods already
implemented in BrowserAccessibilityAuraLinux. It will work slightly
better as it takes into account that ATK expects on AtkAction get_name
a const gchar*, and BrowserAccessibilityAuraLinux returns that
from a temporal std::string, so it will usually show in ATK as an
empty string.

Bug: 784583
Change-Id: Ifd4a79a0f18508e0cbca2034b7af5e7f85c8c12a
Reviewed-on: https://chromium-review.googlesource.com/767430
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518193}
[modify] https://crrev.com/c1659c3f01024dec34520a93249caa4a8edd7f61/ui/accessibility/platform/ax_platform_node_auralinux.cc
[modify] https://crrev.com/c1659c3f01024dec34520a93249caa4a8edd7f61/ui/accessibility/platform/ax_platform_node_auralinux.h

Comment 8 by jose.dap...@lge.com, Nov 21 2017

Blockedon: 787371

Comment 9 by jose.dap...@lge.com, Nov 21 2017

Blockedon: 787372
Blockedon: 787451
Blockedon: 787474
Project Member

Comment 12 by bugdroid1@chromium.org, Nov 21 2017

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

commit dc17ae99f6537f150946de4e657265297b95ce60
Author: Jose Dapena Paz <jose.dapena@lge.com>
Date: Tue Nov 21 20:06:08 2017

ATK: refactor AXPlatformNodeAuraLinux g_type_init call

Avoid duplication of the g_type_init call and reuse the
guard to call it only one time from AXPlatformNodeAuraLinux
initialization.

Bug: 784583
Change-Id: I4ef553f8f123f3c76a6610c7c94ac1e2e3363a47
Reviewed-on: https://chromium-review.googlesource.com/781760
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Cr-Commit-Position: refs/heads/master@{#518350}
[modify] https://crrev.com/dc17ae99f6537f150946de4e657265297b95ce60/ui/accessibility/platform/ax_platform_node_auralinux.cc
[modify] https://crrev.com/dc17ae99f6537f150946de4e657265297b95ce60/ui/accessibility/platform/ax_platform_node_auralinux.h

Project Member

Comment 13 by bugdroid1@chromium.org, Nov 21 2017

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

commit 0740dcda437589da0b2483e0599e9ca9d2593bd1
Author: Jose Dapena Paz <jose.dapena@lge.com>
Date: Tue Nov 21 22:07:16 2017

ATK: fix AXPlatformNodeAuraLinux ATK interfaces detection.

For choosing the ATK interfaces to support, AXPlatformNodeAuraLinux
was retrieving AtkRole, but it was comparing it with AXRole values,
so it was assigning wrong interfaces to roles.

Bug: 784583,  787371 
Change-Id: Iad114c07e3e6860449b81771cb5d2808903fe603
Reviewed-on: https://chromium-review.googlesource.com/781761
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Cr-Commit-Position: refs/heads/master@{#518412}
[modify] https://crrev.com/0740dcda437589da0b2483e0599e9ca9d2593bd1/ui/accessibility/platform/ax_platform_node_auralinux.cc

Status: Started (was: Untriaged)
Patches for covering all the existing ATK functionality in BrowserAccessibilityAuraLinux are done and on review process. Once landed, next step will be making BrowserAccessibilityAuraLinux use AXPlatformNodeAuraLinux, and drop its own implementation of the ATK object.
Project Member

Comment 16 by bugdroid1@chromium.org, Nov 28 2017

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

commit ca938cd8cd94496ea9e0ecf577bd2f16581e3cbd
Author: Jose Dapena Paz <jose.dapena@lge.com>
Date: Tue Nov 28 01:33:35 2017

ATK: refactor BrowserAccessibilityAuraLinux to use AXPlatformNodeAuraLinux

Remove all the ATK implementation in BrowserAccessibilityAuraLinux, and
relay on the single implementation available in AXPlatformNodeAuraLinux.
This way we stop duplicating ATK implementation, and focus on a single
backend for the whole platform accessibility.

Some changes were needed in AXPlatformNodeAuraLinux to support the
requirements in BrowserAccessibility:
* Delegate AccessibilityTreeAuraLinux AddProperties on
  AXPlatformNodeAuraLinux::AddAccessibilityTreeProperties.
* Regenerate if needed the backing AXPlatformNodeAuraLinux ATK objects
  when OnDataChanged is called in BrowserAccessibilityAuraLinux.

Bug: 784583
Change-Id: I9538f09e5018a252e56c446270f8197742faa0d0
Reviewed-on: https://chromium-review.googlesource.com/788395
Commit-Queue: José Dapena Paz <jose.dapena@lge.com>
Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Avi Drissman <avi@chromium.org>
Cr-Commit-Position: refs/heads/master@{#519512}
[modify] https://crrev.com/ca938cd8cd94496ea9e0ecf577bd2f16581e3cbd/content/browser/BUILD.gn
[modify] https://crrev.com/ca938cd8cd94496ea9e0ecf577bd2f16581e3cbd/content/browser/accessibility/accessibility_tree_formatter_auralinux.cc
[delete] https://crrev.com/39c669291ea615188defe6996b098a1d07a5a385/content/browser/accessibility/browser_accessibility_atk_hyperlink.cc
[delete] https://crrev.com/39c669291ea615188defe6996b098a1d07a5a385/content/browser/accessibility/browser_accessibility_atk_hyperlink.h
[modify] https://crrev.com/ca938cd8cd94496ea9e0ecf577bd2f16581e3cbd/content/browser/accessibility/browser_accessibility_auralinux.cc
[modify] https://crrev.com/ca938cd8cd94496ea9e0ecf577bd2f16581e3cbd/content/browser/accessibility/browser_accessibility_auralinux.h
[modify] https://crrev.com/ca938cd8cd94496ea9e0ecf577bd2f16581e3cbd/content/browser/renderer_host/render_widget_host_view_aura.cc
[modify] https://crrev.com/ca938cd8cd94496ea9e0ecf577bd2f16581e3cbd/content/test/data/accessibility/html/a-expected-auralinux.txt
[modify] https://crrev.com/ca938cd8cd94496ea9e0ecf577bd2f16581e3cbd/ui/accessibility/platform/ax_platform_node_auralinux.cc
[modify] https://crrev.com/ca938cd8cd94496ea9e0ecf577bd2f16581e3cbd/ui/accessibility/platform/ax_platform_node_auralinux.h

Blockedon: 789099 789060

Sign in to add a comment