Index: content/browser/accessibility/browser_accessibility_manager.cc |
diff --git a/content/browser/accessibility/browser_accessibility_manager.cc b/content/browser/accessibility/browser_accessibility_manager.cc |
index 0bc4260ac629c53f97b73de99dfd7371a88ace76..00295843e7cdb09c32b6f93042fb8e306bcd708c 100644 |
--- a/content/browser/accessibility/browser_accessibility_manager.cc |
+++ b/content/browser/accessibility/browser_accessibility_manager.cc |
@@ -362,8 +362,9 @@ void BrowserAccessibilityManager::SetTextSelection( |
} |
gfx::Rect BrowserAccessibilityManager::GetViewBounds() { |
- if (delegate_) |
- return delegate_->AccessibilityGetViewBounds(); |
+ BrowserAccessibilityDelegate* delegate = GetDelegateFromRootManager(); |
+ if (delegate) |
+ return delegate->AccessibilityGetViewBounds(); |
return gfx::Rect(); |
} |
@@ -433,6 +434,14 @@ void BrowserAccessibilityManager::OnNodeChangeFinished(ui::AXNode* node) { |
GetFromAXNode(node)->OnUpdateFinished(); |
} |
+BrowserAccessibilityDelegate* |
+ BrowserAccessibilityManager::GetDelegateFromRootManager() { |
+ BrowserAccessibilityManager* manager = this; |
+ while (manager->GetRoot()->GetParent()) |
+ manager = manager->GetRoot()->GetParent()->manager(); |
+ return manager->delegate(); |
+} |
+ |
ui::AXTreeUpdate BrowserAccessibilityManager::SnapshotAXTreeForTesting() { |
scoped_ptr<ui::AXTreeSource<const ui::AXNode*> > tree_source( |
tree_->CreateTreeSource()); |