Changeset 258047 in webkit


Ignore:
Timestamp:
Mar 6, 2020 6:06:27 PM (4 years ago)
Author:
Andres Gonzalez
Message:

Implementation of AccessibilitySupport AXSIsolatedTreeMode.
https://bugs.webkit.org/show_bug.cgi?id=208691

Reviewed by Chris Fleizach.

Source/WebCore:

Support for the AccessibilitySupport AXIsolatedTreMode accessibility setting.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::isolatedTreeFocusedObject):
(WebCore::AXObjectCache::focusedUIElementForPage):
(WebCore::AXObjectCache::isIsolatedTreeEnabled):
(WebCore::AXObjectCache::rootObject):
(WebCore::AXObjectCache::isolatedTreeRootObject):
(WebCore::AXObjectCache::canUseSecondaryAXThread):

  • accessibility/AXObjectCache.h:
  • accessibility/mac/WebAccessibilityObjectWrapperBase.mm:

(-[WebAccessibilityObjectWrapperBase detach]):
(-[WebAccessibilityObjectWrapperBase axBackingObject]):

  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):

Source/WebCore/PAL:

  • pal/spi/cocoa/AccessibilitySupportSPI.h:

Added constants and prototypes used in AXIsolatedTreeMode support.

Source/WebKit:

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:

(-[WKAccessibilityWebPageObject accessibilityHitTest:]):
Honors AXIsolatedTreeMode setting.

