New issue
Advanced search Search tips

Issue 876882 link

Starred by 1 user

Issue metadata

Status: Available
Owner: ----
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug
Team-Accessibility



Sign in to add a comment

Enabling ChromeVox sends 4 copies of the AX node tree to the extension

Project Member Reported by jamescook@chromium.org, Aug 22

Issue description

ToT f531aaf8e629237000c645f6046ea2be0857ed66 linux-chromeos

Patch in https://chromium-review.googlesource.com/c/chromium/src/+/1185858 which adds some logging.

* Turn off ChromeVox
* Restart Chrome
* Ensure 1 browser window is open
* Turn on ChromeVox

AutomationManagerAura::Enable() is called 4 times, from AutomationInternalEnableDesktopFunction::Run().

Each calls serializes the entire desktop node tree and sends it to the extension.

This seems inefficient to me.

(I noticed this while debugging a problem with the keyboard shortcut viewer app, which has an early-exit for automation being enabled multiple times. My early-exit sometimes breaks ChromeVox, which seems to rely on this multiple-enable behavior.)

 
Thanks for the bug. Note that the serializer itself is smart enough to not re-serialize the entire tree every time serilize gets called unless you delete the serializer. Can you check this? The way to know if by logging in ChromeVox's renderer, where the final contents of the serialization gets received (for later unserialization).

c/r/extensions/automation_internal_custom_bindings.cc.

Every call to AutomationManagerAura::Enable() deletes the serializer, despite the boolean parameter to Reset() that says not to reset it.

https://cs.chromium.org/chromium/src/chrome/browser/ui/aura/accessibility/automation_manager_aura.cc?q=automation_manager_aura.cc&sq=package:chromium&l=88

https://cs.chromium.org/chromium/src/chrome/browser/ui/aura/accessibility/automation_manager_aura.cc?sq=package:chromium&g=0&l=180

Logging in AutomationInternalCustomBindings::OnAccessibilityEvents shows 4 copies of AXEventloadComplete when I turn on ChromeVox with no browser windows open.

Labels: a11y-devs
Status: available (was: Untriaged)
Labels: -a11y-devs Needs-Investigation
Components: -UI>Accessibility>ChromeVox Internals>Accessibility
Labels: -Pri-3 -Needs-Investigation Pri-2
Bumping up to P2. I'm still seeing this.

Sign in to add a comment