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