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

Side by Side Diff: third_party/WebKit/Source/modules/accessibility/AXObject.h

Issue 2287433003: Get rid of remaining uses of AXObject::elementRect (Closed)
Patch Set: Rebase Created 4 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 unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008, 2009, 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2008, 2009, 2011 Apple Inc. All rights reserved.
3 * Copyright (C) 2008 Nuanti Ltd. 3 * Copyright (C) 2008 Nuanti Ltd.
4 * 4 *
5 * Redistribution and use in source and binary forms, with or without 5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions 6 * modification, are permitted provided that the following conditions
7 * are met: 7 * are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
(...skipping 820 matching lines...) Expand 10 before | Expand all | Expand 10 after
831 virtual const AtomicString& liveRegionStatus() const { return nullAtom; } 831 virtual const AtomicString& liveRegionStatus() const { return nullAtom; }
832 virtual const AtomicString& liveRegionRelevant() const { return nullAtom; } 832 virtual const AtomicString& liveRegionRelevant() const { return nullAtom; }
833 virtual bool liveRegionAtomic() const { return false; } 833 virtual bool liveRegionAtomic() const { return false; }
834 virtual bool liveRegionBusy() const { return false; } 834 virtual bool liveRegionBusy() const { return false; }
835 835
836 const AtomicString& containerLiveRegionStatus() const; 836 const AtomicString& containerLiveRegionStatus() const;
837 const AtomicString& containerLiveRegionRelevant() const; 837 const AtomicString& containerLiveRegionRelevant() const;
838 bool containerLiveRegionAtomic() const; 838 bool containerLiveRegionAtomic() const;
839 bool containerLiveRegionBusy() const; 839 bool containerLiveRegionBusy() const;
840 840
841 // Location and click point in frame-relative coordinates. DEPRECATED, to be 841 // Every object's bounding box is returned relative to a
842 // replaced by getRelativeBounds. 842 // container object (which is guaranteed to be an ancestor) and
843 virtual LayoutRect elementRect() const { return m_explicitElementRect; }
844 void setElementRect(LayoutRect r, AXObject* container)
845 {
846 m_explicitElementRect = r;
847 m_explicitContainerID = container->axObjectID();
848 }
849 virtual void markCachedElementRectDirty() const;
850 virtual IntPoint clickPoint();
851
852 // Transformation relative to the parent frame, if local (otherwise returns identity).
853 // DEPRECATED, to be replaced by getRelativeBounds.
854 virtual SkMatrix44 transformFromLocalParentFrame() const;
855
856 // NEW bounds calculation interface. Every object's bounding box is returned
857 // relative to a container object (which is guaranteed to be an ancestor) an d
858 // optionally a transformation matrix that needs to be applied too. 843 // optionally a transformation matrix that needs to be applied too.
859 // To compute the absolute bounding box of an element, start with its 844 // To compute the absolute bounding box of an element, start with its
860 // boundsInContainer and apply the transform. Then as long as its container is 845 // boundsInContainer and apply the transform. Then as long as its container is
861 // not null, walk up to its container and offset by the container's offset f rom 846 // not null, walk up to its container and offset by the container's offset f rom
862 // origin, the container's scroll position if any, and apply the container's transform. 847 // origin, the container's scroll position if any, and apply the container's transform.
863 // Do this until you reach the root of the tree. 848 // Do this until you reach the root of the tree.
864 virtual void getRelativeBounds(AXObject** outContainer, FloatRect& outBounds InContainer, SkMatrix44& outContainerTransform) const; 849 virtual void getRelativeBounds(AXObject** outContainer, FloatRect& outBounds InContainer, SkMatrix44& outContainerTransform) const;
865 850
851 // Get the bounds in frame-relative coordinates as a LayoutRect.
852 LayoutRect getBoundsInFrameCoordinates() const;
853
854 // Explicitly set an object's bounding rect and offset container.
855 void setElementRect(LayoutRect r, AXObject* container)
856 {
857 m_explicitElementRect = r;
858 m_explicitContainerID = container->axObjectID();
859 }
860
866 // Hit testing. 861 // Hit testing.
867 // Called on the root AX object to return the deepest available element. 862 // Called on the root AX object to return the deepest available element.
868 virtual AXObject* accessibilityHitTest(const IntPoint&) const { return 0; } 863 virtual AXObject* accessibilityHitTest(const IntPoint&) const { return 0; }
869 // Called on the AX object after the layout tree determines which is the rig ht AXLayoutObject. 864 // Called on the AX object after the layout tree determines which is the rig ht AXLayoutObject.
870 virtual AXObject* elementAccessibilityHitTest(const IntPoint&) const; 865 virtual AXObject* elementAccessibilityHitTest(const IntPoint&) const;
871 866
872 // High-level accessibility tree access. Other modules should only use these functions. 867 // High-level accessibility tree access. Other modules should only use these functions.
873 const AXObjectVector& children(); 868 const AXObjectVector& children();
874 AXObject* parentObject() const; 869 AXObject* parentObject() const;
875 AXObject* parentObjectIfExists() const; 870 AXObject* parentObjectIfExists() const;
(...skipping 77 matching lines...) Expand 10 before | Expand all | Expand 10 after
953 // Text metrics. Most of these should be deprecated, needs major cleanup. 948 // Text metrics. Most of these should be deprecated, needs major cleanup.
954 virtual VisiblePosition visiblePositionForIndex(int) const { return VisibleP osition(); } 949 virtual VisiblePosition visiblePositionForIndex(int) const { return VisibleP osition(); }
955 int lineForPosition(const VisiblePosition&) const; 950 int lineForPosition(const VisiblePosition&) const;
956 virtual int index(const VisiblePosition&) const { return -1; } 951 virtual int index(const VisiblePosition&) const { return -1; }
957 virtual void lineBreaks(Vector<int>&) const { } 952 virtual void lineBreaks(Vector<int>&) const { }
958 953
959 // Static helper functions. 954 // Static helper functions.
960 static bool isARIAControl(AccessibilityRole); 955 static bool isARIAControl(AccessibilityRole);
961 static bool isARIAInput(AccessibilityRole); 956 static bool isARIAInput(AccessibilityRole);
962 static AccessibilityRole ariaRoleToWebCoreRole(const String&); 957 static AccessibilityRole ariaRoleToWebCoreRole(const String&);
963 static IntRect boundingBoxForQuads(LayoutObject*, const Vector<FloatQuad>&);
964 static const AtomicString& roleName(AccessibilityRole); 958 static const AtomicString& roleName(AccessibilityRole);
965 static const AtomicString& internalRoleName(AccessibilityRole); 959 static const AtomicString& internalRoleName(AccessibilityRole);
966 static bool isInsideFocusableElementOrARIAWidget(const Node&); 960 static bool isInsideFocusableElementOrARIAWidget(const Node&);
967 961
968 protected: 962 protected:
969 AXID m_id; 963 AXID m_id;
970 AXObjectVector m_children; 964 AXObjectVector m_children;
971 mutable bool m_haveChildren; 965 mutable bool m_haveChildren;
972 AccessibilityRole m_role; 966 AccessibilityRole m_role;
973 AXObjectInclusion m_lastKnownIsIgnoredValue; 967 AXObjectInclusion m_lastKnownIsIgnoredValue;
(...skipping 11 matching lines...) Expand all
985 void ariaLabelledbyElementVector(HeapVector<Member<Element>>& elements) cons t; 979 void ariaLabelledbyElementVector(HeapVector<Member<Element>>& elements) cons t;
986 String textFromAriaLabelledby(AXObjectSet& visited, AXRelatedObjectVector* r elatedObjects) const; 980 String textFromAriaLabelledby(AXObjectSet& visited, AXRelatedObjectVector* r elatedObjects) const;
987 String textFromAriaDescribedby(AXRelatedObjectVector* relatedObjects) const; 981 String textFromAriaDescribedby(AXRelatedObjectVector* relatedObjects) const;
988 982
989 virtual const AXObject* inheritsPresentationalRoleFrom() const { return 0; } 983 virtual const AXObject* inheritsPresentationalRoleFrom() const { return 0; }
990 984
991 virtual bool nameFromContents() const; 985 virtual bool nameFromContents() const;
992 986
993 AccessibilityRole buttonRoleType() const; 987 AccessibilityRole buttonRoleType() const;
994 988
989 virtual LayoutObject* layoutObjectForRelativeBounds() const { return nullptr ; }
990
995 mutable Member<AXObject> m_parent; 991 mutable Member<AXObject> m_parent;
996 992
997 // The following cached attribute values (the ones starting with m_cached*) 993 // The following cached attribute values (the ones starting with m_cached*)
998 // are only valid if m_lastModificationCount matches AXObjectCacheImpl::modi ficationCount(). 994 // are only valid if m_lastModificationCount matches AXObjectCacheImpl::modi ficationCount().
999 mutable int m_lastModificationCount; 995 mutable int m_lastModificationCount;
1000 mutable RGBA32 m_cachedBackgroundColor; 996 mutable RGBA32 m_cachedBackgroundColor;
1001 mutable bool m_cachedIsIgnored : 1; 997 mutable bool m_cachedIsIgnored : 1;
1002 mutable bool m_cachedIsInertOrAriaHidden : 1; 998 mutable bool m_cachedIsInertOrAriaHidden : 1;
1003 mutable bool m_cachedIsDescendantOfLeafNode : 1; 999 mutable bool m_cachedIsDescendantOfLeafNode : 1;
1004 mutable bool m_cachedIsDescendantOfDisabledNode : 1; 1000 mutable bool m_cachedIsDescendantOfDisabledNode : 1;
(...skipping 14 matching lines...) Expand all
1019 1015
1020 static unsigned s_numberOfLiveAXObjects; 1016 static unsigned s_numberOfLiveAXObjects;
1021 }; 1017 };
1022 1018
1023 #define DEFINE_AX_OBJECT_TYPE_CASTS(thisType, predicate) \ 1019 #define DEFINE_AX_OBJECT_TYPE_CASTS(thisType, predicate) \
1024 DEFINE_TYPE_CASTS(thisType, AXObject, object, object->predicate, object.pred icate) 1020 DEFINE_TYPE_CASTS(thisType, AXObject, object, object->predicate, object.pred icate)
1025 1021
1026 } // namespace blink 1022 } // namespace blink
1027 1023
1028 #endif // AXObject_h 1024 #endif // AXObject_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698