Changeset 231937 in webkit


Ignore:
Timestamp:
May 17, 2018 6:27:48 PM (6 years ago)
Author:
n_wang@apple.com
Message:

AX: [macOS] Expose the primary screen height through AX API
https://bugs.webkit.org/show_bug.cgi?id=185742

Reviewed by Chris Fleizach.

Source/WebCore:

Added a new attribute to expose the primary screen size on both
WebAccessibilityObjectWrapper and WKAccessibilityWebPageObject.

Test: accessibility/mac/primary-screen-height.html

  • WebCore.xcodeproj/project.pbxproj:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.h:
  • accessibility/mac/WebAccessibilityObjectWrapperMac.mm:

(-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper primaryScreenHeight]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

  • platform/PlatformScreen.h:
  • platform/mac/PlatformScreenMac.mm:

(WebCore::screenRectForPrimaryScreen):

Source/WebKit:

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:

(-[WKAccessibilityWebPageObject accessibilityAttributeNames]):
(-[WKAccessibilityWebPageObject accessibilityAttributeValue:]):

Tools:

  • DumpRenderTree/mac/AccessibilityUIElementMac.mm:

(attributesOfElement):

  • WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:

(WTR::attributesOfElement):

LayoutTests:

  • accessibility/mac/primary-screen-height-expected.txt: Added.
  • accessibility/mac/primary-screen-height.html: Added.
Location:
trunk
Files:
2 added
13 edited

Legend:

