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

Side by Side Diff: Source/core/accessibility/AccessibilityRenderObject.h

Issue 14740025: Simplify and add caching for accessible bounding box calculation. (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Re-landing with null check fix Created 7 years, 7 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 | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2008 Apple Inc. All rights reserved. 2 * Copyright (C) 2008 Apple Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 7 *
8 * 1. Redistributions of source code must retain the above copyright 8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright 10 * 2. Redistributions in binary form must reproduce the above copyright
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
56 class VisibleSelection; 56 class VisibleSelection;
57 class Widget; 57 class Widget;
58 58
59 class AccessibilityRenderObject : public AccessibilityNodeObject { 59 class AccessibilityRenderObject : public AccessibilityNodeObject {
60 protected: 60 protected:
61 explicit AccessibilityRenderObject(RenderObject*); 61 explicit AccessibilityRenderObject(RenderObject*);
62 public: 62 public:
63 static PassRefPtr<AccessibilityRenderObject> create(RenderObject*); 63 static PassRefPtr<AccessibilityRenderObject> create(RenderObject*);
64 virtual ~AccessibilityRenderObject(); 64 virtual ~AccessibilityRenderObject();
65 65
66 RenderObject* m_renderer;
67
68 // Public, overridden from AccessibilityObject. 66 // Public, overridden from AccessibilityObject.
69 virtual RenderObject* renderer() const { return m_renderer; } 67 virtual RenderObject* renderer() const { return m_renderer; }
70 virtual LayoutRect elementRect() const; 68 virtual LayoutRect elementRect() const;
71 69
72 // DEPRECATED - investigate and remove. 70 // DEPRECATED - investigate and remove.
73 virtual int layoutCount() const; 71 virtual int layoutCount() const;
74 72
75 void setRenderer(RenderObject*); 73 void setRenderer(RenderObject*);
76 RenderBoxModelObject* renderBoxModelObject() const; 74 RenderBoxModelObject* renderBoxModelObject() const;
77 RenderView* topRenderer() const; 75 RenderView* topRenderer() const;
78 Document* topDocument() const; 76 Document* topDocument() const;
79 HTMLLabelElement* labelElementContainer() const; 77 HTMLLabelElement* labelElementContainer() const;
80 bool shouldNotifyActiveDescendant() const; 78 bool shouldNotifyActiveDescendant() const;
81 bool needsToUpdateChildren() const { return m_childrenDirty; } 79 bool needsToUpdateChildren() const { return m_childrenDirty; }
82 ScrollableArea* getScrollableAreaIfScrollable() const; 80 ScrollableArea* getScrollableAreaIfScrollable() const;
83 virtual AccessibilityRole determineAccessibilityRole(); 81 virtual AccessibilityRole determineAccessibilityRole();
84 82
85 protected: 83 protected:
84 RenderObject* m_renderer;
85 mutable LayoutRect m_cachedElementRect;
86 mutable LayoutRect m_cachedFrameRect;
87 mutable IntPoint m_cachedScrollPosition;
88 mutable bool m_cachedElementRectDirty;
89
86 // 90 //
87 // Overridden from AccessibilityObject. 91 // Overridden from AccessibilityObject.
88 // 92 //
89 93
90 virtual void init(); 94 virtual void init();
91 virtual void detach(); 95 virtual void detach();
92 virtual bool isDetached() const { return !m_renderer; } 96 virtual bool isDetached() const { return !m_renderer; }
93 virtual bool isAccessibilityRenderObject() const { return true; } 97 virtual bool isAccessibilityRenderObject() const { return true; }
94 98
95 // Check object role or purpose. 99 // Check object role or purpose.
(...skipping 37 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 virtual AccessibilityOrientation orientation() const; 137 virtual AccessibilityOrientation orientation() const;
134 virtual void tabChildren(AccessibilityChildrenVector&); 138 virtual void tabChildren(AccessibilityChildrenVector&);
135 virtual String text() const; 139 virtual String text() const;
136 virtual int textLength() const; 140 virtual int textLength() const;
137 virtual AccessibilityObject* titleUIElement() const; 141 virtual AccessibilityObject* titleUIElement() const;
138 virtual KURL url() const; 142 virtual KURL url() const;
139 virtual void visibleChildren(AccessibilityChildrenVector&); 143 virtual void visibleChildren(AccessibilityChildrenVector&);
140 144
141 // Properties of interactive elements. 145 // Properties of interactive elements.
142 virtual const String& actionVerb() const; 146 virtual const String& actionVerb() const;
143 LayoutRect checkboxOrRadioRect() const;
144 virtual void selectedChildren(AccessibilityChildrenVector&); 147 virtual void selectedChildren(AccessibilityChildrenVector&);
145 virtual String stringValue() const; 148 virtual String stringValue() const;
146 149
147 // ARIA attributes. 150 // ARIA attributes.
148 virtual AccessibilityObject* activeDescendant() const; 151 virtual AccessibilityObject* activeDescendant() const;
149 virtual void ariaFlowToElements(AccessibilityChildrenVector&) const; 152 virtual void ariaFlowToElements(AccessibilityChildrenVector&) const;
150 virtual bool ariaHasPopup() const; 153 virtual bool ariaHasPopup() const;
151 virtual void ariaOwnsElements(AccessibilityChildrenVector&) const; 154 virtual void ariaOwnsElements(AccessibilityChildrenVector&) const;
152 virtual bool ariaRoleHasPresentationalChildren() const; 155 virtual bool ariaRoleHasPresentationalChildren() const;
153 virtual void determineARIADropEffects(Vector<String>&); 156 virtual void determineARIADropEffects(Vector<String>&);
(...skipping 10 matching lines...) Expand all
164 virtual const AtomicString& ariaLiveRegionRelevant() const; 167 virtual const AtomicString& ariaLiveRegionRelevant() const;
165 virtual bool ariaLiveRegionAtomic() const; 168 virtual bool ariaLiveRegionAtomic() const;
166 virtual bool ariaLiveRegionBusy() const; 169 virtual bool ariaLiveRegionBusy() const;
167 170
168 // Accessibility Text. 171 // Accessibility Text.
169 virtual String textUnderElement() const; 172 virtual String textUnderElement() const;
170 173
171 // Accessibility Text - (To be deprecated). 174 // Accessibility Text - (To be deprecated).
172 virtual String helpText() const; 175 virtual String helpText() const;
173 176
174 // Position and size. 177 // Location and click point in frame-relative coordinates.
175 virtual LayoutRect boundingBoxRect() const; 178 virtual void checkCachedElementRect() const;
179 virtual void updateCachedElementRect() const;
180 virtual void markCachedElementRectDirty() const;
176 virtual IntPoint clickPoint(); 181 virtual IntPoint clickPoint();
177 182
178 // Hit testing. 183 // Hit testing.
179 virtual AccessibilityObject* accessibilityHitTest(const IntPoint&) const; 184 virtual AccessibilityObject* accessibilityHitTest(const IntPoint&) const;
180 virtual AccessibilityObject* elementAccessibilityHitTest(const IntPoint&) co nst; 185 virtual AccessibilityObject* elementAccessibilityHitTest(const IntPoint&) co nst;
181 186
182 // High-level accessibility tree access. Other modules should only use these functions. 187 // High-level accessibility tree access. Other modules should only use these functions.
183 virtual AccessibilityObject* parentObject() const; 188 virtual AccessibilityObject* parentObject() const;
184 virtual AccessibilityObject* parentObjectIfExists() const; 189 virtual AccessibilityObject* parentObjectIfExists() const;
185 190
(...skipping 79 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 void offsetBoundingBoxForRemoteSVGElement(LayoutRect&) const; 270 void offsetBoundingBoxForRemoteSVGElement(LayoutRect&) const;
266 void addHiddenChildren(); 271 void addHiddenChildren();
267 void addTextFieldChildren(); 272 void addTextFieldChildren();
268 void addImageMapChildren(); 273 void addImageMapChildren();
269 void addCanvasChildren(); 274 void addCanvasChildren();
270 void addAttachmentChildren(); 275 void addAttachmentChildren();
271 void addRemoteSVGChildren(); 276 void addRemoteSVGChildren();
272 void ariaSelectedRows(AccessibilityChildrenVector&); 277 void ariaSelectedRows(AccessibilityChildrenVector&);
273 bool elementAttributeValue(const QualifiedName&) const; 278 bool elementAttributeValue(const QualifiedName&) const;
274 bool inheritsPresentationalRole() const; 279 bool inheritsPresentationalRole() const;
280 LayoutRect computeElementRect() const;
275 }; 281 };
276 282
277 inline AccessibilityRenderObject* toAccessibilityRenderObject(AccessibilityObjec t* object) 283 inline AccessibilityRenderObject* toAccessibilityRenderObject(AccessibilityObjec t* object)
278 { 284 {
279 ASSERT_WITH_SECURITY_IMPLICATION(!object || object->isAccessibilityRenderObj ect()); 285 ASSERT_WITH_SECURITY_IMPLICATION(!object || object->isAccessibilityRenderObj ect());
280 return static_cast<AccessibilityRenderObject*>(object); 286 return static_cast<AccessibilityRenderObject*>(object);
281 } 287 }
282 288
283 inline const AccessibilityRenderObject* toAccessibilityRenderObject(const Access ibilityObject* object) 289 inline const AccessibilityRenderObject* toAccessibilityRenderObject(const Access ibilityObject* object)
284 { 290 {
285 ASSERT_WITH_SECURITY_IMPLICATION(!object || object->isAccessibilityRenderObj ect()); 291 ASSERT_WITH_SECURITY_IMPLICATION(!object || object->isAccessibilityRenderObj ect());
286 return static_cast<const AccessibilityRenderObject*>(object); 292 return static_cast<const AccessibilityRenderObject*>(object);
287 } 293 }
288 294
289 // This will catch anyone doing an unnecessary cast. 295 // This will catch anyone doing an unnecessary cast.
290 void toAccessibilityRenderObject(const AccessibilityRenderObject*); 296 void toAccessibilityRenderObject(const AccessibilityRenderObject*);
291 297
292 } // namespace WebCore 298 } // namespace WebCore
293 299
294 #endif // AccessibilityRenderObject_h 300 #endif // AccessibilityRenderObject_h
OLDNEW
« no previous file with comments | « Source/core/accessibility/AccessibilityObject.cpp ('k') | Source/core/accessibility/AccessibilityRenderObject.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698