-
Dominic Mazzoni authored
Previously, any time there was a layout, the accessibility serialization code would scan every AXObject to see if any needed to update their bounding box. Instead, replace this with a mechanism that uses PaintInvalidator to mark AXObjects that might have dirty bounding boxes. Existing tests already provide some coverage; if you comment out the code in paint_invalidator.cc, a handful of browser tests fail. To provide even more coverage, a debug-only check walks the entire tree and ensures that no nodes have incorrect bounding boxes. If you try commenting out the code in paint_invalidator.cc now, hundreds of browser tests fail. This provides some good confidence that it's working correctly. Finally, add a new blink perf test demonstrating a simple scenario where this results in a dramatic speedup, just by focusing links in a document with a few thousand nodes. Bug: 1109081 AX-Relnotes: makes accessibility less sluggish on very large web pages Change-Id: I51a89d0b37ff356c5443b324080acefe0e7f3fbf Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2319411 Commit-Queue: Dominic Mazzoni <dmazzoni@chromium.org> Reviewed-by:
Xianzhu Wang <wangxianzhu@chromium.org> Reviewed-by:
Kentaro Hara <haraken@chromium.org> Reviewed-by:
Nektarios Paisios <nektar@chromium.org> Cr-Commit-Position: refs/heads/master@{#792949}
fd1c45a7