Title: [165159] trunk/Source/WebKit2
Revision
165159
Author
[email protected]
Date
2014-03-05 18:51:55 -0800 (Wed, 05 Mar 2014)

Log Message

AX: Support IOS Accessibility in WK2
https://bugs.webkit.org/show_bug.cgi?id=129527

Address review comments from Simon noted in bug.

* UIProcess/ios/WKContentView.mm:
(-[WKContentView _accessibilityRegisterUIProcessTokens]):
* WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.mm:
(-[WKAccessibilityWebPageObject init]):
(-[WKAccessibilityWebPageObject dealloc]):
* WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.h:
* WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
(-[WKAccessibilityWebPageObject accessibilityAttributeNames]):
(-[WKAccessibilityWebPageObject accessibilitySetValue:forAttribute:]):
(-[WKAccessibilityWebPageObject accessibilityAttributeValue:]):
(-[WKAccessibilityWebPageObject accessibilityAttributeValue:forParameter:]):
(-[WKAccessibilityWebPageObject accessibilityHitTest:]):

Modified Paths

Diff

Modified: trunk/Source/WebKit2/ChangeLog (165158 => 165159)


--- trunk/Source/WebKit2/ChangeLog	2014-03-06 02:30:51 UTC (rev 165158)
+++ trunk/Source/WebKit2/ChangeLog	2014-03-06 02:51:55 UTC (rev 165159)
@@ -1,3 +1,23 @@
+2014-03-05  Chris Fleizach  <[email protected]>
+
+        AX: Support IOS Accessibility in WK2
+        https://bugs.webkit.org/show_bug.cgi?id=129527
+
+        Address review comments from Simon noted in bug.
+
+        * UIProcess/ios/WKContentView.mm:
+        (-[WKContentView _accessibilityRegisterUIProcessTokens]):
+        * WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.mm:
+        (-[WKAccessibilityWebPageObject init]):
+        (-[WKAccessibilityWebPageObject dealloc]):
+        * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.h:
+        * WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm:
+        (-[WKAccessibilityWebPageObject accessibilityAttributeNames]):
+        (-[WKAccessibilityWebPageObject accessibilitySetValue:forAttribute:]):
+        (-[WKAccessibilityWebPageObject accessibilityAttributeValue:]):
+        (-[WKAccessibilityWebPageObject accessibilityAttributeValue:forParameter:]):
+        (-[WKAccessibilityWebPageObject accessibilityHitTest:]):
+
 2014-03-05  Dean Jackson  <[email protected]>
 
         [WebGL] Use WKSI to see what the system policy for WebGL is

Modified: trunk/Source/WebKit2/UIProcess/ios/WKContentView.mm (165158 => 165159)


--- trunk/Source/WebKit2/UIProcess/ios/WKContentView.mm	2014-03-06 02:30:51 UTC (rev 165158)
+++ trunk/Source/WebKit2/UIProcess/ios/WKContentView.mm	2014-03-06 02:51:55 UTC (rev 165159)
@@ -261,10 +261,10 @@
     if (_page->process().state() == WebProcessProxy::State::Running) {
         IPC::Connection* connection = _page->process().connection();
         WKAXStoreRemoteConnectionInformation(self, _page->process().processIdentifier(), connection->identifier().port, uuid.get());
+
+        IPC::DataReference elementToken = IPC::DataReference(reinterpret_cast<const uint8_t*>([remoteElementToken bytes]), [remoteElementToken length]);
+        _page->registerUIProcessAccessibilityTokens(elementToken, elementToken);
     }
-
-    IPC::DataReference elementToken = IPC::DataReference(reinterpret_cast<const uint8_t*>([remoteElementToken bytes]), [remoteElementToken length]);
-    _page->registerUIProcessAccessibilityTokens(elementToken, elementToken);
 }
 
 #pragma mark PageClientImpl methods

Modified: trunk/Source/WebKit2/WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.mm (165158 => 165159)


--- trunk/Source/WebKit2/WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.mm	2014-03-06 02:30:51 UTC (rev 165158)
+++ trunk/Source/WebKit2/WebProcess/WebPage/WKAccessibilityWebPageObjectIOS.mm	2014-03-06 02:51:55 UTC (rev 165159)
@@ -38,7 +38,7 @@
 
 @implementation WKAccessibilityWebPageObject
 
-- (id)init
+- (instancetype)init
 {
     self = [super init];
     if (!self)
@@ -49,6 +49,13 @@
     return self;
 }
 
+- (void)dealloc
+{
+    [[NSNotificationCenter defaultCenter] removeObserver:self];
+    [_remoteTokenData release];
+    [super dealloc];
+}
+
 - (void)_accessibilityCategoryInstalled:(id)notification
 {
     // Accessibility bundle will override this method so that it knows when to initialize the accessibility runtime within the WebProcess.
@@ -59,13 +66,6 @@
     return m_page->pageScaleFactor();
 }
 
-- (void)dealloc
-{
-    [[NSNotificationCenter defaultCenter] removeObserver:self];
-    self.remoteTokenData = nil;
-    [super dealloc];
-}
-
 @end
 
 #endif // PLATFORM(IOS)

Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.h (165158 => 165159)


