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

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

Issue 1348503003: One AXObjectCache per frame (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Fix issues in AutomationApiTest.Events 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: third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp
diff --git a/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp b/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp
index 90193dd816bd579273edaec8468f09823112139e..cb38acadd26c8ff4171d7fc5fe2949c022076452 100644
--- a/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp
+++ b/third_party/WebKit/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;
@@ -1578,10 +1575,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;
}
@@ -1604,10 +1597,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;
}
@@ -1692,7 +1681,6 @@ void AXLayoutObject::addChildren()
}
addHiddenChildren();
- addAttachmentChildren();
addPopupChildren();
addImageMapChildren();
addTextFieldChildren();
@@ -1805,13 +1793,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.
//
@@ -2284,7 +2265,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;
@@ -2298,12 +2283,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();
}
}
@@ -2515,21 +2500,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