| Index: content/browser/accessibility/browser_accessibility.cc
|
| diff --git a/content/browser/accessibility/browser_accessibility.cc b/content/browser/accessibility/browser_accessibility.cc
|
| index ce558fac8cc3446bc5e6f129a9e92f9f891d9e75..f7798a28dc7d41f635b4775fdfb224ffe9aaa830 100644
|
| --- a/content/browser/accessibility/browser_accessibility.cc
|
| +++ b/content/browser/accessibility/browser_accessibility.cc
|
| @@ -26,8 +26,7 @@ BrowserAccessibility* BrowserAccessibility::Create() {
|
|
|
| BrowserAccessibility::BrowserAccessibility()
|
| : manager_(NULL),
|
| - node_(NULL),
|
| - child_frame_tree_node_id_(0) {
|
| + node_(NULL) {
|
| }
|
|
|
| BrowserAccessibility::~BrowserAccessibility() {
|
| @@ -64,15 +63,6 @@ bool BrowserAccessibility::PlatformIsLeaf() const {
|
| }
|
|
|
| uint32 BrowserAccessibility::PlatformChildCount() const {
|
| - if (child_frame_tree_node_id_ &&
|
| - manager_ && manager_->delegate()) {
|
| - BrowserAccessibilityManager* child_manager =
|
| - manager_->delegate()->AccessibilityGetChildFrame(
|
| - child_frame_tree_node_id_);
|
| - if (child_manager)
|
| - return 1;
|
| - }
|
| -
|
| return PlatformIsLeaf() ? 0 : InternalChildCount();
|
| }
|
|
|
| @@ -93,18 +83,17 @@ bool BrowserAccessibility::IsDescendantOf(
|
|
|
| BrowserAccessibility* BrowserAccessibility::PlatformGetChild(
|
| uint32 child_index) const {
|
| - if (child_index == 0 && child_frame_tree_node_id_ &&
|
| - manager_ &&
|
| - manager_->delegate()) {
|
| + DCHECK(child_index < InternalChildCount());
|
| + BrowserAccessibility* result = InternalGetChild(child_index);
|
| +
|
| + if (result->HasBoolAttribute(ui::AX_ATTR_IS_AX_TREE_HOST)) {
|
| BrowserAccessibilityManager* child_manager =
|
| - manager_->delegate()->AccessibilityGetChildFrame(
|
| - child_frame_tree_node_id_);
|
| + manager_->delegate()->AccessibilityGetChildFrame(result->GetId());
|
| if (child_manager)
|
| - return child_manager->GetRoot();
|
| + result = child_manager->GetRoot();
|
| }
|
|
|
| - DCHECK(child_index < InternalChildCount());
|
| - return InternalGetChild(child_index);
|
| + return result;
|
| }
|
|
|
| BrowserAccessibility* BrowserAccessibility::GetPreviousSibling() {
|
| @@ -144,7 +133,16 @@ BrowserAccessibility* BrowserAccessibility::GetParent() const {
|
| ui::AXNode* parent = node_->parent();
|
| if (parent)
|
| return manager_->GetFromAXNode(parent);
|
| - return manager_->GetCrossFrameParent();
|
| +
|
| + if (!manager_->delegate())
|
| + return NULL;
|
| +
|
| + BrowserAccessibility* host_node =
|
| + manager_->delegate()->AccessibilityGetParentFrame();
|
| + if (!host_node)
|
| + return NULL;
|
| +
|
| + return host_node->GetParent();
|
| }
|
|
|
| int32 BrowserAccessibility::GetIndexInParent() const {
|
| @@ -702,10 +700,4 @@ int BrowserAccessibility::GetStaticTextLenRecursive() const {
|
| return len;
|
| }
|
|
|
| -void BrowserAccessibility::SetChildFrameTreeNodeId(
|
| - int64 child_frame_tree_node_id) {
|
| - child_frame_tree_node_id_ = child_frame_tree_node_id;
|
| - manager_->NotifyAccessibilityEvent(ui::AX_EVENT_CHILDREN_CHANGED, this);
|
| -}
|
| -
|
| } // namespace content
|
|
|