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..82fd873279a33eb6c1c37eba521227221b4c97ce 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() { |
+ BrowserAccessibility* root = GetRoot(); |
David Tseng
2015/01/15 22:33:27
Would maybe be cleaner to just hold a pointer to B
dmazzoni
2015/01/15 23:09:22
Done.
|
+ while (root->GetParent()) |
+ root = root->GetParent()->manager()->GetRoot(); |
+ return root->manager()->delegate(); |
+} |
+ |
ui::AXTreeUpdate BrowserAccessibilityManager::SnapshotAXTreeForTesting() { |
scoped_ptr<ui::AXTreeSource<const ui::AXNode*> > tree_source( |
tree_->CreateTreeSource()); |