Merge to M44: An accessibility tree update with two roots should be rejected.

If an AXTreeUpdate had two root nodes, the second one would cause the
first one to be deleted, but that could leave dangling pointers in
|pending_nodes|. Fix this by first ensuring that |pending_nodes| is
always cleaned up when nodse are deleted, but also by specifically
returning an error if we encounter two root nodes since that should
never happen.

BUG=479743

Review URL: https://codereview.chromium.org/1151393006

Cr-Commit-Position: refs/heads/master@{#332212}
(cherry picked from commit e3b7faf115bcd4fec56b1658e60abe077d77f379)

Review URL: https://codereview.chromium.org/1156503007

Cr-Commit-Position: refs/branch-heads/2403@{#208}
Cr-Branched-From: f54b8097a9c45ed4ad308133d49f05325d6c5070-refs/heads/master@{#330231}
3 files changed