blob: 98783201cc26080504c39775d59f32af0d548c8f [file] [log] [blame]
#ifndef THIRD_PARTY_BLINK_RENDERER_MODULES_ACCESSIBILITY_AX_OBJECT_INL_H_
#define THIRD_PARTY_BLINK_RENDERER_MODULES_ACCESSIBILITY_AX_OBJECT_INL_H_
// Implementation of ALWAYS_INLINE functions from ax_object.h and
// ax_node_object.h.
#include "third_party/blink/renderer/core/layout/layout_object.h"
#include "third_party/blink/renderer/modules/accessibility/ax_node_object.h"
#include "third_party/blink/renderer/modules/accessibility/ax_object.h"
namespace blink {
Node* AXObject::GetNode() const {
if (auto* node_object = DynamicTo<AXNodeObject>(this)) {
return node_object->GetNode();
} else {
return nullptr;
}
}
Node* AXObject::GetClosestNode() const {
return GetNode() ? GetNode() : ParentObject()->GetClosestNode();
}
Node* AXNodeObject::GetNode() const {
if (IsDetached()) {
DCHECK(!node_);
return nullptr;
}
DCHECK(!GetLayoutObject() || GetLayoutObject()->GetNode() == node_)
<< "If there is an associated layout object, its node should match the "
"associated node of this accessibility object.\n"
<< this;
return node_;
}
} // namespace blink
#endif // THIRD_PARTY_BLINK_RENDERER_MODULES_ACCESSIBILITY_AX_OBJECT_INL_H_