Bug 209409 - Avoid multiple unnecessary updates of the IsolatedTree.
Summary: Avoid multiple unnecessary updates of the IsolatedTree.
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: New Bugs (show other bugs)
Version: WebKit Nightly Build
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Andres Gonzalez
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2020-03-22 19:33 PDT by Andres Gonzalez
Modified: 2020-03-24 20:49 PDT (History)
9 users (show)

See Also:


Attachments
Patch (13.09 KB, patch)
2020-03-22 19:51 PDT, Andres Gonzalez
no flags Details | Formatted Diff | Diff
Patch (21.43 KB, patch)
2020-03-24 19:40 PDT, Andres Gonzalez
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Andres Gonzalez 2020-03-22 19:33:36 PDT
Avoid multiple unnecessary updates of the IsolatedTree.
Comment 1 Andres Gonzalez 2020-03-22 19:51:43 PDT
Created attachment 394238 [details]
Patch
Comment 2 chris fleizach 2020-03-22 20:20:20 PDT
Comment on attachment 394238 [details]
Patch

View in context: https://bugs.webkit.org/attachment.cgi?id=394238&action=review

> Source/WebCore/accessibility/AXObjectCache.cpp:-3147
> -    case AXChildrenChanged:

where do we handle the children changed case?

> Source/WebCore/accessibility/AXObjectCache.cpp:3129
> +            tree->updateSubtree(object);

do we need to remake the subtree here? or just remake this specific element attribute. for these attributes, I would think we just need to get the info for this element but leave the children as-is

> Source/WebCore/accessibility/AXObjectCache.cpp:3172
> +                tree->updateSubtree(*note.first);

childrenChanged should do the updateSubtree, but I think these other ones should just an updateIsolatedObject, that leaves the subtree alone

> Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:163
> +        auto child = createSubtree(*axChild, object->objectID(), attachWrapper, nodeChanges);

instead of creating a sub tree for all the children, can we check if the child already exists in the tree and not remake it here?
presumably if this child had it's childrenChanged, it would get a notification for this object right?
Comment 3 Andres Gonzalez 2020-03-24 19:40:48 PDT
Created attachment 394462 [details]
Patch
Comment 4 EWS 2020-03-24 20:48:39 PDT
Committed r258971: <https://trac.webkit.org/changeset/258971>

All reviewed patches have been landed. Closing bug and clearing flags on attachment 394462 [details].
Comment 5 Radar WebKit Bug Importer 2020-03-24 20:49:14 PDT
<rdar://problem/60857009>