Index: third_party/WebKit/Source/modules/accessibility/AXObjectImpl.h |
diff --git a/third_party/WebKit/Source/modules/accessibility/AXObject.h b/third_party/WebKit/Source/modules/accessibility/AXObjectImpl.h |
similarity index 93% |
rename from third_party/WebKit/Source/modules/accessibility/AXObject.h |
rename to third_party/WebKit/Source/modules/accessibility/AXObjectImpl.h |
index aa8754a39b04fff57ae15043c09d8a43d9e88eee..789a85ce4b4eded5220e020bbcd891507b959316 100644 |
--- a/third_party/WebKit/Source/modules/accessibility/AXObject.h |
+++ b/third_party/WebKit/Source/modules/accessibility/AXObjectImpl.h |
@@ -27,9 +27,10 @@ |
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
*/ |
-#ifndef AXObject_h |
-#define AXObject_h |
+#ifndef AXObjectImpl_h |
+#define AXObjectImpl_h |
+#include "core/dom/AXObject.h" |
#include "core/editing/VisiblePosition.h" |
#include "core/editing/markers/DocumentMarker.h" |
#include "core/inspector/protocol/Accessibility.h" |
@@ -44,7 +45,7 @@ class SkMatrix44; |
namespace blink { |
-class AXObject; |
+class AXObjectImpl; |
class AXObjectCacheImpl; |
class Element; |
class FrameView; |
@@ -231,11 +232,11 @@ class AccessibilityText final |
private: |
AccessibilityText(const String& text, |
const AccessibilityTextSource& source, |
- AXObject* element) |
+ AXObjectImpl* element) |
: text_(text), text_element_(element) {} |
String text_; |
- Member<AXObject> text_element_; |
+ Member<AXObjectImpl> text_element_; |
}; |
enum AccessibilityOrientation { |
@@ -351,9 +352,9 @@ class AXSparseAttributeClient { |
public: |
virtual void AddBoolAttribute(AXBoolAttribute, bool) = 0; |
virtual void AddStringAttribute(AXStringAttribute, const String&) = 0; |
- virtual void AddObjectAttribute(AXObjectAttribute, AXObject&) = 0; |
+ virtual void AddObjectAttribute(AXObjectAttribute, AXObjectImpl&) = 0; |
virtual void AddObjectVectorAttribute(AXObjectVectorAttribute, |
- HeapVector<Member<AXObject>>&) = 0; |
+ HeapVector<Member<AXObjectImpl>>&) = 0; |
}; |
// The source of the accessible name of an element. This is needed |
@@ -420,12 +421,12 @@ class IgnoredReason { |
public: |
AXIgnoredReason reason; |
- Member<const AXObject> related_object; |
+ Member<const AXObjectImpl> related_object; |
explicit IgnoredReason(AXIgnoredReason reason) |
: reason(reason), related_object(nullptr) {} |
- IgnoredReason(AXIgnoredReason r, const AXObject* obj) |
+ IgnoredReason(AXIgnoredReason r, const AXObjectImpl* obj) |
: reason(r), related_object(obj) {} |
DEFINE_INLINE_TRACE() { visitor->Trace(related_object); } |
@@ -436,10 +437,10 @@ class NameSourceRelatedObject |
WTF_MAKE_NONCOPYABLE(NameSourceRelatedObject); |
public: |
- WeakMember<AXObject> object; |
+ WeakMember<AXObjectImpl> object; |
String text; |
- NameSourceRelatedObject(AXObject* object, String text) |
+ NameSourceRelatedObject(AXObjectImpl* object, String text) |
: object(object), text(text) {} |
DEFINE_INLINE_TRACE() { visitor->Trace(object); } |
@@ -498,17 +499,19 @@ WTF_ALLOW_INIT_WITH_MEM_FUNCTIONS(blink::DescriptionSource); |
namespace blink { |
-class MODULES_EXPORT AXObject : public GarbageCollectedFinalized<AXObject> { |
- WTF_MAKE_NONCOPYABLE(AXObject); |
+class MODULES_EXPORT AXObjectImpl |
+ : public GarbageCollectedFinalized<AXObjectImpl>, |
+ public AXObject { |
+ WTF_MAKE_NONCOPYABLE(AXObjectImpl); |
public: |
- typedef HeapVector<Member<AXObject>> AXObjectVector; |
+ typedef HeapVector<Member<AXObjectImpl>> AXObjectVector; |
struct AXRange { |
DISALLOW_NEW_EXCEPT_PLACEMENT_NEW(); |
// The deepest descendant in which the range starts. |
// (nullptr means the current object.) |
- Persistent<AXObject> anchor_object; |
+ Persistent<AXObjectImpl> anchor_object; |
// The number of characters and child objects in the anchor object |
// before the range starts. |
int anchor_offset; |
@@ -519,7 +522,7 @@ class MODULES_EXPORT AXObject : public GarbageCollectedFinalized<AXObject> { |
// The deepest descendant in which the range ends. |
// (nullptr means the current object.) |
- Persistent<AXObject> focus_object; |
+ Persistent<AXObjectImpl> focus_object; |
// The number of characters and child objects in the focus object |
// before the range ends. |
int focus_offset; |
@@ -544,10 +547,10 @@ class MODULES_EXPORT AXObject : public GarbageCollectedFinalized<AXObject> { |
focus_offset(end_offset), |
focus_affinity(TextAffinity::kDownstream) {} |
- AXRange(AXObject* anchor_object, |
+ AXRange(AXObjectImpl* anchor_object, |
int anchor_offset, |
TextAffinity anchor_affinity, |
- AXObject* focus_object, |
+ AXObjectImpl* focus_object, |
int focus_offset, |
TextAffinity focus_affinity) |
: anchor_object(anchor_object), |
@@ -571,28 +574,28 @@ class MODULES_EXPORT AXObject : public GarbageCollectedFinalized<AXObject> { |
}; |
protected: |
- AXObject(AXObjectCacheImpl&); |
+ AXObjectImpl(AXObjectCacheImpl&); |
public: |
- virtual ~AXObject(); |
+ virtual ~AXObjectImpl(); |
DECLARE_VIRTUAL_TRACE(); |
static unsigned NumberOfLiveAXObjects() { return number_of_live_ax_objects_; } |
- // After constructing an AXObject, it must be given a |
+ // After constructing an AXObjectImpl, it must be given a |
// unique ID, then added to AXObjectCacheImpl, and finally init() must |
// be called last. |
void SetAXObjectID(AXID ax_object_id) { id_ = ax_object_id; } |
virtual void Init() {} |
- // When the corresponding WebCore object that this AXObject |
+ // When the corresponding WebCore object that this AXObjectImpl |
// wraps is deleted, it must be detached. |
virtual void Detach(); |
virtual bool IsDetached() const; |
// If the parent of this object is known, this can be faster than using |
// computeParent(). |
- virtual void SetParent(AXObject* parent) { parent_ = parent; } |
+ virtual void SetParent(AXObjectImpl* parent) { parent_ = parent; } |
// The AXObjectCacheImpl that owns this object, and its unique ID within this |
// cache. |
@@ -723,12 +726,12 @@ class MODULES_EXPORT AXObject : public GarbageCollectedFinalized<AXObject> { |
virtual AXObjectInclusion DefaultObjectInclusion( |
IgnoredReasons* = nullptr) const; |
bool IsInertOrAriaHidden() const; |
- const AXObject* AriaHiddenRoot() const; |
+ const AXObjectImpl* AriaHiddenRoot() const; |
bool ComputeIsInertOrAriaHidden(IgnoredReasons* = nullptr) const; |
bool IsDescendantOfLeafNode() const; |
- AXObject* LeafNodeAncestor() const; |
+ AXObjectImpl* LeafNodeAncestor() const; |
bool IsDescendantOfDisabledNode() const; |
- const AXObject* DisabledAncestor() const; |
+ const AXObjectImpl* DisabledAncestor() const; |
bool LastKnownIsIgnoredValue(); |
void SetLastKnownIsIgnoredValue(bool); |
bool HasInheritedPresentationalRole() const; |
@@ -776,7 +779,7 @@ class MODULES_EXPORT AXObject : public GarbageCollectedFinalized<AXObject> { |
virtual String Placeholder(AXNameFrom) const { return String(); } |
// Internal functions used by name and description, above. |
- typedef HeapHashSet<Member<const AXObject>> AXObjectSet; |
+ typedef HeapHashSet<Member<const AXObjectImpl>> AXObjectSet; |
virtual String TextAlternative(bool recursive, |
bool in_aria_labelled_by_traversal, |
AXObjectSet& visited, |
@@ -825,7 +828,7 @@ class MODULES_EXPORT AXObject : public GarbageCollectedFinalized<AXObject> { |
virtual String ImageDataUrl(const IntSize& max_size) const { |
return g_null_atom; |
} |
- virtual AXObject* InPageLinkTarget() const { return nullptr; } |
+ virtual AXObjectImpl* InPageLinkTarget() const { return nullptr; } |
virtual AccessibilityOrientation Orientation() const; |
virtual String GetText() const { return String(); } |
virtual AccessibilityTextDirection GetTextDirection() const { |
@@ -844,8 +847,8 @@ class MODULES_EXPORT AXObject : public GarbageCollectedFinalized<AXObject> { |
// Walk the AXObjects on the same line. This is supported on any |
// object type but primarily intended to be used for inline text boxes. |
- virtual AXObject* NextOnLine() const { return nullptr; } |
- virtual AXObject* PreviousOnLine() const { return nullptr; } |
+ virtual AXObjectImpl* NextOnLine() const { return nullptr; } |
+ virtual AXObjectImpl* PreviousOnLine() const { return nullptr; } |
// For all node objects. The start and end character offset of each |
// marker, such as spelling or grammar error. |
@@ -876,7 +879,7 @@ class MODULES_EXPORT AXObject : public GarbageCollectedFinalized<AXObject> { |
virtual String StringValue() const { return String(); } |
// ARIA attributes. |
- virtual AXObject* ActiveDescendant() { return nullptr; } |
+ virtual AXObjectImpl* ActiveDescendant() { return nullptr; } |
virtual String AriaAutoComplete() const { return String(); } |
virtual void AriaOwnsElements(AXObjectVector& owns) const {} |
virtual void AriaDescribedbyElements(AXObjectVector&) const {} |
@@ -888,7 +891,7 @@ class MODULES_EXPORT AXObject : public GarbageCollectedFinalized<AXObject> { |
bool AriaPressedIsPresent() const; |
virtual AccessibilityRole AriaRoleAttribute() const { return kUnknownRole; } |
virtual bool AriaRoleHasPresentationalChildren() const { return false; } |
- virtual AXObject* AncestorForWhichThisIsAPresentationalChild() const { |
+ virtual AXObjectImpl* AncestorForWhichThisIsAPresentationalChild() const { |
return 0; |
} |
bool SupportsActiveDescendant() const; |
@@ -912,7 +915,7 @@ class MODULES_EXPORT AXObject : public GarbageCollectedFinalized<AXObject> { |
// ARIA live-region features. |
bool IsLiveRegion() const; |
- AXObject* LiveRegionRoot() const; |
+ AXObjectImpl* LiveRegionRoot() const; |
virtual const AtomicString& LiveRegionStatus() const { return g_null_atom; } |
virtual const AtomicString& LiveRegionRelevant() const { return g_null_atom; } |
virtual bool LiveRegionAtomic() const { return false; } |
@@ -931,7 +934,7 @@ class MODULES_EXPORT AXObject : public GarbageCollectedFinalized<AXObject> { |
// not null, walk up to its container and offset by the container's offset |
// from origin, the container's scroll position if any, and apply the |
// container's transform. Do this until you reach the root of the tree. |
- virtual void GetRelativeBounds(AXObject** out_container, |
+ virtual void GetRelativeBounds(AXObjectImpl** out_container, |
FloatRect& out_bounds_in_container, |
SkMatrix44& out_container_transform) const; |
@@ -939,32 +942,34 @@ class MODULES_EXPORT AXObject : public GarbageCollectedFinalized<AXObject> { |
LayoutRect GetBoundsInFrameCoordinates() const; |
// Explicitly set an object's bounding rect and offset container. |
- void SetElementRect(LayoutRect r, AXObject* container) { |
+ void SetElementRect(LayoutRect r, AXObjectImpl* container) { |
explicit_element_rect_ = r; |
explicit_container_id_ = container->AxObjectID(); |
} |
// Hit testing. |
// Called on the root AX object to return the deepest available element. |
- virtual AXObject* AccessibilityHitTest(const IntPoint&) const { return 0; } |
+ virtual AXObjectImpl* AccessibilityHitTest(const IntPoint&) const { |
+ return 0; |
+ } |
// Called on the AX object after the layout tree determines which is the right |
// AXLayoutObject. |
- virtual AXObject* ElementAccessibilityHitTest(const IntPoint&) const; |
+ virtual AXObjectImpl* ElementAccessibilityHitTest(const IntPoint&) const; |
// High-level accessibility tree access. Other modules should only use these |
// functions. |
const AXObjectVector& Children(); |
- AXObject* ParentObject() const; |
- AXObject* ParentObjectIfExists() const; |
- virtual AXObject* ComputeParent() const = 0; |
- virtual AXObject* ComputeParentIfExists() const { return 0; } |
- AXObject* CachedParentObject() const { return parent_; } |
- AXObject* ParentObjectUnignored() const; |
+ AXObjectImpl* ParentObject() const; |
+ AXObjectImpl* ParentObjectIfExists() const; |
+ virtual AXObjectImpl* ComputeParent() const = 0; |
+ virtual AXObjectImpl* ComputeParentIfExists() const { return 0; } |
+ AXObjectImpl* CachedParentObject() const { return parent_; } |
+ AXObjectImpl* ParentObjectUnignored() const; |
// Low-level accessibility tree exploration, only for use within the |
// accessibility module. |
- virtual AXObject* RawFirstChild() const { return 0; } |
- virtual AXObject* RawNextSibling() const { return 0; } |
+ virtual AXObjectImpl* RawFirstChild() const { return 0; } |
+ virtual AXObjectImpl* RawNextSibling() const { return 0; } |
virtual void AddChildren() {} |
virtual bool CanHaveChildren() const { return true; } |
bool HasChildren() const { return have_children_; } |
@@ -973,7 +978,7 @@ class MODULES_EXPORT AXObject : public GarbageCollectedFinalized<AXObject> { |
virtual void SetNeedsToUpdateChildren() {} |
virtual void ClearChildren(); |
virtual void DetachFromParent() { parent_ = 0; } |
- virtual AXObject* ScrollBar(AccessibilityOrientation) { return 0; } |
+ virtual AXObjectImpl* ScrollBar(AccessibilityOrientation) { return 0; } |
// Properties of the object's owning document or page. |
virtual double EstimatedLoadingProgress() const { return 0; } |
@@ -1065,7 +1070,7 @@ class MODULES_EXPORT AXObject : public GarbageCollectedFinalized<AXObject> { |
// Used only inside textAlternative(): |
static String CollapseWhitespace(const String&); |
- static String RecursiveTextAlternative(const AXObject&, |
+ static String RecursiveTextAlternative(const AXObjectImpl&, |
bool in_aria_labelled_by_traversal, |
AXObjectSet& visited); |
bool IsHiddenForTextAlternativeCalculation() const; |
@@ -1088,7 +1093,9 @@ class MODULES_EXPORT AXObject : public GarbageCollectedFinalized<AXObject> { |
AXRelatedObjectVector* related_objects) const; |
String TextFromAriaDescribedby(AXRelatedObjectVector* related_objects) const; |
- virtual const AXObject* InheritsPresentationalRoleFrom() const { return 0; } |
+ virtual const AXObjectImpl* InheritsPresentationalRoleFrom() const { |
+ return 0; |
+ } |
virtual bool NameFromContents() const; |
@@ -1098,7 +1105,7 @@ class MODULES_EXPORT AXObject : public GarbageCollectedFinalized<AXObject> { |
return nullptr; |
} |
- mutable Member<AXObject> parent_; |
+ mutable Member<AXObjectImpl> parent_; |
// The following cached attribute values (the ones starting with m_cached*) |
// are only valid if m_lastModificationCount matches |
@@ -1112,7 +1119,7 @@ class MODULES_EXPORT AXObject : public GarbageCollectedFinalized<AXObject> { |
mutable bool cached_has_inherited_presentational_role_ : 1; |
mutable bool cached_is_presentational_child_ : 1; |
mutable bool cached_ancestor_exposes_active_descendant_ : 1; |
- mutable Member<AXObject> cached_live_region_root_; |
+ mutable Member<AXObjectImpl> cached_live_region_root_; |
Member<AXObjectCacheImpl> ax_object_cache_; |
@@ -1129,10 +1136,12 @@ class MODULES_EXPORT AXObject : public GarbageCollectedFinalized<AXObject> { |
static unsigned number_of_live_ax_objects_; |
}; |
-#define DEFINE_AX_OBJECT_TYPE_CASTS(thisType, predicate) \ |
- DEFINE_TYPE_CASTS(thisType, AXObject, object, object->predicate, \ |
+DEFINE_TYPE_CASTS(AXObjectImpl, AXObject, obj, true, true); |
+ |
+#define DEFINE_AX_OBJECT_TYPE_CASTS(thisType, predicate) \ |
+ DEFINE_TYPE_CASTS(thisType, AXObjectImpl, object, object->predicate, \ |
object.predicate) |
} // namespace blink |
-#endif // AXObject_h |
+#endif // AXObjectImpl_h |