• Dominic Mazzoni's avatar
    Fix crash in AXTreeSerializer after reparenting. · 898335c9
    Dominic Mazzoni authored
    This bug could be reproduced just by visiting https://www.lasestrellas.tv/
    with accessibility enabled on any platform. The issue was that reparenting
    caused AXTreeSerializer to call Reset, which deleted the whole client
    tree and forced re-serializing everything again. However, because some nodes
    in the tree were not attached to the root at the time Reset was called,
    |client_id_map_| still had some entries pointing to nodes that were no
    longer valid.
    
    The solution is for Reset() to explicitly clear out |client_id_map_|.
    
    Bug: 704045
    Change-Id: I0f1d7b24b547953970965fd49ec1a15fbade281e
    Reviewed-on: https://chromium-review.googlesource.com/1006073
    Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org>
    Reviewed-by: default avatarDavid Tseng <dtseng@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#550122}
    898335c9
ax_tree_serializer.h 21.4 KB