| Index: Source/core/accessibility/AXObjectCacheImpl.cpp
|
| diff --git a/Source/core/accessibility/AXObjectCacheImpl.cpp b/Source/core/accessibility/AXObjectCacheImpl.cpp
|
| index 914b6da1128520602be80cd5c0aa9b2cc2a0b423..53e4cb563e2355f6a50b86ca7fe0a8074706ad8f 100644
|
| --- a/Source/core/accessibility/AXObjectCacheImpl.cpp
|
| +++ b/Source/core/accessibility/AXObjectCacheImpl.cpp
|
| @@ -88,34 +88,11 @@ AXObjectCache* AXObjectCache::create(Document& document)
|
| return new AXObjectCacheImpl(document);
|
| }
|
|
|
| -AXObjectInclusion AXComputedObjectAttributeCache::getIgnored(AXID id) const
|
| -{
|
| - HashMap<AXID, CachedAXObjectAttributes>::const_iterator it = m_idMapping.find(id);
|
| - return it != m_idMapping.end() ? it->value.ignored : DefaultBehavior;
|
| -}
|
| -
|
| -void AXComputedObjectAttributeCache::setIgnored(AXID id, AXObjectInclusion inclusion)
|
| -{
|
| - HashMap<AXID, CachedAXObjectAttributes>::iterator it = m_idMapping.find(id);
|
| - if (it != m_idMapping.end()) {
|
| - it->value.ignored = inclusion;
|
| - } else {
|
| - CachedAXObjectAttributes attributes;
|
| - attributes.ignored = inclusion;
|
| - m_idMapping.set(id, attributes);
|
| - }
|
| -}
|
| -
|
| -void AXComputedObjectAttributeCache::clear()
|
| -{
|
| - m_idMapping.clear();
|
| -}
|
| -
|
| AXObjectCacheImpl::AXObjectCacheImpl(Document& document)
|
| : m_document(document)
|
| + , m_modificationCount(0)
|
| , m_notificationPostTimer(this, &AXObjectCacheImpl::notificationPostTimerFired)
|
| {
|
| - m_computedObjectAttributeCache = AXComputedObjectAttributeCache::create();
|
| }
|
|
|
| AXObjectCacheImpl::~AXObjectCacheImpl()
|
| @@ -758,7 +735,7 @@ void AXObjectCacheImpl::postNotification(RenderObject* renderer, AXNotification
|
| if (!renderer)
|
| return;
|
|
|
| - m_computedObjectAttributeCache->clear();
|
| + m_modificationCount++;
|
|
|
| // Get an accessibility object that already exists. One should not be created here
|
| // because a render update may be in progress and creating an AX object can re-trigger a layout
|
| @@ -779,7 +756,7 @@ void AXObjectCacheImpl::postNotification(Node* node, AXNotification notification
|
| if (!node)
|
| return;
|
|
|
| - m_computedObjectAttributeCache->clear();
|
| + m_modificationCount++;
|
|
|
| // Get an accessibility object that already exists. One should not be created here
|
| // because a render update may be in progress and creating an AX object can re-trigger a layout
|
| @@ -797,7 +774,7 @@ void AXObjectCacheImpl::postNotification(Node* node, AXNotification notification
|
|
|
| void AXObjectCacheImpl::postNotification(AXObject* object, Document* document, AXNotification notification, bool postToElement, PostType postType)
|
| {
|
| - m_computedObjectAttributeCache->clear();
|
| + m_modificationCount++;
|
|
|
| if (object && !postToElement)
|
| object = object->observableObject();
|
| @@ -843,7 +820,7 @@ void AXObjectCacheImpl::handleScrollbarUpdate(FrameView* view)
|
|
|
| // We don't want to create a scroll view from this method, only update an existing one.
|
| if (AXObject* scrollViewObject = get(view)) {
|
| - m_computedObjectAttributeCache->clear();
|
| + m_modificationCount++;
|
| scrollViewObject->updateChildrenIfNecessary();
|
| }
|
| }
|
| @@ -853,7 +830,7 @@ void AXObjectCacheImpl::handleLayoutComplete(RenderObject* renderer)
|
| if (!renderer)
|
| return;
|
|
|
| - m_computedObjectAttributeCache->clear();
|
| + m_modificationCount++;
|
|
|
| // Create the AXObject if it didn't yet exist - that's always safe at the end of a layout, and it
|
| // allows an AX notification to be sent when a page has its first layout, rather than when the
|
| @@ -878,7 +855,7 @@ void AXObjectCacheImpl::handleAriaRoleChanged(Node* node)
|
| {
|
| if (AXObject* obj = getOrCreate(node)) {
|
| obj->updateAccessibilityRole();
|
| - m_computedObjectAttributeCache->clear();
|
| + m_modificationCount++;
|
| obj->notifyIfIgnoredValueChanged();
|
| }
|
| }
|
|
|