Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: b2c71ed06e53c0b2ebbb7046b4a6cf210c193d51
      
https://github.com/WebKit/WebKit/commit/b2c71ed06e53c0b2ebbb7046b4a6cf210c193d51
  Author: Tyler Wilcock <[email protected]>
  Date:   2025-06-04 (Wed, 04 Jun 2025)

  Changed paths:
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp

  Log Message:
  -----------
  AX: VoiceOver reads "Processing page %infinity" when loading large pages like 
http://html.spec.whatwg.org/
https://bugs.webkit.org/show_bug.cgi?id=294055
rdar://152617082

Reviewed by Joshua Hoffman.

In AXIsolatedTree::resolveAppends, we report loading progress to ATs based how 
many objects we have left to create.
We do this by counting the number of objects we've created, and dividing that 
by the total number of objects that needed
to be created, giving us a percentage.

Because m_unresolvedPendingAppends can be modified while we create objects, we 
make a copy of the vector, and iterate
over that. This is where the bug stems from — if this collection is cleared, we 
will divide by m_unresolvedPendingAppends.size(),
which is zero, leading to an infinity result.

The fix is simple — divide by the size of the m_unresolvedPendingAppends copy 
instead, which must be greater than zero
and cannot be modified.

* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::resolveAppends):

Canonical link: https://commits.webkit.org/295858@main



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to