Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: fca78fce775fba96c3a1d413450307c5ba24e723
      
https://github.com/WebKit/WebKit/commit/fca78fce775fba96c3a1d413450307c5ba24e723
  Author: Zak Ridouh <[email protected]>
  Date:   2026-10-11 (Sun, 11 Oct 2026)

  Changed paths:
    M Source/WebCore/accessibility/AccessibilityScrollView.cpp

  Log Message:
  -----------
  ASSERTION FAILED: children[i]->indexInParent() == i in 
AccessibilityScrollView::addChildren for a page with a cross-origin iframe
https://bugs.webkit.org/show_bug.cgi?id=327051
rdar://189658986

Reviewed by Tyler Wilcock.

AccessibilityScrollView::addRemoteFrameChild() bound a new AXRemoteFrame before 
it added it as a child.
Binding passes the scroll view's wrapper to +[NSAccessibilityRemoteUIElement 
remoteTokenForLocalUIElement:],
and AppKit can ask that wrapper for its window (it does while the screen-lock 
shield is showing). The
wrapper's updateBackingStore() calls updateChildrenIfNecessary(), which always 
rebuilds the scroll view's
children, so the nested call added the remote frame and the outer call added it 
again, at index 1.

Add the child before binding, so a nested rebuild leaves one child.

No new tests. A layout test can't make AppKit call back. With that callback 
simulated,
http/tests/site-isolation/accessibility/focus-in-remote-frame.html and the two 
Web Inspector tests
in the bug crash before this change and pass after it.

* Source/WebCore/accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::addRemoteFrameChild):

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



To unsubscribe from these emails, change your notification settings at 
https://github.com/WebKit/WebKit/settings/notifications

Reply via email to