Add ax action internalInvalidateTree

This change allows a target process or anything outside of the context of a
source tree to request that its source tree be invalidated.

We make use of this new action in the Automation Internal browser side api, when
a client extension's automation bindings requests an enable frame. Typically,
chrome.automationInternal.enableFrame gets called whenever the extension process
encounters a new child tree. This, in turn, resets state within the tree source
and triggers a re-send of all tree data and node data on the next event.

The action is hooked up to one tree source (ARC++).

Bug: 929522
Test: toggle on ChromeVox, interact with Play Store. Toggle off and then back on
ChromeVox, interact with Play Store. Repeat this several times. ChromeVox should
work throughout.

Change-Id: I8e2a729f079f932d06a615bb5fcca9ebbe7365f2
Commit-Queue: David Tseng <>
Reviewed-by: Katie Dektar <>
Reviewed-by: Dominic Mazzoni <>
Cr-Commit-Position: refs/heads/master@{#652629}
10 files changed