--- trunk/Source/WebKit2/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.h	2014-03-06 02:30:51 UTC (rev 165158)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.h	2014-03-06 02:51:55 UTC (rev 165159)
@@ -26,13 +26,14 @@
 #ifndef WKAccessibilityWebPageObjectMac_h
 #define WKAccessibilityWebPageObjectMac_h
 
-#include "WKAccessibilityWebPageObjectBase.h"
 
 #if PLATFORM(MAC)
 
+#include "WKAccessibilityWebPageObjectBase.h"
+#include <wtf/RetainPtr.h>
+
 @interface WKAccessibilityWebPageObject : WKAccessibilityWebPageObjectBase {
-    NSArray* m_attributeNames;
-    NSMutableArray* m_accessibilityChildren;
+    RetainPtr<NSArray> m_attributeNames;
 }
 
 - (NSPoint)convertScreenPointToRootView:(NSPoint)point;

Modified: trunk/Source/WebKit2/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm (165158 => 165159)


--- trunk/Source/WebKit2/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm	2014-03-06 02:30:51 UTC (rev 165158)
+++ trunk/Source/WebKit2/WebProcess/WebPage/mac/WKAccessibilityWebPageObjectMac.mm	2014-03-06 02:51:55 UTC (rev 165159)
@@ -53,8 +53,6 @@
 - (void)dealloc
 {
     WKUnregisterUniqueIdForElement(self);
-    [m_accessibilityChildren release];
-    [m_attributeNames release];
     [m_parent release];
     [super dealloc];
 }
@@ -67,12 +65,12 @@
 - (NSArray *)accessibilityAttributeNames
 {
     if (!m_attributeNames)
-        m_attributeNames = [[NSArray alloc] initWithObjects:
+        m_attributeNames = adoptNS([[NSArray alloc] initWithObjects:
                             NSAccessibilityRoleAttribute, NSAccessibilityRoleDescriptionAttribute, NSAccessibilityFocusedAttribute,
                             NSAccessibilityParentAttribute, NSAccessibilityWindowAttribute, NSAccessibilityTopLevelUIElementAttribute,
-                            NSAccessibilityPositionAttribute, NSAccessibilitySizeAttribute, NSAccessibilityChildrenAttribute, nil];
+                            NSAccessibilityPositionAttribute, NSAccessibilitySizeAttribute, NSAccessibilityChildrenAttribute, nil]);
     
-    return m_attributeNames;
+    return m_attributeNames.get();
 }
 
 - (NSArray *)accessibilityParameterizedAttributeNames
@@ -101,7 +99,6 @@
 
 - (void)accessibilitySetValue:(id)value forAttribute:(NSString *)attribute
 {
-    return;
 }
 
 - (NSPoint)convertScreenPointToRootView:(NSPoint)point
@@ -130,14 +127,19 @@
     
     if ([attribute isEqualToString:NSAccessibilityParentAttribute])
         return m_parent;
+    
     if ([attribute isEqualToString:NSAccessibilityWindowAttribute])
         return [m_parent accessibilityAttributeValue:NSAccessibilityWindowAttribute];
+    
     if ([attribute isEqualToString:NSAccessibilityTopLevelUIElementAttribute])
         return [m_parent accessibilityAttributeValue:NSAccessibilityTopLevelUIElementAttribute];
+    
     if ([attribute isEqualToString:NSAccessibilityRoleAttribute])
         return NSAccessibilityGroupRole;
+    
     if ([attribute isEqualToString:NSAccessibilityRoleDescriptionAttribute])
         return NSAccessibilityRoleDescription(NSAccessibilityGroupRole, nil);
+    
     if ([attribute isEqualToString:NSAccessibilityFocusedAttribute])
         return [NSNumber numberWithBool:NO];
     
@@ -148,10 +150,12 @@
         const WebCore::FloatPoint& point = m_page->accessibilityPosition();
         return [NSValue valueWithPoint:NSMakePoint(point.x(), point.y())];
     }
+    
     if ([attribute isEqualToString:NSAccessibilitySizeAttribute]) {
         const IntSize& s = m_page->size();
         return [NSValue valueWithSize:NSMakeSize(s.width(), s.height())];
     }
+    
     if ([attribute isEqualToString:NSAccessibilityChildrenAttribute])
         return [self accessibilityChildren];
     
@@ -174,7 +178,7 @@
     
     if (toImpl(result.get())->type() == API::String::APIType)
         return CFBridgingRelease(WKStringCopyCFString(kCFAllocatorDefault, (WKStringRef)result.get()));
-    else if (toImpl(result.get())->type() == API::Boolean::APIType)
+    if (toImpl(result.get())->type() == API::Boolean::APIType)
         return [NSNumber numberWithBool:WKBooleanGetValue(static_cast<WKBooleanRef>(result.get()))];
     
     return nil;
@@ -185,8 +189,6 @@
     return YES;
 }
 
-#pragma clang diagnostic push
-#pragma clang diagnostic ignored "-Wdeprecated-declarations"
 - (id)accessibilityHitTest:(NSPoint)point
 {
     // Hit-test point comes in as bottom-screen coordinates. Needs to be normalized to the frame of the web page.
@@ -211,7 +213,6 @@
     
     return [[self accessibilityRootObjectWrapper] accessibilityHitTest:point];
 }
-#pragma clang diagnostic pop
 
 @end
 
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to