Join GitHub today
GitHub is home to over 28 million developers working together to host and review code, manage projects, and build software together.Sign up
VBufStorage: Fix crash by not allowing the reusing of nodes with differing parents. #8930
Link to issue number:
Summary of the issue:
A web author can move a node from one place to another in the DOM. A web author can also move an accessible from one place to another within the accessibility tree, by dynamically changing aria-owns.
Description of how this pull request fixes the issue:
NVDA's virtualBuffer code now refuses to reuse an existing node when re-rendering a parent if the existing node has a different parent to what is being re-rendered.
Tested the speed of the German wikipedia page. Tested the speed of moving up and down the inbox in Gmail.
Known issues with pull request:
Change log entry:
However, it still allows nodes to change ordering within a given parent (if the existing node does not directly disallow this, such as in tables). If we do not keep this, the German wikipedia page becomes as slow as it used to be in NVDA 2018.3.
When you say change ordering, I assume you mean this includes adding or removing another node? If so, changing that would probably defeat the whole point of the speed-ups, no? I guess we can't tell the difference at this point between a node being added between two existing nodes (e.g. acb) and two nodes switching places (e.g. ba)? (Where a, b and c are chronologically ordered.)