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

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

Issue 179163004: Have Document::topDocument() return a reference (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 10 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) 2003, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All rights reserved. 2 * Copyright (C) 2003, 2006, 2007, 2008, 2009, 2010, 2011 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 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 61 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 }; 72 };
73 73
74 HashMap<AXID, CachedAXObjectAttributes> m_idMapping; 74 HashMap<AXID, CachedAXObjectAttributes> m_idMapping;
75 }; 75 };
76 76
77 enum PostType { PostSynchronously, PostAsynchronously }; 77 enum PostType { PostSynchronously, PostAsynchronously };
78 78
79 class AXObjectCache { 79 class AXObjectCache {
80 WTF_MAKE_NONCOPYABLE(AXObjectCache); WTF_MAKE_FAST_ALLOCATED; 80 WTF_MAKE_NONCOPYABLE(AXObjectCache); WTF_MAKE_FAST_ALLOCATED;
81 public: 81 public:
82 explicit AXObjectCache(const Document*); 82 explicit AXObjectCache(Document&);
83 ~AXObjectCache(); 83 ~AXObjectCache();
84 84
85 static AXObject* focusedUIElementForPage(const Page*); 85 static AXObject* focusedUIElementForPage(const Page*);
86 86
87 // Returns the root object for the entire document. 87 // Returns the root object for the entire document.
88 AXObject* rootObject(); 88 AXObject* rootObject();
89 89
90 // For AX objects with elements that back them. 90 // For AX objects with elements that back them.
91 AXObject* getOrCreate(RenderObject*); 91 AXObject* getOrCreate(RenderObject*);
92 AXObject* getOrCreate(Widget*); 92 AXObject* getOrCreate(Widget*);
(...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after
204 void postPlatformNotification(AXObject*, AXNotification); 204 void postPlatformNotification(AXObject*, AXNotification);
205 void textChanged(AXObject*); 205 void textChanged(AXObject*);
206 void labelChanged(Element*); 206 void labelChanged(Element*);
207 207
208 // This is a weak reference cache for knowing if Nodes used by TextMarkers a re valid. 208 // This is a weak reference cache for knowing if Nodes used by TextMarkers a re valid.
209 void setNodeInUse(Node* n) { m_textMarkerNodes.add(n); } 209 void setNodeInUse(Node* n) { m_textMarkerNodes.add(n); }
210 void removeNodeForUse(Node* n) { m_textMarkerNodes.remove(n); } 210 void removeNodeForUse(Node* n) { m_textMarkerNodes.remove(n); }
211 bool isNodeInUse(Node* n) { return m_textMarkerNodes.contains(n); } 211 bool isNodeInUse(Node* n) { return m_textMarkerNodes.contains(n); }
212 212
213 private: 213 private:
214 Document* m_document; 214 Document& m_document;
215 HashMap<AXID, RefPtr<AXObject> > m_objects; 215 HashMap<AXID, RefPtr<AXObject> > m_objects;
216 HashMap<RenderObject*, AXID> m_renderObjectMapping; 216 HashMap<RenderObject*, AXID> m_renderObjectMapping;
217 HashMap<Widget*, AXID> m_widgetObjectMapping; 217 HashMap<Widget*, AXID> m_widgetObjectMapping;
218 HashMap<Node*, AXID> m_nodeObjectMapping; 218 HashMap<Node*, AXID> m_nodeObjectMapping;
219 HashMap<AbstractInlineTextBox*, AXID> m_inlineTextBoxObjectMapping; 219 HashMap<AbstractInlineTextBox*, AXID> m_inlineTextBoxObjectMapping;
220 HashSet<Node*> m_textMarkerNodes; 220 HashSet<Node*> m_textMarkerNodes;
221 OwnPtr<AXComputedObjectAttributeCache> m_computedObjectAttributeCache; 221 OwnPtr<AXComputedObjectAttributeCache> m_computedObjectAttributeCache;
222 static bool gAccessibilityEnabled; 222 static bool gAccessibilityEnabled;
223 static bool gInlineTextBoxAccessibility; 223 static bool gInlineTextBoxAccessibility;
224 224
225 HashSet<AXID> m_idsInUse; 225 HashSet<AXID> m_idsInUse;
226 226
227 Timer<AXObjectCache> m_notificationPostTimer; 227 Timer<AXObjectCache> m_notificationPostTimer;
228 Vector<pair<RefPtr<AXObject>, AXNotification> > m_notificationsToPost; 228 Vector<pair<RefPtr<AXObject>, AXNotification> > m_notificationsToPost;
229 void notificationPostTimerFired(Timer<AXObjectCache>*); 229 void notificationPostTimerFired(Timer<AXObjectCache>*);
230 230
231 static AXObject* focusedImageMapUIElement(HTMLAreaElement*); 231 static AXObject* focusedImageMapUIElement(HTMLAreaElement*);
232 232
233 AXID getAXID(AXObject*); 233 AXID getAXID(AXObject*);
234 }; 234 };
235 235
236 bool nodeHasRole(Node*, const String& role); 236 bool nodeHasRole(Node*, const String& role);
237 // This will let you know if aria-hidden was explicitly set to false. 237 // This will let you know if aria-hidden was explicitly set to false.
238 bool isNodeAriaVisible(Node*); 238 bool isNodeAriaVisible(Node*);
239 239
240 } 240 }
241 241
242 #endif 242 #endif
OLDNEW
« no previous file with comments | « no previous file | Source/core/accessibility/AXObjectCache.cpp » ('j') | Source/core/accessibility/AXObjectCache.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698