Branch: refs/heads/main
  Home:   https://github.com/WebKit/WebKit
  Commit: ab66a869bd96849bae619d4743ed46d30ad52149
      
https://github.com/WebKit/WebKit/commit/ab66a869bd96849bae619d4743ed46d30ad52149
  Author: Dominic Mazzoni <[email protected]>
  Date:   2025-08-05 (Tue, 05 Aug 2025)

  Changed paths:
    M Source/WebCore/Headers.cmake
    M Source/WebCore/Sources.txt
    M Source/WebCore/WebCore.xcodeproj/project.pbxproj
    M Source/WebCore/accessibility/AXGeometryManager.cpp
    M Source/WebCore/accessibility/AXGeometryManager.h
    M Source/WebCore/accessibility/AXLogger.h
    A Source/WebCore/accessibility/AXLoggerBase.cpp
    A Source/WebCore/accessibility/AXLoggerBase.h
    M Source/WebCore/accessibility/AXObjectCache.cpp
    M Source/WebCore/accessibility/AXSearchManager.cpp
    M Source/WebCore/accessibility/AXTextMarker.cpp
    M Source/WebCore/accessibility/AccessibilityNodeObject.cpp
    M Source/WebCore/accessibility/AccessibilityObject.cpp
    M Source/WebCore/accessibility/AccessibilityRenderObject.cpp
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp
    M Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h
    M Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm

  Log Message:
  -----------
  AX: fix broken and expensive ASSERTS in accessibility code
https://bugs.webkit.org/show_bug.cgi?id=296895
rdar://157501091

Reviewed by Tyler Wilcock.

We have ~100 ASSERTS in WebCore/accessibility, and of those I found 6
that are broken - they're asserting on live pages - and about 10 that
are called way too often, hundreds of thousands of times per minute.

Add AX_BROKEN_ASSERT that does a release log of the assertion failure -
but only if the accessibility log channel is enabled - and then
add AX_DEBUG_ASSERT for the really expensive ones and require
manually enabling those by the developer.

* Source/WebCore/Headers.cmake:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/accessibility/AXGeometryManager.cpp:
(WebCore::AXGeometryManager::cacheRect):
* Source/WebCore/accessibility/AXGeometryManager.h:
* Source/WebCore/accessibility/AXLogger.h:
* Source/WebCore/accessibility/AXLoggerBase.cpp: Added.
(setAccessibilityLogChannelEnabled):
(isAccessibilityLogChannelEnabled):
* Source/WebCore/accessibility/AXLoggerBase.h: Added.
* Source/WebCore/accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::AXObjectCache):
(WebCore::hasAnyRole):
(WebCore::AXObjectCache::getOrCreate):
* Source/WebCore/accessibility/AXSearchManager.cpp:
(WebCore::appendChildrenToArray):
* Source/WebCore/accessibility/AXTextMarker.cpp:
(WebCore::AXTextMarker::findLine const):
* Source/WebCore/accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::ownerParentObject const):
* Source/WebCore/accessibility/AccessibilityObject.cpp:
(WebCore::isTableComponent):
(WebCore::AccessibilityObject::insertChild):
* Source/WebCore/accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::addChildren):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::~AXIsolatedObject):
(WebCore::AXIsolatedObject::children):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::queueNodeUpdate):
* Source/WebCore/accessibility/isolatedtree/AXIsolatedTree.h:
(WebCore::AXIsolatedTree::objectForID const):
(WebCore::AXIsolatedTree::axObjectCache const):
* Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(-[WebAccessibilityObjectWrapperBase axBackingObject]):

Canonical link: https://commits.webkit.org/298252@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