Chromium Code Reviews| 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 503fd0b6246f0f7ff909d4accb82335bf27d951f..cba19796be1d63fe13271c7b35fdf5ab3bcbb4ba 100644 |
| --- a/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp |
| +++ b/third_party/WebKit/Source/modules/accessibility/AXLayoutObject.cpp |
| @@ -327,7 +327,7 @@ void AXLayoutObject::Detach() { |
| // Check object role or purpose. |
| // |
| -static bool IsLinkable(const AXObject& object) { |
| +static bool IsLinkable(const AXObjectImpl& object) { |
| if (!object.GetLayoutObject()) |
| return false; |
| @@ -350,7 +350,7 @@ bool AXLayoutObject::IsEditable() const { |
| Document& document = GetLayoutObject()->GetDocument(); |
| HTMLElement* body = document.body(); |
| if (body && HasEditableStyle(*body)) { |
| - AXObject* ax_body = AxObjectCache().GetOrCreate(body); |
| + AXObjectImpl* ax_body = AxObjectCache().GetOrCreate(body); |
| return ax_body && ax_body != ax_body->AriaHiddenRoot(); |
| } |
| @@ -370,7 +370,7 @@ bool AXLayoutObject::IsRichlyEditable() const { |
| Document& document = layout_object_->GetDocument(); |
| HTMLElement* body = document.body(); |
| if (body && HasRichlyEditableStyle(*body)) { |
| - AXObject* ax_body = AxObjectCache().GetOrCreate(body); |
| + AXObjectImpl* ax_body = AxObjectCache().GetOrCreate(body); |
| return ax_body && ax_body != ax_body->AriaHiddenRoot(); |
| } |
| @@ -412,7 +412,7 @@ bool AXLayoutObject::IsReadOnly() const { |
| Document& document = layout_object_->GetDocument(); |
| HTMLElement* body = document.body(); |
| if (body && HasEditableStyle(*body)) { |
| - AXObject* ax_body = AxObjectCache().GetOrCreate(body); |
| + AXObjectImpl* ax_body = AxObjectCache().GetOrCreate(body); |
| return !ax_body || ax_body == ax_body->AriaHiddenRoot(); |
| } |
| @@ -441,7 +441,7 @@ bool AXLayoutObject::IsFocused() const { |
| Element* focused_element = GetDocument()->FocusedElement(); |
| if (!focused_element) |
| return false; |
| - AXObject* focused_object = AxObjectCache().GetOrCreate(focused_element); |
| + AXObjectImpl* focused_object = AxObjectCache().GetOrCreate(focused_element); |
| if (!focused_object || !focused_object->IsAXLayoutObject()) |
| return false; |
| @@ -463,7 +463,7 @@ bool AXLayoutObject::IsSelected() const { |
| if (EqualIgnoringASCIICase(aria_selected, "true")) |
| return true; |
| - AXObject* focused_object = AxObjectCache().FocusedObject(); |
| + AXObjectImpl* focused_object = AxObjectCache().FocusedObject(); |
| if (AriaRoleAttribute() == kListBoxOptionRole && focused_object && |
| focused_object->ActiveDescendant() == this) { |
| return true; |
| @@ -501,7 +501,7 @@ AXObjectInclusion AXLayoutObject::DefaultObjectInclusion( |
| return kIgnoreObject; |
| } |
| - return AXObject::DefaultObjectInclusion(ignored_reasons); |
| + return AXObjectImpl::DefaultObjectInclusion(ignored_reasons); |
| } |
| bool AXLayoutObject::ComputeAccessibilityIsIgnored( |
| @@ -542,7 +542,7 @@ bool AXLayoutObject::ComputeAccessibilityIsIgnored( |
| if (HasInheritedPresentationalRole()) { |
| if (ignored_reasons) { |
| - const AXObject* inherits_from = InheritsPresentationalRoleFrom(); |
| + const AXObjectImpl* inherits_from = InheritsPresentationalRoleFrom(); |
| if (inherits_from == this) |
| ignored_reasons->push_back(IgnoredReason(kAXPresentationalRole)); |
| else |
| @@ -553,7 +553,7 @@ bool AXLayoutObject::ComputeAccessibilityIsIgnored( |
| } |
| // An ARIA tree can only have tree items and static text as children. |
| - if (AXObject* tree_ancestor = TreeAncestorDisallowingChild()) { |
| + if (AXObjectImpl* tree_ancestor = TreeAncestorDisallowingChild()) { |
| if (ignored_reasons) |
| ignored_reasons->push_back( |
| IgnoredReason(kAXAncestorDisallowsChild, tree_ancestor)); |
| @@ -572,13 +572,13 @@ bool AXLayoutObject::ComputeAccessibilityIsIgnored( |
| // Find out if this element is inside of a label element. If so, it may be |
| // ignored because it's the label for a checkbox or radio button. |
| - AXObject* control_object = CorrespondingControlForLabelElement(); |
| + AXObjectImpl* control_object = CorrespondingControlForLabelElement(); |
| if (control_object && control_object->IsCheckboxOrRadio() && |
| control_object->NameFromLabelElement()) { |
| if (ignored_reasons) { |
| HTMLLabelElement* label = LabelElementContainer(); |
| if (label && label != GetNode()) { |
| - AXObject* label_ax_object = AxObjectCache().GetOrCreate(label); |
| + AXObjectImpl* label_ax_object = AxObjectCache().GetOrCreate(label); |
| ignored_reasons->push_back( |
| IgnoredReason(kAXLabelContainer, label_ax_object)); |
| } |
| @@ -600,7 +600,7 @@ bool AXLayoutObject::ComputeAccessibilityIsIgnored( |
| if (layout_object_->IsText()) { |
| // Static text beneath MenuItems and MenuButtons are just reported along |
| // with the menu item, so it's ignored on an individual level. |
| - AXObject* parent = ParentObjectUnignored(); |
| + AXObjectImpl* parent = ParentObjectUnignored(); |
| if (parent && (parent->AriaRoleAttribute() == kMenuItemRole || |
| parent->AriaRoleAttribute() == kMenuButtonRole)) { |
| if (ignored_reasons) |
| @@ -616,7 +616,7 @@ bool AXLayoutObject::ComputeAccessibilityIsIgnored( |
| } |
| // Don't ignore static text in editable text controls. |
| - for (AXObject* parent = ParentObject(); parent; |
| + for (AXObjectImpl* parent = ParentObject(); parent; |
| parent = parent->ParentObject()) { |
| if (parent->RoleValue() == kTextFieldRole) |
| return false; |
| @@ -809,7 +809,7 @@ RGBA32 AXLayoutObject::ComputeBackgroundColor() const { |
| // Color::blend should be called like this: background.blend(foreground). |
| for (LayoutObject* layout_object = GetLayoutObject(); layout_object; |
| layout_object = layout_object->Parent()) { |
| - const AXObject* ax_parent = AxObjectCache().GetOrCreate(layout_object); |
| + const AXObjectImpl* ax_parent = AxObjectCache().GetOrCreate(layout_object); |
| if (ax_parent && ax_parent != this) { |
| Color parent_color = ax_parent->BackgroundColor(); |
| blended_color = parent_color.Blend(blended_color); |
| @@ -1080,7 +1080,7 @@ void AXLayoutObject::LoadInlineTextBoxes() { |
| } |
| } |
| -AXObject* AXLayoutObject::NextOnLine() const { |
| +AXObjectImpl* AXLayoutObject::NextOnLine() const { |
| if (!GetLayoutObject()) |
| return nullptr; |
| @@ -1093,7 +1093,7 @@ AXObject* AXLayoutObject::NextOnLine() const { |
| if (!inline_box) |
| return nullptr; |
| - AXObject* result = nullptr; |
| + AXObjectImpl* result = nullptr; |
| for (InlineBox* next = inline_box->NextOnLine(); next; |
| next = next->NextOnLine()) { |
| LayoutObject* layout_object = |
| @@ -1112,7 +1112,7 @@ AXObject* AXLayoutObject::NextOnLine() const { |
| return result; |
| } |
| -AXObject* AXLayoutObject::PreviousOnLine() const { |
| +AXObjectImpl* AXLayoutObject::PreviousOnLine() const { |
| if (!GetLayoutObject()) |
| return nullptr; |
| @@ -1125,7 +1125,7 @@ AXObject* AXLayoutObject::PreviousOnLine() const { |
| if (!inline_box) |
| return nullptr; |
| - AXObject* result = nullptr; |
| + AXObjectImpl* result = nullptr; |
| for (InlineBox* prev = inline_box->PrevOnLine(); prev; |
| prev = prev->PrevOnLine()) { |
| LayoutObject* layout_object = |
| @@ -1284,9 +1284,10 @@ bool AXLayoutObject::AriaRoleHasPresentationalChildren() const { |
| } |
| } |
| -AXObject* AXLayoutObject::AncestorForWhichThisIsAPresentationalChild() const { |
| +AXObjectImpl* AXLayoutObject::AncestorForWhichThisIsAPresentationalChild() |
| + const { |
| // Walk the parent chain looking for a parent that has presentational children |
| - AXObject* parent = ParentObjectIfExists(); |
| + AXObjectImpl* parent = ParentObjectIfExists(); |
| while (parent) { |
| if (parent->AriaRoleHasPresentationalChildren()) |
| break; |
| @@ -1390,7 +1391,8 @@ bool AXLayoutObject::LiveRegionBusy() const { |
| // Hit testing. |
| // |
| -AXObject* AXLayoutObject::AccessibilityHitTest(const IntPoint& point) const { |
| +AXObjectImpl* AXLayoutObject::AccessibilityHitTest( |
| + const IntPoint& point) const { |
| if (!layout_object_ || !layout_object_->HasLayer()) |
| return nullptr; |
| @@ -1417,7 +1419,7 @@ AXObject* AXLayoutObject::AccessibilityHitTest(const IntPoint& point) const { |
| if (!obj) |
| return nullptr; |
| - AXObject* result = AxObjectCache().GetOrCreate(obj); |
| + AXObjectImpl* result = AxObjectCache().GetOrCreate(obj); |
| result->UpdateChildrenIfNecessary(); |
| // Allow the element to perform any hit-testing it might need to do to reach |
| @@ -1427,7 +1429,7 @@ AXObject* AXLayoutObject::AccessibilityHitTest(const IntPoint& point) const { |
| // If this element is the label of a control, a hit test should return the |
| // control. |
| if (result->IsAXLayoutObject()) { |
| - AXObject* control_object = |
| + AXObjectImpl* control_object = |
| ToAXLayoutObject(result)->CorrespondingControlForLabelElement(); |
| if (control_object && control_object->NameFromLabelElement()) |
| return control_object; |
| @@ -1439,19 +1441,19 @@ AXObject* AXLayoutObject::AccessibilityHitTest(const IntPoint& point) const { |
| return result; |
| } |
| -AXObject* AXLayoutObject::ElementAccessibilityHitTest( |
| +AXObjectImpl* AXLayoutObject::ElementAccessibilityHitTest( |
| const IntPoint& point) const { |
| if (IsSVGImage()) |
| return RemoteSVGElementHitTest(point); |
| - return AXObject::ElementAccessibilityHitTest(point); |
| + return AXObjectImpl::ElementAccessibilityHitTest(point); |
| } |
| // |
| // High-level accessibility tree access. |
| // |
| -AXObject* AXLayoutObject::ComputeParent() const { |
| +AXObjectImpl* AXLayoutObject::ComputeParent() const { |
| DCHECK(!IsDetached()); |
| if (!layout_object_) |
| return 0; |
| @@ -1462,7 +1464,7 @@ AXObject* AXLayoutObject::ComputeParent() const { |
| // menuButton and its corresponding menu are DOM siblings, but Accessibility |
| // needs them to be parent/child. |
| if (AriaRoleAttribute() == kMenuRole) { |
| - AXObject* parent = MenuButtonForMenu(); |
| + AXObjectImpl* parent = MenuButtonForMenu(); |
| if (parent) |
| return parent; |
| } |
| @@ -1480,7 +1482,7 @@ AXObject* AXLayoutObject::ComputeParent() const { |
| return 0; |
| } |
| -AXObject* AXLayoutObject::ComputeParentIfExists() const { |
| +AXObjectImpl* AXLayoutObject::ComputeParentIfExists() const { |
| if (!layout_object_) |
| return 0; |
| @@ -1490,7 +1492,7 @@ AXObject* AXLayoutObject::ComputeParentIfExists() const { |
| // menuButton and its corresponding menu are DOM siblings, but Accessibility |
| // needs them to be parent/child. |
| if (AriaRoleAttribute() == kMenuRole) { |
| - AXObject* parent = MenuButtonForMenu(); |
| + AXObjectImpl* parent = MenuButtonForMenu(); |
| if (parent) |
| return parent; |
| } |
| @@ -1513,7 +1515,7 @@ AXObject* AXLayoutObject::ComputeParentIfExists() const { |
| // accessibility module. |
| // |
| -AXObject* AXLayoutObject::RawFirstChild() const { |
| +AXObjectImpl* AXLayoutObject::RawFirstChild() const { |
| if (!layout_object_) |
| return 0; |
| @@ -1525,7 +1527,7 @@ AXObject* AXLayoutObject::RawFirstChild() const { |
| return AxObjectCache().GetOrCreate(first_child); |
| } |
| -AXObject* AXLayoutObject::RawNextSibling() const { |
| +AXObjectImpl* AXLayoutObject::RawNextSibling() const { |
| if (!layout_object_) |
| return 0; |
| @@ -1593,10 +1595,10 @@ void AXLayoutObject::AddChildren() { |
| if (!CanHaveChildren()) |
| return; |
| - HeapVector<Member<AXObject>> owned_children; |
| + HeapVector<Member<AXObjectImpl>> owned_children; |
| ComputeAriaOwnsChildren(owned_children); |
| - for (AXObject* obj = RawFirstChild(); obj; obj = obj->RawNextSibling()) { |
| + for (AXObjectImpl* obj = RawFirstChild(); obj; obj = obj->RawNextSibling()) { |
| if (!AxObjectCache().IsAriaOwned(obj)) { |
| obj->SetParent(this); |
| AddChild(obj); |
| @@ -1631,11 +1633,11 @@ void AXLayoutObject::UpdateChildrenIfNecessary() { |
| if (NeedsToUpdateChildren()) |
| ClearChildren(); |
| - AXObject::UpdateChildrenIfNecessary(); |
| + AXObjectImpl::UpdateChildrenIfNecessary(); |
| } |
| void AXLayoutObject::ClearChildren() { |
| - AXObject::ClearChildren(); |
| + AXObjectImpl::ClearChildren(); |
| children_dirty_ = false; |
| } |
| @@ -1722,7 +1724,7 @@ Element* AXLayoutObject::AnchorElement() const { |
| // Functions that retrieve the current selection. |
| // |
| -AXObject::AXRange AXLayoutObject::Selection() const { |
| +AXObjectImpl::AXRange AXLayoutObject::Selection() const { |
| AXRange text_selection = TextControlSelection(); |
| if (text_selection.IsValid()) |
| return text_selection; |
| @@ -1749,7 +1751,7 @@ AXObject::AXRange AXLayoutObject::Selection() const { |
| DCHECK(anchor_node); |
| AXLayoutObject* anchor_object = nullptr; |
| - // Find the closest node that has a corresponding AXObject. |
| + // Find the closest node that has a corresponding AXObjectImpl. |
| // This is because some nodes may be aria hidden or might not even have |
| // a layout object if they are part of the shadow DOM. |
| while (anchor_node) { |
| @@ -1792,7 +1794,7 @@ AXObject::AXRange AXLayoutObject::Selection() const { |
| // Gets only the start and end offsets of the selection computed using the |
| // current object as the starting point. Returns a null selection if there is |
| // no selection in the subtree rooted at this object. |
| -AXObject::AXRange AXLayoutObject::SelectionUnderObject() const { |
| +AXObjectImpl::AXRange AXLayoutObject::SelectionUnderObject() const { |
| AXRange text_selection = TextControlSelection(); |
| if (text_selection.IsValid()) |
| return text_selection; |
| @@ -1826,7 +1828,7 @@ AXObject::AXRange AXLayoutObject::SelectionUnderObject() const { |
| return AXRange(start, end); |
| } |
| -AXObject::AXRange AXLayoutObject::TextControlSelection() const { |
| +AXObjectImpl::AXRange AXLayoutObject::TextControlSelection() const { |
| if (!GetLayoutObject()) |
| return AXRange(); |
| @@ -1843,7 +1845,7 @@ AXObject::AXRange AXLayoutObject::TextControlSelection() const { |
| if (!layout) |
| return AXRange(); |
| - AXObject* ax_object = AxObjectCache().GetOrCreate(layout); |
| + AXObjectImpl* ax_object = AxObjectCache().GetOrCreate(layout); |
| if (!ax_object || !ax_object->IsAXLayoutObject()) |
| return AXRange(); |
| @@ -1888,7 +1890,7 @@ AXLayoutObject* AXLayoutObject::GetUnignoredObjectFromNode(Node& node) const { |
| if (IsDetached()) |
| return nullptr; |
| - AXObject* ax_object = AxObjectCache().GetOrCreate(&node); |
| + AXObjectImpl* ax_object = AxObjectCache().GetOrCreate(&node); |
| if (!ax_object) |
| return nullptr; |
| @@ -1903,7 +1905,7 @@ AXLayoutObject* AXLayoutObject::GetUnignoredObjectFromNode(Node& node) const { |
| // |
| // Convert from an accessible object and offset to a VisiblePosition. |
| -static VisiblePosition ToVisiblePosition(AXObject* obj, int offset) { |
| +static VisiblePosition ToVisiblePosition(AXObjectImpl* obj, int offset) { |
| if (!obj->GetNode()) |
| return VisiblePosition(); |
| @@ -1929,7 +1931,7 @@ static VisiblePosition ToVisiblePosition(AXObject* obj, int offset) { |
| static_cast<unsigned>(offset) > (obj->Children().size() - 1) |
| ? offset - 1 |
| : offset; |
| - AXObject* child_obj = obj->Children()[clamped_offset]; |
| + AXObjectImpl* child_obj = obj->Children()[clamped_offset]; |
| Node* child_node = child_obj->GetNode(); |
| if (!child_node || !child_node->parentNode()) |
| return VisiblePosition(); |
| @@ -1962,9 +1964,9 @@ void AXLayoutObject::SetSelection(const AXRange& selection) { |
| if (!GetLayoutObject() || !selection.IsValid()) |
| return; |
| - AXObject* anchor_object = |
| + AXObjectImpl* anchor_object = |
| selection.anchor_object ? selection.anchor_object.Get() : this; |
| - AXObject* focus_object = |
| + AXObjectImpl* focus_object = |
| selection.focus_object ? selection.focus_object.Get() : this; |
| if (!IsValidSelectionBound(anchor_object) || |
| @@ -2016,7 +2018,8 @@ void AXLayoutObject::SetSelection(const AXRange& selection) { |
| .Build()); |
| } |
| -bool AXLayoutObject::IsValidSelectionBound(const AXObject* bound_object) const { |
| +bool AXLayoutObject::IsValidSelectionBound( |
| + const AXObjectImpl* bound_object) const { |
| return GetLayoutObject() && bound_object && !bound_object->IsDetached() && |
| bound_object->IsAXLayoutObject() && bound_object->GetLayoutObject() && |
| bound_object->GetLayoutObject()->GetFrame() == |
| @@ -2047,7 +2050,7 @@ void AXLayoutObject::HandleActiveDescendantChanged() { |
| if (!GetLayoutObject()) |
| return; |
| - AXObject* focused_object = AxObjectCache().FocusedObject(); |
| + AXObjectImpl* focused_object = AxObjectCache().FocusedObject(); |
| if (focused_object == this && SupportsActiveDescendant()) { |
| AxObjectCache().PostNotification( |
| GetLayoutObject(), AXObjectCacheImpl::kAXActiveDescendantChanged); |
| @@ -2056,7 +2059,7 @@ void AXLayoutObject::HandleActiveDescendantChanged() { |
| void AXLayoutObject::HandleAriaExpandedChanged() { |
| // Find if a parent of this object should handle aria-expanded changes. |
| - AXObject* container_parent = this->ParentObject(); |
| + AXObjectImpl* container_parent = this->ParentObject(); |
| while (container_parent) { |
| bool found_parent = false; |
| @@ -2176,7 +2179,7 @@ void AXLayoutObject::AddInlineTextBoxChildren(bool force) { |
| for (RefPtr<AbstractInlineTextBox> box = |
| layout_text->FirstAbstractInlineTextBox(); |
| box.Get(); box = box->NextInlineTextBox()) { |
| - AXObject* ax_object = AxObjectCache().GetOrCreate(box.Get()); |
| + AXObjectImpl* ax_object = AxObjectCache().GetOrCreate(box.Get()); |
| if (!ax_object->AccessibilityIsIgnored()) |
| children_.push_back(ax_object); |
| } |
| @@ -2209,11 +2212,11 @@ void AXLayoutObject::LineBreaks(Vector<int>& line_breaks) const { |
| // Private. |
| // |
| -AXObject* AXLayoutObject::TreeAncestorDisallowingChild() const { |
| +AXObjectImpl* AXLayoutObject::TreeAncestorDisallowingChild() const { |
| // Determine if this is in a tree. If so, we apply special behavior to make it |
| // work like an AXOutline. |
| - AXObject* ax_obj = ParentObject(); |
| - AXObject* tree_ancestor = 0; |
| + AXObjectImpl* ax_obj = ParentObject(); |
| + AXObjectImpl* tree_ancestor = 0; |
| while (ax_obj) { |
| if (ax_obj->IsTree()) { |
| tree_ancestor = ax_obj; |
| @@ -2243,7 +2246,7 @@ 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* focused_element = AxObjectCache().FocusedObject(); |
| + AXObjectImpl* focused_element = AxObjectCache().FocusedObject(); |
| if (!focused_element) |
| return false; |
| @@ -2251,13 +2254,13 @@ bool AXLayoutObject::IsTabItemSelected() const { |
| ElementsFromAttribute(elements, aria_controlsAttr); |
| for (const auto& element : elements) { |
| - AXObject* tab_panel = AxObjectCache().GetOrCreate(element); |
| + AXObjectImpl* tab_panel = AxObjectCache().GetOrCreate(element); |
| // A tab item should only control tab panels. |
| if (!tab_panel || tab_panel->RoleValue() != kTabPanelRole) |
| continue; |
| - AXObject* check_focus_element = focused_element; |
| + AXObjectImpl* check_focus_element = focused_element; |
| // Check if the focused element is a descendant of the element controlled by |
| // the tab item. |
| while (check_focus_element) { |
| @@ -2270,13 +2273,13 @@ bool AXLayoutObject::IsTabItemSelected() const { |
| return false; |
| } |
| -AXObject* AXLayoutObject::AccessibilityImageMapHitTest( |
| +AXObjectImpl* AXLayoutObject::AccessibilityImageMapHitTest( |
| HTMLAreaElement* area, |
| const IntPoint& point) const { |
| if (!area) |
| return 0; |
| - AXObject* parent = AxObjectCache().GetOrCreate(area->ImageElement()); |
| + AXObjectImpl* parent = AxObjectCache().GetOrCreate(area->ImageElement()); |
| if (!parent) |
| return 0; |
| @@ -2354,8 +2357,9 @@ AXSVGRoot* AXLayoutObject::RemoteSVGRootElement() const { |
| return 0; |
| } |
| -AXObject* AXLayoutObject::RemoteSVGElementHitTest(const IntPoint& point) const { |
| - AXObject* remote = RemoteSVGRootElement(); |
| +AXObjectImpl* AXLayoutObject::RemoteSVGElementHitTest( |
| + const IntPoint& point) const { |
| + AXObjectImpl* remote = RemoteSVGRootElement(); |
| if (!remote) |
| return 0; |
| @@ -2369,7 +2373,7 @@ AXObject* AXLayoutObject::RemoteSVGElementHitTest(const IntPoint& point) const { |
| // coordinates only. |
| void AXLayoutObject::OffsetBoundingBoxForRemoteSVGElement( |
| LayoutRect& rect) const { |
| - for (AXObject* parent = ParentObject(); parent; |
| + for (AXObjectImpl* parent = ParentObject(); parent; |
| parent = parent->ParentObject()) { |
| if (parent->IsAXSVGRoot()) { |
| rect.MoveBy( |
| @@ -2408,7 +2412,7 @@ void AXLayoutObject::AddHiddenChildren() { |
| for (Node& child : NodeTraversal::ChildrenOf(*node)) { |
| if (child.GetLayoutObject()) { |
| // Find out where the last layout sibling is located within m_children. |
| - if (AXObject* child_object = |
| + if (AXObjectImpl* child_object = |
| AxObjectCache().Get(child.GetLayoutObject())) { |
| if (child_object->AccessibilityIsIgnored()) { |
| const auto& children = child_object->Children(); |
| @@ -2463,7 +2467,7 @@ void AXLayoutObject::AddImageMapChildren() { |
| for (HTMLAreaElement& area : |
| Traversal<HTMLAreaElement>::DescendantsOf(*map)) { |
| // add an <area> element for this child if it has a link |
| - AXObject* obj = AxObjectCache().GetOrCreate(&area); |
| + AXObjectImpl* obj = AxObjectCache().GetOrCreate(&area); |
| if (obj) { |
| AXImageMapLink* area_object = ToAXImageMapLink(obj); |
| area_object->SetParent(this); |
| @@ -2491,7 +2495,8 @@ void AXLayoutObject::AddCanvasChildren() { |
| void AXLayoutObject::AddPopupChildren() { |
| if (!isHTMLInputElement(GetNode())) |
| return; |
| - if (AXObject* ax_popup = toHTMLInputElement(GetNode())->PopupRootAXObject()) |
| + if (AXObjectImpl* ax_popup = |
| + ToAXObjectImpl(toHTMLInputElement(GetNode())->PopupRootAXObject())) |
|
sashab
2017/05/08 23:58:34
Although this code is in modules/, it's using a pu
aboxhall
2017/05/09 02:01:02
This seems ok to me. Dominic, what do you think?
dmazzoni
2017/05/09 05:07:07
Yes, this seems fine. This is a reasonable use of
sashab
2017/05/10 04:24:43
Sgtm :)
|
| children_.push_back(ax_popup); |
| } |