Location:
trunk/Source
Files:
1 added
11 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r258044 r258047  
     12020-03-06  Andres Gonzalez  <andresg_22@apple.com>
     2
     3        Implementation of AccessibilitySupport AXSIsolatedTreeMode.
     4        https://bugs.webkit.org/show_bug.cgi?id=208691
     5
     6        Reviewed by Chris Fleizach.
     7
     8        Support for the AccessibilitySupport AXIsolatedTreMode accessibility setting.
     9
     10        * accessibility/AXObjectCache.cpp:
     11        (WebCore::AXObjectCache::isolatedTreeFocusedObject):
     12        (WebCore::AXObjectCache::focusedUIElementForPage):
     13        (WebCore::AXObjectCache::isIsolatedTreeEnabled):
     14        (WebCore::AXObjectCache::rootObject):
     15        (WebCore::AXObjectCache::isolatedTreeRootObject):
     16        (WebCore::AXObjectCache::canUseSecondaryAXThread):
     17        * accessibility/AXObjectCache.h:
     18        * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
     19        (-[WebAccessibilityObjectWrapperBase detach]):
     20        (-[WebAccessibilityObjectWrapperBase axBackingObject]):
     21        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
     22        (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
     23
    1242020-03-06  Simon Fraser  <simon.fraser@apple.com>
    225
  • trunk/Source/WebCore/PAL/ChangeLog

    r258046 r258047  
     12020-03-06  Andres Gonzalez  <andresg_22@apple.com>
     2
     3        Implementation of AccessibilitySupport AXSIsolatedTreeMode.
     4        https://bugs.webkit.org/show_bug.cgi?id=208691
     5
     6        Reviewed by Chris Fleizach.
     7
     8        * pal/spi/cocoa/AccessibilitySupportSPI.h:
     9        Added constants and prototypes used in AXIsolatedTreeMode support.
     10
    1112020-03-06  Peng Liu  <peng.liu6@apple.com>
    212
  • trunk/Source/WebCore/PAL/PAL.xcodeproj/project.pbxproj

    r258026 r258047  
    341341                A3C66CDA1F462D6A009E6EE9 /* SessionID.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SessionID.cpp; sourceTree = "<group>"; };
    342342                A3C66CDB1F462D6A009E6EE9 /* SessionID.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SessionID.h; sourceTree = "<group>"; };
     343                C037494124127CCB00D9A36E /* AccessibilitySupportSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AccessibilitySupportSPI.h; sourceTree = "<group>"; };
    343344                C15CBB3223F34A1200300CC7 /* NSUserDefaultsSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NSUserDefaultsSPI.h; sourceTree = "<group>"; };
    344345                C2147A4A1EFD0AA600056FA5 /* CopyPALHeaders.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = CopyPALHeaders.xcconfig; sourceTree = "<group>"; };
     
    412413                        isa = PBXGroup;
    413414                        children = (
     415                                C037494124127CCB00D9A36E /* AccessibilitySupportSPI.h */,
    414416                                576CA9D522B854AB0030143C /* AppSSOSPI.h */,
    415417                                2D02E93B2056FAA700A13797 /* AudioToolboxSPI.h */,
  • trunk/Source/WebCore/PAL/pal/PlatformMac.cmake

    r257762 r258047  
    2121    spi/cg/ImageIOSPI.h
    2222
     23    spi/cocoa/AccessibilitySupportSPI.h
    2324    spi/cocoa/AppSSOSPI.h
    2425    spi/cocoa/AuthKitSPI.h
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r258024 r258047  
    39793979                C0C054CC1118C8E400CE2636 /* generate-bindings.pl in Headers */ = {isa = PBXBuildFile; fileRef = 93F8B3070A300FEA00F61AB8 /* generate-bindings.pl */; settings = {ATTRIBUTES = (Private, ); }; };
    39803980                C0C054CD1118C8E400CE2636 /* IDLParser.pm in Headers */ = {isa = PBXBuildFile; fileRef = 14813BF309EDF88E00F757E1 /* IDLParser.pm */; settings = {ATTRIBUTES = (Private, ); }; };
     3981                C0E2F3272412BF29009C73EC /* libAccessibility.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = C0E2F3252412BF29009C73EC /* libAccessibility.tbd */; };
    39813982                C0F2A44113869AAB0066C534 /* preprocessor.pm in Headers */ = {isa = PBXBuildFile; fileRef = C0F2A43F13869A280066C534 /* preprocessor.pm */; settings = {ATTRIBUTES = (Private, ); }; };
    39823983                C105DA640F3AA6B8001DD44F /* TextEncodingDetector.h in Headers */ = {isa = PBXBuildFile; fileRef = C105DA630F3AA6B8001DD44F /* TextEncodingDetector.h */; };
     
    1350213503                C046E1AB1208A9FE00BA2CF7 /* LocalizedStrings.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LocalizedStrings.cpp; sourceTree = "<group>"; };
    1350313504                C078376023DF253E00C9C5C8 /* AXIsolatedObjectMac.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = AXIsolatedObjectMac.mm; path = mac/AXIsolatedObjectMac.mm; sourceTree = "<group>"; };
     13505                C0E2F3252412BF29009C73EC /* libAccessibility.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libAccessibility.tbd; path = usr/lib/libAccessibility.tbd; sourceTree = SDKROOT; };
    1350413506                C0F2A43F13869A280066C534 /* preprocessor.pm */ = {isa = PBXFileReference; lastKnownFileType = text.script.perl; name = preprocessor.pm; path = scripts/preprocessor.pm; sourceTree = "<group>"; };
    1350513507                C105DA610F3AA68F001DD44F /* TextEncodingDetectorICU.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextEncodingDetectorICU.cpp; sourceTree = "<group>"; };
     
    1597115973                                1AB33DA512551E320024457A /* IOKit.framework in Frameworks */,
    1597215974                                93F19B1608245E59001E9ABC /* JavaScriptCore.framework in Frameworks */,
     15975                                C0E2F3272412BF29009C73EC /* libAccessibility.tbd in Frameworks */,
    1597315976                                1C022F0022CFED68006DF01B /* libcompression.tbd in Frameworks */,
    1597415977                                93F19B1708245E59001E9ABC /* libicucore.dylib in Frameworks */,
     
    1657016573                                1AB33DA412551E320024457A /* IOKit.framework */,
    1657116574                                F8216299029F4FB501000131 /* JavaScriptCore.framework */,
     16575                                C0E2F3252412BF29009C73EC /* libAccessibility.tbd */,
    1657216576                                1C8D26D022C09CDE00D125F3 /* libcompression.tbd */,
    1657316577                                93F1D31A0558CC5C00821BC0 /* libicucore.dylib */,
  • trunk/Source/WebCore/accessibility/AXObjectCache.cpp

    r258034 r258047  
    105105
    106106#if ENABLE(ACCESSIBILITY_ISOLATED_TREE) && PLATFORM(MAC)
     107#include <pal/spi/cocoa/AccessibilitySupportSPI.h>
    107108#include <pal/spi/mac/HIServicesSPI.h>
    108109#endif
     
    393394        // Now that we have created our tree, initialize the secondary thread,
    394395        // so future requests come in on the other thread.
    395         _AXUIElementUseSecondaryAXThread(true);
     396        if (_AXSIsolatedTreeMode() == AXSIsolatedTreeModeSecondaryThread)
     397            _AXUIElementUseSecondaryAXThread(true);
    396398    }
    397399
     
    431433
    432434#if ENABLE(ACCESSIBILITY_ISOLATED_TREE)
    433     if (clientSupportsIsolatedTree())
     435    if (isIsolatedTreeEnabled())
    434436        return isolatedTreeFocusedObject(*focusedDocument);
    435437#endif
     
    727729        || type == kAXClientTypeUnknown;
    728730}
     731
     732bool AXObjectCache::isIsolatedTreeEnabled()
     733{
     734    return _AXSIsolatedTreeMode() != AXSIsolatedTreeModeOff && clientSupportsIsolatedTree();
     735}
    729736#endif
    730737
     
    735742
    736743#if ENABLE(ACCESSIBILITY_ISOLATED_TREE)
    737     if (clientSupportsIsolatedTree())
     744    if (isIsolatedTreeEnabled())
    738745        return isolatedTreeRootObject();
    739746#endif
     
    756763        // Now that we have created our tree, initialize the secondary thread,
    757764        // so future requests come in on the other thread.
    758         _AXUIElementUseSecondaryAXThread(true);
     765        if (_AXSIsolatedTreeMode() == AXSIsolatedTreeModeSecondaryThread)
     766            _AXUIElementUseSecondaryAXThread(true);
    759767    }
    760768
     
    777785    // LayoutTests, but we still want to run LayoutTests using isolated tree on
    778786    // a secondary thread to simulate the actual execution.
    779     return clientSupportsIsolatedTree();
     787    return _AXSIsolatedTreeMode() == AXSIsolatedTreeModeSecondaryThread && clientSupportsIsolatedTree();
    780788#else
    781789    return false;
  • trunk/Source/WebCore/accessibility/AXObjectCache.h

    r257739 r258047  
    353353
    354354#if ENABLE(ACCESSIBILITY_ISOLATED_TREE)
    355     WEBCORE_EXPORT static bool clientSupportsIsolatedTree();
     355    WEBCORE_EXPORT static bool isIsolatedTreeEnabled();
    356356private:
     357    static bool clientSupportsIsolatedTree();
    357358    AXCoreObject* isolatedTreeRootObject();
    358359    static AXCoreObject* isolatedTreeFocusedObject(Document&);
  • trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperBase.mm

    r257255 r258047  
    328328#if ENABLE(ACCESSIBILITY_ISOLATED_TREE)
    329329    if (!isMainThread()) {
    330         ASSERT(AXObjectCache::clientSupportsIsolatedTree());
     330        ASSERT(AXObjectCache::isIsolatedTreeEnabled());
    331331        [self detachIsolatedObject];
    332332        return;
     
    367367#if ENABLE(ACCESSIBILITY_ISOLATED_TREE)
    368368    if (!isMainThread()) {
    369         ASSERT(AXObjectCache::clientSupportsIsolatedTree());
     369        ASSERT(AXObjectCache::isIsolatedTreeEnabled());
    370370        return m_isolatedObject;
    371371    }
  • trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm

    r258019 r258047  
    14781478
    14791479#if ENABLE(ACCESSIBILITY_ISOLATED_TREE)
    1480     if (_AXUIElementRequestServicedBySecondaryAXThread() && AXObjectCache::clientSupportsIsolatedTree())
     1480    if (AXObjectCache::isIsolatedTreeEnabled() && _AXUIElementRequestServicedBySecondaryAXThread())
    14811481        [additional addObject:NSAccessibilityRelativeFrameAttribute];
    14821482#endif
  • trunk/Source/WebKit/ChangeLog

    r258044 r258047  
     12020-03-06  Andres Gonzalez  <andresg_22@apple.com>
     2
     3        Implementation of AccessibilitySupport AXSIsolatedTreeMode.
     4        https://bugs.webkit.org/show_bug.cgi?id=208691
     5
     6        Reviewed by Chris Fleizach.
     7
     8        * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
     9        (-[WKAccessibilityWebPageObject accessibilityHitTest:]):
     10        Honors AXIsolatedTreeMode setting.
     11
    1122020-03-06  Simon Fraser  <simon.fraser@apple.com>
    213
  • trunk/Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm

    r255313 r258047  
    254254        // Isolated tree frames have the offset encoded into them so we don't need to undo here.
    255255#if ENABLE(ACCESSIBILITY_ISOLATED_TREE)
    256         bool queryingIsolatedTree = WebCore::AXObjectCache::clientSupportsIsolatedTree() && _AXUIElementRequestServicedBySecondaryAXThread();
    257         applyContentOffset = !queryingIsolatedTree;
     256        applyContentOffset = !WebCore::AXObjectCache::isIsolatedTreeEnabled() || !_AXUIElementRequestServicedBySecondaryAXThread();
    258257#endif
    259258        if (auto pluginView = WebKit::WebPage::pluginViewForFrame(protectedSelf->m_page->mainFrame()))
Note: See TracChangeset for help on using the changeset viewer.