Diff
Modified: trunk/LayoutTests/ChangeLog (89608 => 89609)
--- trunk/LayoutTests/ChangeLog 2011-06-23 20:22:43 UTC (rev 89608)
+++ trunk/LayoutTests/ChangeLog 2011-06-23 20:24:55 UTC (rev 89609)
@@ -1,3 +1,16 @@
+2011-06-23 Sheriff Bot <[email protected]>
+
+ Unreviewed, rolling out r89591 and r89593.
+ http://trac.webkit.org/changeset/89591
+ http://trac.webkit.org/changeset/89593
+ https://bugs.webkit.org/show_bug.cgi?id=63279
+
+ Caused test crashes in SL and Chromium (Requested by dimich_
+ on #webkit).
+
+ * platform/mac/accessibility/aria-liveregion-without-element-access-expected.txt: Removed.
+ * platform/mac/accessibility/aria-liveregion-without-element-access.html: Removed.
+
2011-06-23 Eric Carlson <[email protected]>
Reviewed by Darin Adler.
Deleted: trunk/LayoutTests/platform/mac/accessibility/aria-liveregion-without-element-access-expected.txt (89608 => 89609)
--- trunk/LayoutTests/platform/mac/accessibility/aria-liveregion-without-element-access-expected.txt 2011-06-23 20:22:43 UTC (rev 89608)
+++ trunk/LayoutTests/platform/mac/accessibility/aria-liveregion-without-element-access-expected.txt 2011-06-23 20:24:55 UTC (rev 89609)
@@ -1,14 +0,0 @@
-ALERT: Successfully received AXLiveRegionChanged
-text
-
-added
-This tests that adding an element to a live region will trigger a notification even though the AX element was not created previously.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-
-PASS addedNotification is true
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
Deleted: trunk/LayoutTests/platform/mac/accessibility/aria-liveregion-without-element-access.html (89608 => 89609)
--- trunk/LayoutTests/platform/mac/accessibility/aria-liveregion-without-element-access.html 2011-06-23 20:22:43 UTC (rev 89608)
+++ trunk/LayoutTests/platform/mac/accessibility/aria-liveregion-without-element-access.html 2011-06-23 20:24:55 UTC (rev 89609)
@@ -1,55 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML//EN">
-<html>
-<head>
-<link rel="stylesheet" href=""
-<script>
-var successfullyParsed = false;
-</script>
-<script src=""
-</head>
-<body id="body">
-
-<div role="group" tabindex=0 id="liveregion" aria-live="polite" aria-relevant="additions">
-<h3 id="innerlive">text</h3>
-<div role="group">
- <div id="addregion"></div>
-</div>
-</div>
-
-<p id="description"></p>
-<div id="console"></div>
-
-<script>
-
- description("This tests that adding an element to a live region will trigger a notification even though the AX element was not created previously.");
-
- var liveRegion = 0;
- function ariaCallback(notification) {
- if (notification == "AXLiveRegionChanged") {
- alert("Successfully received " + notification);
- liveRegion.removeNotificationListener();
- window.layoutTestController.notifyDone();
- }
- }
-
- if (window.accessibilityController) {
- window.layoutTestController.waitUntilDone();
-
- document.getElementById("liveregion").focus();
- liveRegion = window.accessibilityController.focusedElement;
-
- // Trigger the live region callback for a new element. Add region has not been created
- // as an element, but this notification should still be sent for liveregion.
- document.getElementById("addregion").appendChild(document.createTextNode("added"));
-
- var addedNotification = liveRegion.addNotificationListener(ariaCallback);
- shouldBe("addedNotification", "true");
-
- }
-
- successfullyParsed = true;
-</script>
-
-<script src=""
-</body>
-</html>
Modified: trunk/Source/WebCore/ChangeLog (89608 => 89609)
--- trunk/Source/WebCore/ChangeLog 2011-06-23 20:22:43 UTC (rev 89608)
+++ trunk/Source/WebCore/ChangeLog 2011-06-23 20:24:55 UTC (rev 89609)
@@ -1,3 +1,32 @@
+2011-06-23 Sheriff Bot <[email protected]>
+
+ Unreviewed, rolling out r89591 and r89593.
+ http://trac.webkit.org/changeset/89591
+ http://trac.webkit.org/changeset/89593
+ https://bugs.webkit.org/show_bug.cgi?id=63279
+
+ Caused test crashes in SL and Chromium (Requested by dimich_
+ on #webkit).
+
+ * accessibility/AXObjectCache.cpp:
+ (WebCore::AXObjectCache::AXObjectCache):
+ (WebCore::AXObjectCache::remove):
+ (WebCore::AXObjectCache::childrenChanged):
+ * accessibility/AXObjectCache.h:
+ * accessibility/AccessibilityMenuList.cpp:
+ (WebCore::AccessibilityMenuList::childrenChanged):
+ * accessibility/AccessibilityMenuList.h:
+ * accessibility/AccessibilityMenuListPopup.cpp:
+ (WebCore::AccessibilityMenuListPopup::childrenChanged):
+ * accessibility/AccessibilityMenuListPopup.h:
+ * accessibility/AccessibilityObject.h:
+ (WebCore::AccessibilityObject::childrenChanged):
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::startOfContinuations):
+ (WebCore::AccessibilityRenderObject::updateAccessibilityRole):
+ (WebCore::AccessibilityRenderObject::childrenChanged):
+ * accessibility/AccessibilityRenderObject.h:
+
2011-06-23 Andreas Kling <[email protected]>
Reviewed by Benjamin Poulain.
Modified: trunk/Source/WebCore/accessibility/AXObjectCache.cpp (89608 => 89609)
--- trunk/Source/WebCore/accessibility/AXObjectCache.cpp 2011-06-23 20:22:43 UTC (rev 89608)
+++ trunk/Source/WebCore/accessibility/AXObjectCache.cpp 2011-06-23 20:24:55 UTC (rev 89609)
@@ -82,7 +82,6 @@
AXObjectCache::AXObjectCache(const Document* doc)
: m_notificationPostTimer(this, &AXObjectCache::notificationPostTimerFired)
- , m_childrenUpdateTimer(this, &AXObjectCache::childrenUpdateTimerFired)
{
m_document = const_cast<Document*>(doc);
}
@@ -368,7 +367,6 @@
AXID axID = m_renderObjectMapping.get(renderer);
remove(axID);
m_renderObjectMapping.remove(renderer);
- m_childrenToUpdate.remove(renderer);
}
void AXObjectCache::remove(Widget* view)
@@ -438,24 +436,6 @@
object->contentChanged();
}
#endif
-
-void AXObjectCache::childrenUpdateTimerFired(Timer<AXObjectCache>*)
-{
- if (m_childrenToUpdate.isEmpty())
- return;
-
- // Make a local copy in case childrenChanged() alters m_childrenToUpdate
- // (which might happen if the client asks to update the render tree).
- HashSet<RenderObject*> updateChildren;
- m_childrenToUpdate.swap(updateChildren);
- m_childrenToUpdate.clear();
-
- HashSet<RenderObject*>::iterator end = updateChildren.end();
- for (HashSet<RenderObject*>::iterator it = updateChildren.begin(); it != end; ++it) {
- if (AccessibilityObject* object = getOrCreate(*it))
- object->childrenChanged(AccessibilityObject::CreateParentObjects);
- }
-}
void AXObjectCache::childrenChanged(RenderObject* renderer)
{
@@ -463,16 +443,12 @@
return;
AXID axID = m_renderObjectMapping.get(renderer);
- if (!axID) {
- // If there's no AX object, creating one right now can be dangerous (because we're in the middle of adding/destroying a tree).
- // Instead the update should be postponed and updated later.
- m_childrenToUpdate.add(renderer);
- if (!m_childrenUpdateTimer.isActive())
- m_childrenUpdateTimer.startOneShot(0);
- } else {
- if (AccessibilityObject* object = m_objects.get(axID).get())
- object->childrenChanged(AccessibilityObject::DoNotCreateParentObjects);
- }
+ if (!axID)
+ return;
+
+ AccessibilityObject* obj = m_objects.get(axID).get();
+ if (obj)
+ obj->childrenChanged();
}
void AXObjectCache::notificationPostTimerFired(Timer<AXObjectCache>*)
Modified: trunk/Source/WebCore/accessibility/AXObjectCache.h (89608 => 89609)
--- trunk/Source/WebCore/accessibility/AXObjectCache.h 2011-06-23 20:22:43 UTC (rev 89608)
+++ trunk/Source/WebCore/accessibility/AXObjectCache.h 2011-06-23 20:24:55 UTC (rev 89609)
@@ -166,11 +166,7 @@
Timer<AXObjectCache> m_notificationPostTimer;
Vector<pair<RefPtr<AccessibilityObject>, AXNotification> > m_notificationsToPost;
void notificationPostTimerFired(Timer<AXObjectCache>*);
-
- Timer<AXObjectCache> m_childrenUpdateTimer;
- HashSet<RenderObject*> m_childrenToUpdate;
- void childrenUpdateTimerFired(Timer<AXObjectCache>*);
-
+
static AccessibilityObject* focusedImageMapUIElement(HTMLAreaElement*);
AXID getAXID(AccessibilityObject*);
Modified: trunk/Source/WebCore/accessibility/AccessibilityMenuList.cpp (89608 => 89609)
--- trunk/Source/WebCore/accessibility/AccessibilityMenuList.cpp 2011-06-23 20:22:43 UTC (rev 89608)
+++ trunk/Source/WebCore/accessibility/AccessibilityMenuList.cpp 2011-06-23 20:24:55 UTC (rev 89609)
@@ -68,13 +68,13 @@
list->addChildren();
}
-void AccessibilityMenuList::childrenChanged(ChildrenChangeOptions options)
+void AccessibilityMenuList::childrenChanged()
{
if (m_children.isEmpty())
return;
ASSERT(m_children.size() == 1);
- m_children[0]->childrenChanged(options);
+ m_children[0]->childrenChanged();
}
bool AccessibilityMenuList::isCollapsed() const
Modified: trunk/Source/WebCore/accessibility/AccessibilityMenuList.h (89608 => 89609)
--- trunk/Source/WebCore/accessibility/AccessibilityMenuList.h 2011-06-23 20:22:43 UTC (rev 89608)
+++ trunk/Source/WebCore/accessibility/AccessibilityMenuList.h 2011-06-23 20:24:55 UTC (rev 89609)
@@ -51,7 +51,7 @@
virtual bool canSetFocusAttribute() const { return true; }
virtual void addChildren();
- virtual void childrenChanged(ChildrenChangeOptions);
+ virtual void childrenChanged();
};
} // namespace WebCore
Modified: trunk/Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp (89608 => 89609)
--- trunk/Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp 2011-06-23 20:22:43 UTC (rev 89608)
+++ trunk/Source/WebCore/accessibility/AccessibilityMenuListPopup.cpp 2011-06-23 20:24:55 UTC (rev 89609)
@@ -105,7 +105,7 @@
}
}
-void AccessibilityMenuListPopup::childrenChanged(ChildrenChangeOptions)
+void AccessibilityMenuListPopup::childrenChanged()
{
for (size_t i = m_children.size(); i > 0 ; --i) {
AccessibilityObject* child = m_children[i - 1].get();
Modified: trunk/Source/WebCore/accessibility/AccessibilityMenuListPopup.h (89608 => 89609)
--- trunk/Source/WebCore/accessibility/AccessibilityMenuListPopup.h 2011-06-23 20:22:43 UTC (rev 89608)
+++ trunk/Source/WebCore/accessibility/AccessibilityMenuListPopup.h 2011-06-23 20:24:55 UTC (rev 89609)
@@ -56,7 +56,7 @@
virtual AccessibilityObject* parentObject() const;
virtual bool press() const;
virtual void addChildren();
- virtual void childrenChanged(ChildrenChangeOptions);
+ virtual void childrenChanged();
AccessibilityMenuListOption* menuListOptionAccessibilityObject(HTMLElement*) const;
Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.h (89608 => 89609)
--- trunk/Source/WebCore/accessibility/AccessibilityObject.h 2011-06-23 20:22:43 UTC (rev 89608)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.h 2011-06-23 20:24:55 UTC (rev 89609)
@@ -464,8 +464,7 @@
virtual void increment() { }
virtual void decrement() { }
- enum ChildrenChangeOptions { DoNotCreateParentObjects, CreateParentObjects };
- virtual void childrenChanged(ChildrenChangeOptions) { }
+ virtual void childrenChanged() { }
virtual void contentChanged() { }
virtual const AccessibilityChildrenVector& children() { return m_children; }
virtual void addChildren() { }
Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp (89608 => 89609)
--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp 2011-06-23 20:22:43 UTC (rev 89608)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp 2011-06-23 20:24:55 UTC (rev 89609)
@@ -222,7 +222,7 @@
static inline RenderInline* startOfContinuations(RenderObject* r)
{
- if (r->isInlineElementContinuation() && r->node()->renderer() && r->isRenderInline())
+ if (r->isInlineElementContinuation())
return toRenderInline(r->node()->renderer());
// Blocks with a previous continuation always have a next continuation
@@ -3030,7 +3030,7 @@
// The AX hierarchy only needs to be updated if the ignored status of an element has changed.
if (ignoredStatus != accessibilityIsIgnored())
- childrenChanged(DoNotCreateParentObjects);
+ childrenChanged();
}
AccessibilityRole AccessibilityRenderObject::determineAccessibilityRole()
@@ -3307,7 +3307,7 @@
}
}
-void AccessibilityRenderObject::childrenChanged(ChildrenChangeOptions options)
+void AccessibilityRenderObject::childrenChanged()
{
// This method is meant as a quick way of marking a portion of the accessibility tree dirty.
if (!m_renderer)
@@ -3319,7 +3319,7 @@
// called during render layouts, minimal work should be done.
// If AX elements are created now, they could interrogate the render tree while it's in a funky state.
// At the same time, process ARIA live region changes.
- for (AccessibilityObject* parent = this; parent; parent = (options == CreateParentObjects) ? parent->parentObject() : parent->parentObjectIfExists()) {
+ for (AccessibilityObject* parent = this; parent; parent = parent->parentObjectIfExists()) {
if (!parent->isAccessibilityRenderObject())
continue;
Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.h (89608 => 89609)
--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.h 2011-06-23 20:22:43 UTC (rev 89608)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.h 2011-06-23 20:24:55 UTC (rev 89609)
@@ -207,7 +207,7 @@
virtual void decrement();
virtual void detach();
- virtual void childrenChanged(ChildrenChangeOptions);
+ virtual void childrenChanged();
virtual void contentChanged();
virtual void addChildren();
virtual bool canHaveChildren() const;