Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(416)

Unified Diff: content/browser/accessibility/browser_accessibility.cc

Issue 558073002: Hook up guest browser plugins to the accessibility tree. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@cross_process_iframes_plugins_3
Patch Set: Rebase Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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
« no previous file with comments | « content/browser/accessibility/browser_accessibility.h ('k') | content/browser/accessibility/browser_accessibility_manager.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698