Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(891)

Unified Diff: content/browser/accessibility/browser_accessibility_cocoa.mm

Issue 246773008: RWHI should implement BrowserAccessibilityDelegate (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix merge error Created 6 years, 8 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: content/browser/accessibility/browser_accessibility_cocoa.mm
diff --git a/content/browser/accessibility/browser_accessibility_cocoa.mm b/content/browser/accessibility/browser_accessibility_cocoa.mm
index 3b9cb92993e1a44c4f346126a6d880e4c5e77768..b5a42ef04e4f5e33acf1cac82cb5b022016b1518 100644
--- a/content/browser/accessibility/browser_accessibility_cocoa.mm
+++ b/content/browser/accessibility/browser_accessibility_cocoa.mm
@@ -307,12 +307,9 @@ NSDictionary* attributeToMethodNameMap = nil;
dict = nil;
}
-- (id)initWithObject:(BrowserAccessibility*)accessibility
- delegate:(id<BrowserAccessibilityDelegateCocoa>)delegate {
- if ((self = [super init])) {
+- (id)initWithObject:(BrowserAccessibility*)accessibility {
+ if ((self = [super init]))
browserAccessibility_ = accessibility;
- delegate_ = delegate;
- }
return self;
}
@@ -666,8 +663,7 @@ NSDictionary* attributeToMethodNameMap = nil;
- (NSValue*)position {
NSPoint origin = [self origin];
NSSize size = [[self size] sizeValue];
- NSPoint pointInScreen =
- [delegate_ accessibilityPointInScreen:origin size:size];
+ NSPoint pointInScreen = [self pointInScreen:origin size:size];
return [NSValue valueWithPoint:pointInScreen];
}
@@ -681,6 +677,22 @@ NSDictionary* attributeToMethodNameMap = nil;
return static_cast<ui::AXRole>(browserAccessibility_->GetRole());
}
+- (content::BrowserAccessibilityDelegate*)delegate {
+ return browserAccessibility_->manager() ?
+ browserAccessibility_->manager()->delegate() :
+ nil;
+}
+
+- (NSPoint)pointInScreen:(NSPoint)origin
+ size:(NSSize)size {
+ if (!browserAccessibility_)
+ return NSZeroPoint;
+
+ gfx::Rect bounds(origin.x, origin.y, size.width, size.height);
+ gfx::Point point = [self delegate]->AccessibilityOriginInScreen(bounds);
+ return NSMakePoint(point.x(), point.y());
+}
+
// Returns a string indicating the NSAccessibility role of this object.
- (NSString*)role {
ui::AXRole role = [self internalRole];
@@ -1005,7 +1017,13 @@ NSDictionary* attributeToMethodNameMap = nil;
}
- (id)window {
- return [delegate_ window];
+ if (!browserAccessibility_)
+ return nil;
+
+ BrowserAccessibilityManagerMac* manager =
+ static_cast<BrowserAccessibilityManagerMac*>(
+ browserAccessibility_->manager());
+ return [manager->parent_view() window];
}
- (NSString*)methodNameForAttribute:(NSString*)attribute {
@@ -1161,8 +1179,7 @@ NSDictionary* attributeToMethodNameMap = nil;
range.location, range.length);
NSPoint origin = NSMakePoint(rect.x(), rect.y());
NSSize size = NSMakeSize(rect.width(), rect.height());
- NSPoint pointInScreen =
- [delegate_ accessibilityPointInScreen:origin size:size];
+ NSPoint pointInScreen = [self pointInScreen:origin size:size];
NSRect nsrect = NSMakeRect(
pointInScreen.x, pointInScreen.y, rect.width(), rect.height());
return [NSValue valueWithRect:nsrect];
@@ -1466,11 +1483,13 @@ NSDictionary* attributeToMethodNameMap = nil;
if (!browserAccessibility_)
return;
- // TODO(feldstein): Support more actions.
- if ([action isEqualToString:NSAccessibilityPressAction])
- [delegate_ doDefaultAction:browserAccessibility_->GetId()];
- else if ([action isEqualToString:NSAccessibilityShowMenuAction])
- [delegate_ performShowMenuAction:self];
+ // TODO(dmazzoni): Support more actions.
+ if ([action isEqualToString:NSAccessibilityPressAction]) {
+ [self delegate]->AccessibilityDoDefaultAction(
+ browserAccessibility_->GetId());
+ } else if ([action isEqualToString:NSAccessibilityShowMenuAction]) {
+ [self delegate]->AccessibilityShowMenu(browserAccessibility_->GetId());
+ }
}
// Returns the description of the given action.
@@ -1496,15 +1515,14 @@ NSDictionary* attributeToMethodNameMap = nil;
if ([attribute isEqualToString:NSAccessibilityFocusedAttribute]) {
NSNumber* focusedNumber = value;
BOOL focused = [focusedNumber intValue];
- [delegate_ setAccessibilityFocus:focused
- accessibilityId:browserAccessibility_->GetId()];
+ if (focused)
+ [self delegate]->AccessibilitySetFocus(browserAccessibility_->GetId());
}
if ([attribute isEqualToString:NSAccessibilitySelectedTextRangeAttribute]) {
NSRange range = [(NSValue*)value rangeValue];
- [delegate_
- accessibilitySetTextSelection:browserAccessibility_->GetId()
- startOffset:range.location
- endOffset:range.location + range.length];
+ [self delegate]->AccessibilitySetTextSelection(
+ browserAccessibility_->GetId(),
+ range.location, range.location + range.length);
}
}

Powered by Google App Engine
This is Rietveld 408576698