| 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 c8d2cdd25930438bab713376012e8ef039329366..2dab8982ca6a972ab263da9df06ac88423f118fc 100644
|
| --- a/content/browser/accessibility/browser_accessibility_manager.cc
|
| +++ b/content/browser/accessibility/browser_accessibility_manager.cc
|
| @@ -8,6 +8,7 @@
|
| #include "content/browser/accessibility/browser_accessibility.h"
|
| #include "content/browser/accessibility/frame_tree_accessibility.h"
|
| #include "content/common/accessibility_messages.h"
|
| +#include "ui/accessibility/ax_tree_serializer.h"
|
|
|
| namespace content {
|
|
|
| @@ -68,7 +69,7 @@ BrowserAccessibilityManager::BrowserAccessibilityManager(
|
| BrowserAccessibilityFactory* factory)
|
| : delegate_(delegate),
|
| factory_(factory),
|
| - tree_(new ui::AXTree()),
|
| + tree_(new ui::AXSerializableTree()),
|
| focus_(NULL),
|
| parent_frame_frame_id_(0),
|
| parent_frame_node_id_(0),
|
| @@ -82,7 +83,7 @@ BrowserAccessibilityManager::BrowserAccessibilityManager(
|
| BrowserAccessibilityFactory* factory)
|
| : delegate_(delegate),
|
| factory_(factory),
|
| - tree_(new ui::AXTree()),
|
| + tree_(new ui::AXSerializableTree()),
|
| focus_(NULL),
|
| osk_state_(OSK_ALLOWED) {
|
| tree_->SetDelegate(this);
|
| @@ -347,12 +348,34 @@ void BrowserAccessibilityManager::OnNodeChangeFinished(ui::AXNode* node) {
|
| GetFromAXNode(node)->OnUpdateFinished();
|
| }
|
|
|
| +ui::AXTreeUpdate BrowserAccessibilityManager::SnapshotAXTreeForTesting() {
|
| + scoped_ptr<ui::AXTreeSource<const ui::AXNode*> > tree_source(
|
| + tree_->CreateTreeSource());
|
| + ui::AXTreeSerializer<const ui::AXNode*> serializer(tree_source.get());
|
| + ui::AXTreeUpdate update;
|
| + serializer.SerializeChanges(tree_->GetRoot(), &update);
|
| + return update;
|
| +}
|
| +
|
| void BrowserAccessibilityManager::SetParentFrameIds(
|
| int parent_frame_frame_id, int parent_frame_node_id) {
|
| parent_frame_frame_id_ = parent_frame_frame_id;
|
| parent_frame_node_id_ = parent_frame_node_id;
|
| }
|
|
|
| +void BrowserAccessibilityManager::SetChildFrameId(
|
| + int node_id, int child_frame_id) {
|
| + BrowserAccessibility* node = GetFromID(node_id);
|
| + if (node) {
|
| + // The node id passed to us is the web area for the proxy frame.
|
| + // In order to replace this node with the child frame, set the
|
| + // child frame id on its parent.
|
| + BrowserAccessibility* node_parent = node->GetParent();
|
| + if (node_parent)
|
| + node_parent->SetChildFrameId(child_frame_id);
|
| + }
|
| +}
|
| +
|
| BrowserAccessibility* BrowserAccessibilityManager::GetCrossFrameParent() {
|
| FrameTreeAccessibility* frames = FrameTreeAccessibility::GetInstance();
|
| BrowserAccessibilityManager* parent_manager =
|
|
|