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

Unified Diff: Source/modules/accessibility/AXLayoutObject.cpp

Issue 1348503003: One AXObjectCache per frame (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Updated or deleted layout tests Created 5 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: Source/modules/accessibility/AXLayoutObject.cpp
diff --git a/Source/modules/accessibility/AXLayoutObject.cpp b/Source/modules/accessibility/AXLayoutObject.cpp
index 2b9b964238688d15094f2b9fa69d7bfa6ef5b3c7..fdd350e30249b63a208e65b4a8ec6bd06a35faca 100644
--- a/Source/modules/accessibility/AXLayoutObject.cpp
+++ b/Source/modules/accessibility/AXLayoutObject.cpp
@@ -247,11 +247,8 @@ bool AXLayoutObject::shouldNotifyActiveDescendant() const
ScrollableArea* AXLayoutObject::getScrollableAreaIfScrollable() const
{
- // FIXME(dmazzoni): the plan is to get rid of AXScrollView, but until
- // this is done, a WebArea delegates its scrolling to its parent scroll view.
- // http://crbug.com/484878
- if (parentObject() && parentObject()->isAXScrollView())
- return parentObject()->getScrollableAreaIfScrollable();
+ if (isWebArea())
+ return documentFrameView();
if (!m_layoutObject || !m_layoutObject->isBox())
return 0;
@@ -1602,10 +1599,6 @@ AXObject* AXLayoutObject::computeParent() const
if (parentObj)
return axObjectCache().getOrCreate(parentObj);
- // WebArea's parent should be the scroll view containing it.
- if (isWebArea())
- return axObjectCache().getOrCreate(m_layoutObject->frame()->view());
-
return 0;
}
@@ -1628,10 +1621,6 @@ AXObject* AXLayoutObject::computeParentIfExists() const
if (parentObj)
return axObjectCache().get(parentObj);
- // WebArea's parent should be the scroll view containing it.
- if (isWebArea())
- return axObjectCache().get(m_layoutObject->frame()->view());
-
return 0;
}
@@ -1716,7 +1705,6 @@ void AXLayoutObject::addChildren()
}
addHiddenChildren();
- addAttachmentChildren();
addPopupChildren();
addImageMapChildren();
addTextFieldChildren();
@@ -1829,13 +1817,6 @@ Element* AXLayoutObject::anchorElement() const
return 0;
}
-Widget* AXLayoutObject::widgetForAttachmentView() const
-{
- if (!isAttachment())
- return 0;
- return toLayoutPart(m_layoutObject)->widget();
-}
-
//
// Functions that retrieve the current selection.
//
@@ -2308,7 +2289,11 @@ bool AXLayoutObject::isTabItemSelected() const
// The ARIA spec says a tab item can also be selected if it is aria-labeled by a tabpanel
// that has keyboard focus inside of it, or if a tabpanel in its aria-controls list has KB
// focus inside of it.
- AXObject* focusedElement = focusedUIElement();
+ Document* doc = document();
+ if (!doc)
+ return false;
+
+ Element* focusedElement = doc->activeElement();
if (!focusedElement)
return false;
@@ -2322,12 +2307,12 @@ bool AXLayoutObject::isTabItemSelected() const
if (!tabPanel || tabPanel->roleValue() != TabPanelRole)
continue;
- AXObject* checkFocusElement = focusedElement;
+ Element* checkFocusElement = focusedElement;
// Check if the focused element is a descendant of the element controlled by the tab item.
while (checkFocusElement) {
- if (tabPanel == checkFocusElement)
+ if (tabPanel->node() == checkFocusElement)
return true;
- checkFocusElement = checkFocusElement->parentObject();
+ checkFocusElement = checkFocusElement->parentElement();
}
}
@@ -2539,21 +2524,6 @@ void AXLayoutObject::addCanvasChildren()
AXNodeObject::addChildren();
}
-void AXLayoutObject::addAttachmentChildren()
-{
- if (!isAttachment())
- return;
-
- // FrameView's need to be inserted into the AX hierarchy when encountered.
- Widget* widget = widgetForAttachmentView();
- if (!widget || !widget->isFrameView())
- return;
-
- AXObject* axWidget = axObjectCache().getOrCreate(widget);
- if (!axWidget->accessibilityIsIgnored())
- m_children.append(axWidget);
-}
-
void AXLayoutObject::addPopupChildren()
{
if (!isHTMLInputElement(node()))

Powered by Google App Engine
This is Rietveld 408576698