OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2014, Google Inc. All rights reserved. | 2 * Copyright (C) 2014, Google 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 18 matching lines...) Expand all Loading... |
29 #ifndef AXObjectCacheImpl_h | 29 #ifndef AXObjectCacheImpl_h |
30 #define AXObjectCacheImpl_h | 30 #define AXObjectCacheImpl_h |
31 | 31 |
32 #include "core/dom/AXObjectCache.h" | 32 #include "core/dom/AXObjectCache.h" |
33 #include "modules/ModulesExport.h" | 33 #include "modules/ModulesExport.h" |
34 #include "modules/accessibility/AXObject.h" | 34 #include "modules/accessibility/AXObject.h" |
35 #include "platform/Timer.h" | 35 #include "platform/Timer.h" |
36 #include "wtf/Forward.h" | 36 #include "wtf/Forward.h" |
37 #include "wtf/HashMap.h" | 37 #include "wtf/HashMap.h" |
38 #include "wtf/HashSet.h" | 38 #include "wtf/HashSet.h" |
39 #include <memory> | |
40 | 39 |
41 namespace blink { | 40 namespace blink { |
42 | 41 |
43 class AbstractInlineTextBox; | 42 class AbstractInlineTextBox; |
44 class HTMLAreaElement; | 43 class HTMLAreaElement; |
45 class FrameView; | 44 class FrameView; |
46 | 45 |
47 // This class should only be used from inside the accessibility directory. | 46 // This class should only be used from inside the accessibility directory. |
48 class MODULES_EXPORT AXObjectCacheImpl : public AXObjectCache { | 47 class MODULES_EXPORT AXObjectCacheImpl : public AXObjectCache { |
49 WTF_MAKE_NONCOPYABLE(AXObjectCacheImpl); | 48 WTF_MAKE_NONCOPYABLE(AXObjectCacheImpl); |
(...skipping 171 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
221 | 220 |
222 // Map from the AXID of any object with an aria-owns attribute to the set of
ids | 221 // Map from the AXID of any object with an aria-owns attribute to the set of
ids |
223 // of its children. This is *unvalidated*, it includes ids that may not curr
ently | 222 // of its children. This is *unvalidated*, it includes ids that may not curr
ently |
224 // exist in the tree. | 223 // exist in the tree. |
225 HashMap<AXID, HashSet<String>> m_ariaOwnerToIdsMapping; | 224 HashMap<AXID, HashSet<String>> m_ariaOwnerToIdsMapping; |
226 | 225 |
227 // Map from an ID (the ID attribute of a DOM element) to the set of elements
that | 226 // Map from an ID (the ID attribute of a DOM element) to the set of elements
that |
228 // want to own that ID. This is *unvalidated*, it includes possible duplicat
es. | 227 // want to own that ID. This is *unvalidated*, it includes possible duplicat
es. |
229 // This is used so that when an element with an ID is added to the tree or c
hanges | 228 // This is used so that when an element with an ID is added to the tree or c
hanges |
230 // its ID, we can quickly determine if it affects an aria-owns relationship. | 229 // its ID, we can quickly determine if it affects an aria-owns relationship. |
231 HashMap<String, std::unique_ptr<HashSet<AXID>>> m_idToAriaOwnersMapping; | 230 HashMap<String, OwnPtr<HashSet<AXID>>> m_idToAriaOwnersMapping; |
232 | 231 |
233 Timer<AXObjectCacheImpl> m_notificationPostTimer; | 232 Timer<AXObjectCacheImpl> m_notificationPostTimer; |
234 HeapVector<std::pair<Member<AXObject>, AXNotification>> m_notificationsToPos
t; | 233 HeapVector<std::pair<Member<AXObject>, AXNotification>> m_notificationsToPos
t; |
235 void notificationPostTimerFired(Timer<AXObjectCacheImpl>*); | 234 void notificationPostTimerFired(Timer<AXObjectCacheImpl>*); |
236 | 235 |
237 AXObject* focusedImageMapUIElement(HTMLAreaElement*); | 236 AXObject* focusedImageMapUIElement(HTMLAreaElement*); |
238 | 237 |
239 AXID getAXID(AXObject*); | 238 AXID getAXID(AXObject*); |
240 | 239 |
241 void textChanged(Node*); | 240 void textChanged(Node*); |
242 bool nodeIsTextControl(const Node*); | 241 bool nodeIsTextControl(const Node*); |
243 | 242 |
244 Settings* settings(); | 243 Settings* settings(); |
245 }; | 244 }; |
246 | 245 |
247 // This is the only subclass of AXObjectCache. | 246 // This is the only subclass of AXObjectCache. |
248 DEFINE_TYPE_CASTS(AXObjectCacheImpl, AXObjectCache, cache, true, true); | 247 DEFINE_TYPE_CASTS(AXObjectCacheImpl, AXObjectCache, cache, true, true); |
249 | 248 |
250 bool nodeHasRole(Node*, const String& role); | 249 bool nodeHasRole(Node*, const String& role); |
251 // This will let you know if aria-hidden was explicitly set to false. | 250 // This will let you know if aria-hidden was explicitly set to false. |
252 bool isNodeAriaVisible(Node*); | 251 bool isNodeAriaVisible(Node*); |
253 | 252 |
254 } // namespace blink | 253 } // namespace blink |
255 | 254 |
256 #endif | 255 #endif |
OLD | NEW |