<html>
    <head>
      <base href="https://bugs.webkit.org/">
    </head>
    <body>
      <p>
        <div>
            <b><a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - AX: Improve performance of addChildren()/childrenChanged()"
   href="https://bugs.webkit.org/show_bug.cgi?id=171443#c2">Comment # 2</a>
              on <a class="bz_bug_link 
          bz_status_NEW "
   title="NEW - AX: Improve performance of addChildren()/childrenChanged()"
   href="https://bugs.webkit.org/show_bug.cgi?id=171443">bug 171443</a>
              from <span class="vcard"><a class="email" href="mailto:cfleizach@apple.com" title="chris fleizach <cfleizach@apple.com>"> <span class="fn">chris fleizach</span></a>
</span></b>
        <pre>Comment on <span class=""><a href="attachment.cgi?id=308572&action=diff" name="attach_308572" title="patch">attachment 308572</a> <a href="attachment.cgi?id=308572&action=edit" title="patch">[details]</a></span>
patch

View in context: <a href="https://bugs.webkit.org/attachment.cgi?id=308572&action=review">https://bugs.webkit.org/attachment.cgi?id=308572&action=review</a>

<span class="quote">> Source/WebCore/ChangeLog:8
> +        There's a lot of unnecessary work happening when childrenChanged() being called.</span >

"is" being called

<span class="quote">> Source/WebCore/ChangeLog:15
> +        2. In addChild() method we are calling accessibilityIsIgnored() on each child and that </span >

In the...

<span class="quote">> Source/WebCore/ChangeLog:19
> +        3. Reduced the amount work of ARIA text controls updating its parents in childrenChanged() </span >

text controls "performs when" updating

<span class="quote">> Source/WebCore/ChangeLog:22
> +        No new tests since this didn't change any functionality. </span >

I think we could add a test for this by getting a reference to an axObject, marking a subtree dirty, then verifying that reference (in the test) is still valid

in the old case, that element would have become invalid because it was thrown away and recreated. In the new case it should still be there even after the sub tree was cleared (likewise, we can probably get a reference to a dirty subtree object and ensure that it is indeed invalid after the update)

<span class="quote">> Source/WebCore/ChangeLog:38
> +        (WebCore::AccessibilityObject::setNeedsToUpdateSubTree):</span >

I suspect SubTree should be Subtree (pls check if there are other instances in WebKit code)

<span class="quote">> Source/WebCore/accessibility/AccessibilityNodeObject.cpp:348
> +    // Only clear the child's children when we know it's in the updating chain in order to avoid unnecessary works.</span >

work.

<span class="quote">> Source/WebCore/accessibility/AccessibilityNodeObject.cpp:351
> +        // Pass m_subTreeDirty flag down to the child so that children cache get reset properly.</span >

gets

<span class="quote">> Source/WebCore/accessibility/AccessibilityNodeObject.cpp:376
> +    // reset the child's m_isIgnoredFromParentData since we are done adding that child and its children.</span >

Reset

<span class="quote">> Source/WebCore/accessibility/AccessibilityObject.h:1095
> +    void setIsIgnoredFromParentData(AccessibilityIsIgnoredFromParentData data) { m_isIgnoredFromParentData = data; }</span >

should this be AccessibilityIsIgnoredFromParentData&

<span class="quote">> Source/WebCore/accessibility/AccessibilityObject.h:1096
> +    void setIsIgnoredFromParentDataForChild(AccessibilityObject*);</span >

const AccessibilityObject</pre>
        </div>
      </p>


      <hr>
      <span>You are receiving this mail because:</span>

      <ul>
          <li>You are the assignee for the bug.</li>
      </ul>
    </body>
</html>