Unmodified
Added
Removed
  • trunk/LayoutTests/ChangeLog

    r231935 r231937  
     12018-05-17  Nan Wang  <n_wang@apple.com>
     2
     3        AX: [macOS] Expose the primary screen height through AX API
     4        https://bugs.webkit.org/show_bug.cgi?id=185742
     5
     6        Reviewed by Chris Fleizach.
     7
     8        * accessibility/mac/primary-screen-height-expected.txt: Added.
     9        * accessibility/mac/primary-screen-height.html: Added.
     10
    1112018-05-17  Chris Dumez  <cdumez@apple.com>
    212
  • trunk/LayoutTests/platform/mac-wk1/TestExpectations

    r231714 r231937  
    515515webkit.org/b/182752 accessibility/mac/accessibility-make-first-responder.html [ Skip ]
    516516
     517# This test tests the rootElement on WK2.
     518webkit.org/b/185742 accessibility/mac/primary-screen-height.html [ Skip ]
     519
    517520# User-installed fonts test infrastructure is not present in WK1
    518521webkit.org/b/180062 fast/text/user-installed-fonts [ ImageOnlyFailure ]
  • trunk/Source/WebCore/ChangeLog

    r231935 r231937  
     12018-05-17  Nan Wang  <n_wang@apple.com>
     2
     3        AX: [macOS] Expose the primary screen height through AX API
     4        https://bugs.webkit.org/show_bug.cgi?id=185742
     5
     6        Reviewed by Chris Fleizach.
     7
     8        Added a new attribute to expose the primary screen size on both
     9        WebAccessibilityObjectWrapper and WKAccessibilityWebPageObject.
     10
     11        Test: accessibility/mac/primary-screen-height.html
     12
     13        * WebCore.xcodeproj/project.pbxproj:
     14        * accessibility/mac/WebAccessibilityObjectWrapperMac.h:
     15        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
     16        (-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
     17        (-[WebAccessibilityObjectWrapper primaryScreenHeight]):
     18        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
     19        * platform/PlatformScreen.h:
     20        * platform/mac/PlatformScreenMac.mm:
     21        (WebCore::screenRectForPrimaryScreen):
     22
    1232018-05-17  Chris Dumez  <cdumez@apple.com>
    224
  • trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj

    r231895 r231937  
    712712                29A812420FBB9C1D00510293 /* AccessibilityListBoxOption.h in Headers */ = {isa = PBXBuildFile; fileRef = 29A812240FBB9C1D00510293 /* AccessibilityListBoxOption.h */; };
    713713                29A812430FBB9C1D00510293 /* AccessibilityListBox.h in Headers */ = {isa = PBXBuildFile; fileRef = 29A812250FBB9C1D00510293 /* AccessibilityListBox.h */; };
    714                 29A812490FBB9CA900510293 /* WebAccessibilityObjectWrapperBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 29A812450FBB9CA900510293 /* WebAccessibilityObjectWrapperBase.h */; };
     714                29A812490FBB9CA900510293 /* WebAccessibilityObjectWrapperBase.h in Headers */ = {isa = PBXBuildFile; fileRef = 29A812450FBB9CA900510293 /* WebAccessibilityObjectWrapperBase.h */; settings = {ATTRIBUTES = (Private, ); }; };
    715715                29ACB212143E7128006BCA5F /* AccessibilityMockObject.h in Headers */ = {isa = PBXBuildFile; fileRef = 29ACB211143E7128006BCA5F /* AccessibilityMockObject.h */; };
    716716                29D7BCFA1444AF7D0070619C /* AccessibilitySpinButton.h in Headers */ = {isa = PBXBuildFile; fileRef = 29D7BCF91444AF7D0070619C /* AccessibilitySpinButton.h */; };
     
    32763276                AA2A5AD416A4861100975A25 /* SpeechSynthesis.h in Headers */ = {isa = PBXBuildFile; fileRef = AA2A5ABE16A485D500975A25 /* SpeechSynthesis.h */; };
    32773277                AA2A5AD616A4861600975A25 /* DOMWindowSpeechSynthesis.h in Headers */ = {isa = PBXBuildFile; fileRef = AA2A5AB916A485D500975A25 /* DOMWindowSpeechSynthesis.h */; };
    3278                 AA478A7F16CD70C3007D1BB4 /* WebAccessibilityObjectWrapperMac.h in Headers */ = {isa = PBXBuildFile; fileRef = AA478A7D16CD70C3007D1BB4 /* WebAccessibilityObjectWrapperMac.h */; };
     3278                AA478A7F16CD70C3007D1BB4 /* WebAccessibilityObjectWrapperMac.h in Headers */ = {isa = PBXBuildFile; fileRef = AA478A7D16CD70C3007D1BB4 /* WebAccessibilityObjectWrapperMac.h */; settings = {ATTRIBUTES = (Private, ); }; };
    32793279                AA4C3A770B2B1679002334A2 /* InlineStyleSheetOwner.h in Headers */ = {isa = PBXBuildFile; fileRef = AA4C3A750B2B1679002334A2 /* InlineStyleSheetOwner.h */; settings = {ATTRIBUTES = (Private, ); }; };
    32803280                AA5F3B8D16CC33D100455EB0 /* PlatformSpeechSynthesizerMock.h in Headers */ = {isa = PBXBuildFile; fileRef = AAE27B7516CBFC0D00623043 /* PlatformSpeechSynthesizerMock.h */; };
     
    2693226932                        buildActionMask = 2147483647;
    2693326933                        files = (
     26934                                29A812490FBB9CA900510293 /* WebAccessibilityObjectWrapperBase.h in Headers */,
     26935                                AA478A7F16CD70C3007D1BB4 /* WebAccessibilityObjectWrapperMac.h in Headers */,
    2693426936                                7CD0E2B81F80A4820016A4CE /* AbortController.h in Headers */,
    2693526937                                7CD0E2BF1F80A56E0016A4CE /* AbortSignal.h in Headers */,
     
    3072430726                                FD7F299413D4C0CB00AD9535 /* WaveShaperNode.h in Headers */,
    3072530727                                FD7F299713D4C0CB00AD9535 /* WaveShaperProcessor.h in Headers */,
    30726                                 29A812490FBB9CA900510293 /* WebAccessibilityObjectWrapperBase.h in Headers */,
    3072730728                                AAA728F716D1D8BC00D3BBC6 /* WebAccessibilityObjectWrapperIOS.h in Headers */,
    30728                                 AA478A7F16CD70C3007D1BB4 /* WebAccessibilityObjectWrapperMac.h in Headers */,
    3072930729                                2D3EF4481917915C00034184 /* WebActionDisablingCALayerDelegate.h in Headers */,
    3073030730                                71025ED31F99F0CE004A250C /* WebAnimation.h in Headers */,
  • trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.h

    r228531 r231937  
    3333#if PLATFORM(MAC)
    3434
     35#ifndef NSAccessibilityPrimaryScreenHeightAttribute
     36#define NSAccessibilityPrimaryScreenHeightAttribute @"_AXPrimaryScreenHeight"
     37#endif
     38
    3539@interface WebAccessibilityObjectWrapper : WebAccessibilityObjectWrapperBase
    3640
  • trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm

    r230782 r231937  
    16571657        objectAttributes = [objectAttributes arrayByAddingObjectsFromArray:@[ NSAccessibilityARIACurrentAttribute ]];
    16581658   
     1659    // AppKit needs to know the screen height in order to do the coordinate conversion.
     1660    objectAttributes = [objectAttributes arrayByAddingObjectsFromArray:@[ NSAccessibilityPrimaryScreenHeightAttribute ]];
     1661   
    16591662    return objectAttributes;
    16601663}
     
    18181821    CGPathRef transformedPath = [self convertPathToScreenSpace:path];
    18191822    return [self bezierPathFromPath:transformedPath];
     1823}
     1824
     1825- (NSNumber *)primaryScreenHeight
     1826{
     1827    FloatRect screenRect = screenRectForPrimaryScreen();
     1828    return [NSNumber numberWithFloat:screenRect.height()];
    18201829}
    18211830
     
    27012710    }
    27022711   
     2712    if ([attributeName isEqualToString: NSAccessibilityPrimaryScreenHeightAttribute])
     2713        return [self primaryScreenHeight];
    27032714    if ([attributeName isEqualToString: NSAccessibilityPositionAttribute])
    27042715        return [self position];
  • trunk/Source/WebCore/platform/PlatformScreen.h

    r230454 r231937  
    8686
    8787FloatRect screenRectForDisplay(PlatformDisplayID);
     88WEBCORE_EXPORT FloatRect screenRectForPrimaryScreen();
    8889
    8990WEBCORE_EXPORT FloatRect toUserSpace(const NSRect&, NSWindow *destination);
  • trunk/Source/WebCore/platform/mac/PlatformScreenMac.mm

    r231520 r231937  
    222222}
    223223
     224FloatRect screenRectForPrimaryScreen()
     225{
     226    return screenRectForDisplay(primaryScreenDisplayID());
     227}
     228
    224229FloatRect screenRect(Widget* widget)
    225230{
  • trunk/Source/WebKit/ChangeLog

    r231931 r231937  
     12018-05-17  Nan Wang  <n_wang@apple.com>
     2
     3        AX: [macOS] Expose the primary screen height through AX API
     4        https://bugs.webkit.org/show_bug.cgi?id=185742
     5
     6        Reviewed by Chris Fleizach.
     7
     8        * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
     9        (-[WKAccessibilityWebPageObject accessibilityAttributeNames]):
     10        (-[WKAccessibilityWebPageObject accessibilityAttributeValue:]):
     11
    1122018-05-17  Alex Christensen  <achristensen@webkit.org>
    213
  • trunk/Source/WebKit/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm

    r230211 r231937  
    4545#import <WebCore/ScrollView.h>
    4646#import <WebCore/Scrollbar.h>
     47#import <WebCore/WebAccessibilityObjectWrapperMac.h>
    4748#import <pal/spi/mac/NSAccessibilitySPI.h>
    4849#import <wtf/ObjcRuntimeExtras.h>
     
    7172                            NSAccessibilityRoleAttribute, NSAccessibilityRoleDescriptionAttribute, NSAccessibilityFocusedAttribute,
    7273                            NSAccessibilityParentAttribute, NSAccessibilityWindowAttribute, NSAccessibilityTopLevelUIElementAttribute,
    73                             NSAccessibilityPositionAttribute, NSAccessibilitySizeAttribute, NSAccessibilityChildrenAttribute, nil]);
     74                            NSAccessibilityPositionAttribute, NSAccessibilitySizeAttribute, NSAccessibilityChildrenAttribute, NSAccessibilityPrimaryScreenHeightAttribute, nil]);
    7475   
    7576    return m_attributeNames.get();
     
    147148        return [NSValue valueWithPoint:NSMakePoint(point.x(), point.y())];
    148149    }
     150   
     151    if ([attribute isEqualToString:NSAccessibilityPrimaryScreenHeightAttribute])
     152        return [[self accessibilityRootObjectWrapper] accessibilityAttributeValue:attribute];
    149153   
    150154    if ([attribute isEqualToString:NSAccessibilitySizeAttribute]) {
  • trunk/Tools/ChangeLog

    r231925 r231937  
     12018-05-17  Nan Wang  <n_wang@apple.com>
     2
     3        AX: [macOS] Expose the primary screen height through AX API
     4        https://bugs.webkit.org/show_bug.cgi?id=185742
     5
     6        Reviewed by Chris Fleizach.
     7
     8        * DumpRenderTree/mac/AccessibilityUIElementMac.mm:
     9        (attributesOfElement):
     10        * WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
     11        (WTR::attributesOfElement):
     12
    1132018-05-17  Commit Queue  <commit-queue@webkit.org>
    214
  • trunk/Tools/DumpRenderTree/mac/AccessibilityUIElementMac.mm

    r230782 r231937  
    159159            continue;
    160160       
     161        // Skip screen-specific information.
     162        if ([attribute isEqualToString:@"_AXPrimaryScreenHeight"])
     163            continue;
     164       
    161165        // accessibilityAttributeValue: can throw an if an attribute is not returned.
    162166        // For DumpRenderTree's purpose, we should ignore those exceptions
  • trunk/Tools/WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm

    r230782 r231937  
    173173            continue;
    174174       
     175        // Skip screen-specific information.
     176        if ([attribute isEqualToString:@"_AXPrimaryScreenHeight"])
     177            continue;
     178       
    175179        // accessibilityAttributeValue: can throw an if an attribute is not returned.
    176180        // For DumpRenderTree's purpose, we should ignore those exceptions
Note: See TracChangeset for help on using the changeset viewer.