Changeset 89609 in webkit
- Timestamp:
- Jun 23, 2011 1:24:55 PM (13 years ago)
- Location:
- trunk
- Files:
-
- 2 deleted
- 11 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r89608 r89609 1 2011-06-23 Sheriff Bot <webkit.review.bot@gmail.com> 2 3 Unreviewed, rolling out r89591 and r89593. 4 http://trac.webkit.org/changeset/89591 5 http://trac.webkit.org/changeset/89593 6 https://bugs.webkit.org/show_bug.cgi?id=63279 7 8 Caused test crashes in SL and Chromium (Requested by dimich_ 9 on #webkit). 10 11 * platform/mac/accessibility/aria-liveregion-without-element-access-expected.txt: Removed. 12 * platform/mac/accessibility/aria-liveregion-without-element-access.html: Removed. 13 1 14 2011-06-23 Eric Carlson <eric.carlson@apple.com> 2 15 -
trunk/Source/WebCore/ChangeLog
r89606 r89609 1 2011-06-23 Sheriff Bot <webkit.review.bot@gmail.com> 2 3 Unreviewed, rolling out r89591 and r89593. 4 http://trac.webkit.org/changeset/89591 5 http://trac.webkit.org/changeset/89593 6 https://bugs.webkit.org/show_bug.cgi?id=63279 7 8 Caused test crashes in SL and Chromium (Requested by dimich_ 9 on #webkit). 10 11 * accessibility/AXObjectCache.cpp: 12 (WebCore::AXObjectCache::AXObjectCache): 13 (WebCore::AXObjectCache::remove): 14 (WebCore::AXObjectCache::childrenChanged): 15 * accessibility/AXObjectCache.h: 16 * accessibility/AccessibilityMenuList.cpp: 17 (WebCore::AccessibilityMenuList::childrenChanged): 18 * accessibility/AccessibilityMenuList.h: 19 * accessibility/AccessibilityMenuListPopup.cpp: 20 (WebCore::AccessibilityMenuListPopup::childrenChanged): 21 * accessibility/AccessibilityMenuListPopup.h: 22 * accessibility/AccessibilityObject.h: 23 (WebCore::AccessibilityObject::childrenChanged): 24 * accessibility/AccessibilityRenderObject.cpp: 25 (WebCore::startOfContinuations): 26 (WebCore::AccessibilityRenderObject::updateAccessibilityRole): 27 (WebCore::AccessibilityRenderObject::childrenChanged): 28 * accessibility/AccessibilityRenderObject.h: 29 1 30 2011-06-23 Andreas Kling <kling@webkit.org> 2 31 -
trunk/Source/WebCore/accessibility/AXObjectCache.cpp
r89591 r89609 83 83 AXObjectCache::AXObjectCache(const Document* doc) 84 84 : m_notificationPostTimer(this, &AXObjectCache::notificationPostTimerFired) 85 , m_childrenUpdateTimer(this, &AXObjectCache::childrenUpdateTimerFired)86 85 { 87 86 m_document = const_cast<Document*>(doc); … … 369 368 remove(axID); 370 369 m_renderObjectMapping.remove(renderer); 371 m_childrenToUpdate.remove(renderer);372 370 } 373 371 … … 439 437 } 440 438 #endif 441 442 void AXObjectCache::childrenUpdateTimerFired(Timer<AXObjectCache>*)443 {444 if (m_childrenToUpdate.isEmpty())445 return;446 447 // Make a local copy in case childrenChanged() alters m_childrenToUpdate448 // (which might happen if the client asks to update the render tree).449 HashSet<RenderObject*> updateChildren;450 m_childrenToUpdate.swap(updateChildren);451 m_childrenToUpdate.clear();452 453 HashSet<RenderObject*>::iterator end = updateChildren.end();454 for (HashSet<RenderObject*>::iterator it = updateChildren.begin(); it != end; ++it) {455 if (AccessibilityObject* object = getOrCreate(*it))456 object->childrenChanged(AccessibilityObject::CreateParentObjects);457 }458 }459 439 460 440 void AXObjectCache::childrenChanged(RenderObject* renderer) … … 464 444 465 445 AXID axID = m_renderObjectMapping.get(renderer); 466 if (!axID) { 467 // If there's no AX object, creating one right now can be dangerous (because we're in the middle of adding/destroying a tree). 468 // Instead the update should be postponed and updated later. 469 m_childrenToUpdate.add(renderer); 470 if (!m_childrenUpdateTimer.isActive()) 471 m_childrenUpdateTimer.startOneShot(0); 472 } else { 473 if (AccessibilityObject* object = m_objects.get(axID).get()) 474 object->childrenChanged(AccessibilityObject::DoNotCreateParentObjects); 475 } 446 if (!axID) 447 return; 448 449 AccessibilityObject* obj = m_objects.get(axID).get(); 450 if (obj) 451 obj->childrenChanged(); 476 452 } 477 453 -
trunk/Source/WebCore/accessibility/AXObjectCache.h
r89591 r89609 167 167 Vector<pair<RefPtr<AccessibilityObject>, AXNotification> > m_notificationsToPost; 168 168 void notificationPostTimerFired(Timer<AXObjectCache>*); 169 170 Timer<AXObjectCache> m_childrenUpdateTimer; 171 HashSet<RenderObject*> m_childrenToUpdate; 172 void childrenUpdateTimerFired(Timer<AXObjectCache>*); 173 169 174 170 static AccessibilityObject* focusedImageMapUIElement(HTMLAreaElement*); 175 171 -
trunk/Source/WebCore/accessibility/AccessibilityMenuList.cpp
r89591 r89609 69 69 } 70 70 71 void AccessibilityMenuList::childrenChanged( ChildrenChangeOptions options)71 void AccessibilityMenuList::childrenChanged() 72 72 { 73 73 if (m_children.isEmpty()) … … 75 75 76 76 ASSERT(m_children.size() == 1); 77 m_children[0]->childrenChanged( options);77 m_children[0]->childrenChanged(); 78 78 } 79 79 -
trunk/Source/WebCore/accessibility/AccessibilityMenuList.h
r89591 r89609 52 52 53 53 virtual void addChildren(); 54 virtual void childrenChanged( ChildrenChangeOptions);54 virtual void childrenChanged(); 55 55 }; 56 56 -
trunk/Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp
r89591 r89609 106 106 } 107 107 108 void AccessibilityMenuListPopup::childrenChanged( ChildrenChangeOptions)108 void AccessibilityMenuListPopup::childrenChanged() 109 109 { 110 110 for (size_t i = m_children.size(); i > 0 ; --i) { -
trunk/Source/WebCore/accessibility/AccessibilityMenuListPopup.h
r89591 r89609 57 57 virtual bool press() const; 58 58 virtual void addChildren(); 59 virtual void childrenChanged( ChildrenChangeOptions);59 virtual void childrenChanged(); 60 60 61 61 AccessibilityMenuListOption* menuListOptionAccessibilityObject(HTMLElement*) const; -
trunk/Source/WebCore/accessibility/AccessibilityObject.h
r89591 r89609 465 465 virtual void decrement() { } 466 466 467 enum ChildrenChangeOptions { DoNotCreateParentObjects, CreateParentObjects }; 468 virtual void childrenChanged(ChildrenChangeOptions) { } 467 virtual void childrenChanged() { } 469 468 virtual void contentChanged() { } 470 469 virtual const AccessibilityChildrenVector& children() { return m_children; } -
trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp
r89591 r89609 223 223 static inline RenderInline* startOfContinuations(RenderObject* r) 224 224 { 225 if (r->isInlineElementContinuation() && r->node()->renderer() && r->isRenderInline())225 if (r->isInlineElementContinuation()) 226 226 return toRenderInline(r->node()->renderer()); 227 227 … … 3031 3031 // The AX hierarchy only needs to be updated if the ignored status of an element has changed. 3032 3032 if (ignoredStatus != accessibilityIsIgnored()) 3033 childrenChanged( DoNotCreateParentObjects);3033 childrenChanged(); 3034 3034 } 3035 3035 … … 3308 3308 } 3309 3309 3310 void AccessibilityRenderObject::childrenChanged( ChildrenChangeOptions options)3310 void AccessibilityRenderObject::childrenChanged() 3311 3311 { 3312 3312 // This method is meant as a quick way of marking a portion of the accessibility tree dirty. … … 3320 3320 // If AX elements are created now, they could interrogate the render tree while it's in a funky state. 3321 3321 // At the same time, process ARIA live region changes. 3322 for (AccessibilityObject* parent = this; parent; parent = (options == CreateParentObjects) ? parent->parentObject() :parent->parentObjectIfExists()) {3322 for (AccessibilityObject* parent = this; parent; parent = parent->parentObjectIfExists()) { 3323 3323 if (!parent->isAccessibilityRenderObject()) 3324 3324 continue; -
trunk/Source/WebCore/accessibility/AccessibilityRenderObject.h
r89591 r89609 208 208 209 209 virtual void detach(); 210 virtual void childrenChanged( ChildrenChangeOptions);210 virtual void childrenChanged(); 211 211 virtual void contentChanged(); 212 212 virtual void addChildren();
Note: See TracChangeset
for help on using the changeset viewer.