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

Unified Diff: content/browser/renderer_host/render_widget_host_view_mac.mm

Issue 407493002: Revert of Migrate accessibility from RenderView to RenderFrame. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Created 6 years, 5 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/renderer_host/render_widget_host_view_mac.mm
diff --git a/content/browser/renderer_host/render_widget_host_view_mac.mm b/content/browser/renderer_host/render_widget_host_view_mac.mm
index 17c73d59ebbf3e858b5fdf33648e2828e763ba29..82255825b061d603f6d5bb7ab7924a237d65cb66 100644
--- a/content/browser/renderer_host/render_widget_host_view_mac.mm
+++ b/content/browser/renderer_host/render_widget_host_view_mac.mm
@@ -2065,13 +2065,14 @@
render_widget_host_->SetBackgroundOpaque(opaque);
}
-BrowserAccessibilityManager*
- RenderWidgetHostViewMac::CreateBrowserAccessibilityManager(
- BrowserAccessibilityDelegate* delegate) {
- return new BrowserAccessibilityManagerMac(
- cocoa_view_,
- BrowserAccessibilityManagerMac::GetEmptyDocument(),
- delegate);
+void RenderWidgetHostViewMac::CreateBrowserAccessibilityManagerIfNeeded() {
+ if (!GetBrowserAccessibilityManager()) {
+ SetBrowserAccessibilityManager(
+ new BrowserAccessibilityManagerMac(
+ cocoa_view_,
+ BrowserAccessibilityManagerMac::GetEmptyDocument(),
+ render_widget_host_));
+ }
}
gfx::Point RenderWidgetHostViewMac::AccessibilityOriginInScreen(
@@ -2086,9 +2087,33 @@
return gfx::Point(originInScreen.x, originInScreen.y);
}
-void RenderWidgetHostViewMac::AccessibilityShowMenu(const gfx::Point& point) {
- NSPoint location = NSMakePoint(point.x(), point.y());
+void RenderWidgetHostViewMac::OnAccessibilitySetFocus(int accObjId) {
+ // Immediately set the focused item even though we have not officially set
+ // focus on it as VoiceOver expects to get the focused item after this
+ // method returns.
+ BrowserAccessibilityManager* manager = GetBrowserAccessibilityManager();
+ if (manager)
+ manager->SetFocus(manager->GetFromID(accObjId), false);
+}
+
+void RenderWidgetHostViewMac::AccessibilityShowMenu(int accObjId) {
+ BrowserAccessibilityManager* manager = GetBrowserAccessibilityManager();
+ if (!manager)
+ return;
+ BrowserAccessibilityCocoa* obj =
+ manager->GetFromID(accObjId)->ToBrowserAccessibilityCocoa();
+
+ // Performs a right click copying WebKit's
+ // accessibilityPerformShowMenuAction.
+ NSPoint objOrigin = [obj origin];
+ NSSize size = [[obj size] sizeValue];
+ gfx::Point origin = AccessibilityOriginInScreen(
+ gfx::Rect(objOrigin.x, objOrigin.y, size.width, size.height));
+ NSPoint location = NSMakePoint(origin.x(), origin.y());
location = [[cocoa_view_ window] convertScreenToBase:location];
+ location.x += size.width/2;
+ location.y += size.height/2;
+
NSEvent* fakeRightClick = [NSEvent
mouseEventWithType:NSRightMouseDown
location:location
@@ -2102,6 +2127,8 @@
[cocoa_view_ mouseEvent:fakeRightClick];
}
+
+
void RenderWidgetHostViewMac::SetTextInputActive(bool active) {
if (active) {
@@ -3150,7 +3177,7 @@
- (id)accessibilityAttributeValue:(NSString *)attribute {
BrowserAccessibilityManager* manager =
- renderWidgetHostView_->GetHost()->GetRootBrowserAccessibilityManager();
+ renderWidgetHostView_->GetBrowserAccessibilityManager();
// Contents specifies document view of RenderWidgetHostViewCocoa provided by
// BrowserAccessibilityManager. Children includes all subviews in addition to
@@ -3175,28 +3202,25 @@
}
- (id)accessibilityHitTest:(NSPoint)point {
- BrowserAccessibilityManager* manager =
- renderWidgetHostView_->GetHost()->GetRootBrowserAccessibilityManager();
- if (!manager)
+ if (!renderWidgetHostView_->GetBrowserAccessibilityManager())
return self;
NSPoint pointInWindow = [[self window] convertScreenToBase:point];
NSPoint localPoint = [self convertPoint:pointInWindow fromView:nil];
localPoint.y = NSHeight([self bounds]) - localPoint.y;
- BrowserAccessibilityCocoa* root =
- manager->GetRoot()->ToBrowserAccessibilityCocoa();
+ BrowserAccessibilityCocoa* root = renderWidgetHostView_->
+ GetBrowserAccessibilityManager()->
+ GetRoot()->ToBrowserAccessibilityCocoa();
id obj = [root accessibilityHitTest:localPoint];
return obj;
}
- (BOOL)accessibilityIsIgnored {
- BrowserAccessibilityManager* manager =
- renderWidgetHostView_->GetHost()->GetRootBrowserAccessibilityManager();
- return !manager;
+ return !renderWidgetHostView_->GetBrowserAccessibilityManager();
}
- (NSUInteger)accessibilityGetIndexOf:(id)child {
BrowserAccessibilityManager* manager =
- renderWidgetHostView_->GetHost()->GetRootBrowserAccessibilityManager();
+ renderWidgetHostView_->GetBrowserAccessibilityManager();
// Only child is root.
if (manager &&
manager->GetRoot()->ToBrowserAccessibilityCocoa() == child) {
@@ -3208,7 +3232,7 @@
- (id)accessibilityFocusedUIElement {
BrowserAccessibilityManager* manager =
- renderWidgetHostView_->GetHost()->GetRootBrowserAccessibilityManager();
+ renderWidgetHostView_->GetBrowserAccessibilityManager();
if (manager) {
BrowserAccessibility* focused_item = manager->GetFocus(NULL);
DCHECK(focused_item);
« no previous file with comments | « content/browser/renderer_host/render_widget_host_view_mac.h ('k') | content/browser/web_contents/web_contents_impl.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698