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 fb6784113b3bd565e561b0f4abb97b225962675b..d85cfae2c7da595893ebee43403e46a191042a3f 100644 |
--- a/content/browser/accessibility/browser_accessibility_manager.cc |
+++ b/content/browser/accessibility/browser_accessibility_manager.cc |
@@ -6,6 +6,7 @@ |
#include "base/logging.h" |
#include "content/browser/accessibility/browser_accessibility.h" |
+#include "content/browser/accessibility/frame_tree_accessibility.h" |
#include "content/common/accessibility_messages.h" |
namespace content { |
@@ -69,6 +70,8 @@ BrowserAccessibilityManager::BrowserAccessibilityManager( |
factory_(factory), |
tree_(new ui::AXTree()), |
focus_(NULL), |
+ parent_frame_frame_id_(kNoFrameId), |
+ parent_frame_node_id_(0), |
osk_state_(OSK_ALLOWED) { |
tree_->SetDelegate(this); |
} |
@@ -344,4 +347,19 @@ void BrowserAccessibilityManager::OnNodeChangeFinished(ui::AXNode* node) { |
GetFromAXNode(node)->OnUpdateFinished(); |
} |
+void BrowserAccessibilityManager::SetParentFrameIds( |
+ uint32 parent_frame_frame_id, uint32 parent_frame_node_id) { |
+ parent_frame_frame_id_ = parent_frame_frame_id; |
+ parent_frame_node_id_ = parent_frame_node_id; |
+} |
+ |
+BrowserAccessibility* BrowserAccessibilityManager::GetCrossFrameParent() { |
+ FrameTreeAccessibility* frames = FrameTreeAccessibility::GetInstance(); |
+ BrowserAccessibilityManager* parent_manager = |
+ frames->FindAccessibilityManagerById(parent_frame_frame_id_); |
+ if (!parent_manager) |
+ return NULL; |
+ return parent_manager->GetFromID(parent_frame_node_id_); |
+} |
+ |
} // namespace content |