<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[162132] trunk</title>
</head>
<body>

<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt;  }
#msg dl a { font-weight: bold}
#msg dl a:link    { color:#fc3; }
#msg dl a:active  { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff  {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/162132">162132</a></dd>
<dt>Author</dt> <dd>cfleizach@apple.com</dd>
<dt>Date</dt> <dd>2014-01-16 09:33:06 -0800 (Thu, 16 Jan 2014)</dd>
</dl>

<h3>Log Message</h3>
<pre>AX: WebKit is not firing AXMenuOpenedNotification
https://bugs.webkit.org/show_bug.cgi?id=126993

Reviewed by Mario Sanchez Prada.

Source/WebCore: 

To monitor for menu open notifications, we need to know which children are added to
the render tree, so the childrenChanged() method has been updated to allow for that.
Once we know the new child, we can then check what kind of role it has.

I also found a flakiness issue with DRT where posting a notification back to DRT
would sometimes cause a new notification to be queued, which would then be lost when the
queue was cleared. This was fixed by copying the notifications to post before iterating them.

Test: platform/mac/accessibility/aria-menu-open-notification.html

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::checkForOpenMenu):
(WebCore::AXObjectCache::childrenChanged):
(WebCore::AXObjectCache::notificationPostTimerFired):
* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::childrenChanged):
* accessibility/AccessibilityNodeObject.h:
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postPlatformNotification):
* rendering/RenderElement.cpp:
(WebCore::RenderElement::insertChildInternal):
(WebCore::RenderElement::styleWillChange):

LayoutTests: 

* platform/mac/accessibility/aria-menu-open-notification-expected.txt: Added.
* platform/mac/accessibility/aria-menu-open-notification.html: Added.</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAXObjectCachecpp">trunk/Source/WebCore/accessibility/AXObjectCache.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAXObjectCacheh">trunk/Source/WebCore/accessibility/AXObjectCache.h</a></li>
<li><a href="#trunkSourceWebCoreaccessibilitymacAXObjectCacheMacmm">trunk/Source/WebCore/accessibility/mac/AXObjectCacheMac.mm</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderElementcpp">trunk/Source/WebCore/rendering/RenderElement.cpp</a></li>
<li><a href="#trunkSourceWebCorerenderingRenderMenuListcpp">trunk/Source/WebCore/rendering/RenderMenuList.cpp</a></li>
</ul>

<h3>Added Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsplatformmacaccessibilityariamenuopennotificationexpectedtxt">trunk/LayoutTests/platform/mac/accessibility/aria-menu-open-notification-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacaccessibilityariamenuopennotificationhtml">trunk/LayoutTests/platform/mac/accessibility/aria-menu-open-notification.html</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (162131 => 162132)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2014-01-16 17:07:16 UTC (rev 162131)
+++ trunk/LayoutTests/ChangeLog        2014-01-16 17:33:06 UTC (rev 162132)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2014-01-16  Chris Fleizach  &lt;cfleizach@apple.com&gt;
+
+        AX: WebKit is not firing AXMenuOpenedNotification
+        https://bugs.webkit.org/show_bug.cgi?id=126993
+
+        Reviewed by Mario Sanchez Prada.
+
+        * platform/mac/accessibility/aria-menu-open-notification-expected.txt: Added.
+        * platform/mac/accessibility/aria-menu-open-notification.html: Added.
+
</ins><span class="cx"> 2014-01-16  Zalan Bujtas  &lt;zalan@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Merged some more subpixel skipped tests. Unreviewed.
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacaccessibilityariamenuopennotificationexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/mac/accessibility/aria-menu-open-notification-expected.txt (0 => 162132)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/accessibility/aria-menu-open-notification-expected.txt                                (rev 0)
+++ trunk/LayoutTests/platform/mac/accessibility/aria-menu-open-notification-expected.txt        2014-01-16 17:33:06 UTC (rev 162132)
</span><span class="lines">@@ -0,0 +1,14 @@
</span><ins>+Menu item 1
+Menu item 2
+This tests that the AXMenuOpened notification gets fired when an ARIA menu popup opens.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS addedNotification is true
+Received menu opened notification: AXMenuOpened
+Menu element: AXRole: AXMenu
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmacaccessibilityariamenuopennotificationhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/mac/accessibility/aria-menu-open-notification.html (0 => 162132)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/accessibility/aria-menu-open-notification.html                                (rev 0)
+++ trunk/LayoutTests/platform/mac/accessibility/aria-menu-open-notification.html        2014-01-16 17:33:06 UTC (rev 162132)
</span><span class="lines">@@ -0,0 +1,51 @@
</span><ins>+&lt;!DOCTYPE HTML PUBLIC &quot;-//IETF//DTD HTML//EN&quot;&gt;
+&lt;html&gt;
+&lt;head&gt;
+&lt;script src=&quot;../../../resources/js-test-pre.js&quot;&gt;&lt;/script&gt;
+&lt;/head&gt;
+&lt;body id=&quot;body&quot;&gt;
+
+&lt;div id=&quot;menu&quot; role=&quot;menu&quot; hidden&gt;
+    &lt;div role=&quot;menuitem&quot; id=&quot;item1&quot; tabindex=&quot;0&quot;&gt;Menu item 1&lt;/div&gt;
+    &lt;div role=&quot;menuitem&quot; id=&quot;item2&quot; tabindex=&quot;0&quot;&gt;Menu item 2&lt;/div&gt;
+&lt;/div&gt;
+
+&lt;p id=&quot;description&quot;&gt;&lt;/p&gt;
+&lt;div id=&quot;console&quot;&gt;&lt;/div&gt;
+
+&lt;script&gt;
+
+    description(&quot;This tests that the AXMenuOpened notification gets fired when an ARIA menu popup opens.&quot;);
+
+    function showMenu() {
+        document.getElementById(&quot;menu&quot;).removeAttribute(&quot;hidden&quot;);
+    }
+
+    var notification = 0;
+    var element = 0;
+    function ariaCallback(element, notification) {
+        if (notification == &quot;AXMenuOpened&quot;) {
+           debug(&quot;Received menu opened notification: &quot; + notification);
+           debug(&quot;Menu element: &quot; + element.role);
+           accessibilityController.removeNotificationListener();
+           finishJSTest();
+        }
+    }
+
+    window.jsTestIsAsync = true;
+    if (window.accessibilityController) {
+        var addedNotification = accessibilityController.addNotificationListener(ariaCallback);
+        shouldBe(&quot;addedNotification&quot;, &quot;true&quot;);
+
+        // Make sure AX is enabled by accessing root element.
+        accessibilityController.rootElement;
+
+        setTimeout(&quot;showMenu();&quot;, 1);
+    }
+    successfullyParsed = true;
+
+&lt;/script&gt;
+
+&lt;script src=&quot;../../../resources/js-test-post.js&quot;&gt;&lt;/script&gt;
+&lt;/body&gt;
+&lt;/html&gt;
</ins></span></pre></div>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (162131 => 162132)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-01-16 17:07:16 UTC (rev 162131)
+++ trunk/Source/WebCore/ChangeLog        2014-01-16 17:33:06 UTC (rev 162132)
</span><span class="lines">@@ -1,5 +1,35 @@
</span><span class="cx"> 2014-01-16  Chris Fleizach  &lt;cfleizach@apple.com&gt;
</span><span class="cx"> 
</span><ins>+        AX: WebKit is not firing AXMenuOpenedNotification
+        https://bugs.webkit.org/show_bug.cgi?id=126993
+
+        Reviewed by Mario Sanchez Prada.
+
+        To monitor for menu open notifications, we need to know which children are added to
+        the render tree, so the childrenChanged() method has been updated to allow for that.
+        Once we know the new child, we can then check what kind of role it has.
+
+        I also found a flakiness issue with DRT where posting a notification back to DRT
+        would sometimes cause a new notification to be queued, which would then be lost when the
+        queue was cleared. This was fixed by copying the notifications to post before iterating them.
+
+        Test: platform/mac/accessibility/aria-menu-open-notification.html
+
+        * accessibility/AXObjectCache.cpp:
+        (WebCore::AXObjectCache::checkForOpenMenu):
+        (WebCore::AXObjectCache::childrenChanged):
+        (WebCore::AXObjectCache::notificationPostTimerFired):
+        * accessibility/AXObjectCache.h:
+        (WebCore::AXObjectCache::childrenChanged):
+        * accessibility/AccessibilityNodeObject.h:
+        * accessibility/mac/AXObjectCacheMac.mm:
+        (WebCore::AXObjectCache::postPlatformNotification):
+        * rendering/RenderElement.cpp:
+        (WebCore::RenderElement::insertChildInternal):
+        (WebCore::RenderElement::styleWillChange):
+
+2014-01-16  Chris Fleizach  &lt;cfleizach@apple.com&gt;
+
</ins><span class="cx">         AX: WebKit is not firing AXMenuItemSelectedNotification
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=127081
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAXObjectCachecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AXObjectCache.cpp (162131 => 162132)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AXObjectCache.cpp        2014-01-16 17:07:16 UTC (rev 162131)
+++ trunk/Source/WebCore/accessibility/AXObjectCache.cpp        2014-01-16 17:33:06 UTC (rev 162132)
</span><span class="lines">@@ -615,13 +615,26 @@
</span><span class="cx">     get(node);
</span><span class="cx"> }
</span><span class="cx"> 
</span><ins>+void AXObjectCache::handleMenuOpened(Node* node)
+{
+    if (!node || !node-&gt;renderer() || !nodeHasRole(node, &quot;menu&quot;))
+        return;
+    
+    postNotification(getOrCreate(node), &amp;document(), AXMenuOpened);
+}
+    
</ins><span class="cx"> void AXObjectCache::childrenChanged(Node* node)
</span><span class="cx"> {
</span><span class="cx">     childrenChanged(get(node));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void AXObjectCache::childrenChanged(RenderObject* renderer)
</del><ins>+void AXObjectCache::childrenChanged(RenderObject* renderer, RenderObject* newChild)
</ins><span class="cx"> {
</span><ins>+    if (!renderer)
+        return;
+    if (newChild)
+        handleMenuOpened(newChild-&gt;node());
+    
</ins><span class="cx">     childrenChanged(get(renderer));
</span><span class="cx"> }
</span><span class="cx"> 
</span><span class="lines">@@ -636,12 +649,15 @@
</span><span class="cx"> void AXObjectCache::notificationPostTimerFired(Timer&lt;AXObjectCache&gt;&amp;)
</span><span class="cx"> {
</span><span class="cx">     Ref&lt;Document&gt; protectorForCacheOwner(m_document);
</span><del>-
</del><span class="cx">     m_notificationPostTimer.stop();
</span><del>-
-    unsigned i = 0, count = m_notificationsToPost.size();
-    for (i = 0; i &lt; count; ++i) {
-        AccessibilityObject* obj = m_notificationsToPost[i].first.get();
</del><ins>+    
+    // In DRT, posting notifications has a tendency to immediately queue up other notifications, which can lead to unexpected behavior
+    // when the notification list is cleared at the end. Instead copy this list at the start.
+    auto notifications = m_notificationsToPost;
+    m_notificationsToPost.clear();
+    
+    for (const auto&amp; note : notifications) {
+        AccessibilityObject* obj = note.first.get();
</ins><span class="cx">         if (!obj-&gt;axObjectID())
</span><span class="cx">             continue;
</span><span class="cx"> 
</span><span class="lines">@@ -658,15 +674,13 @@
</span><span class="cx">                 ASSERT(!renderer-&gt;view().layoutState());
</span><span class="cx">         }
</span><span class="cx"> #endif
</span><del>-        
-        AXNotification notification = m_notificationsToPost[i].second;
</del><ins>+
+        AXNotification notification = note.second;
</ins><span class="cx">         postPlatformNotification(obj, notification);
</span><span class="cx"> 
</span><span class="cx">         if (notification == AXChildrenChanged &amp;&amp; obj-&gt;parentObjectIfExists() &amp;&amp; obj-&gt;lastKnownIsIgnoredValue() != obj-&gt;accessibilityIsIgnored())
</span><span class="cx">             childrenChanged(obj-&gt;parentObject());
</span><span class="cx">     }
</span><del>-    
-    m_notificationsToPost.clear();
</del><span class="cx"> }
</span><span class="cx">     
</span><span class="cx"> void AXObjectCache::postNotification(RenderObject* renderer, AXNotification notification, PostTarget postTarget, PostType postType)
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAXObjectCacheh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AXObjectCache.h (162131 => 162132)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AXObjectCache.h        2014-01-16 17:07:16 UTC (rev 162131)
+++ trunk/Source/WebCore/accessibility/AXObjectCache.h        2014-01-16 17:33:06 UTC (rev 162132)
</span><span class="lines">@@ -105,7 +105,7 @@
</span><span class="cx">     void detachWrapper(AccessibilityObject*, AccessibilityDetachmentType);
</span><span class="cx">     void attachWrapper(AccessibilityObject*);
</span><span class="cx">     void childrenChanged(Node*);
</span><del>-    void childrenChanged(RenderObject*);
</del><ins>+    void childrenChanged(RenderObject*, RenderObject* newChild = nullptr);
</ins><span class="cx">     void childrenChanged(AccessibilityObject*);
</span><span class="cx">     void checkedStateChanged(Node*);
</span><span class="cx">     void selectedChildrenChanged(Node*);
</span><span class="lines">@@ -170,6 +170,7 @@
</span><span class="cx">         AXMenuListItemSelected,
</span><span class="cx">         AXMenuListValueChanged,
</span><span class="cx">         AXMenuClosed,
</span><ins>+        AXMenuOpened,
</ins><span class="cx">         AXRowCountChanged,
</span><span class="cx">         AXRowCollapsed,
</span><span class="cx">         AXRowExpanded,
</span><span class="lines">@@ -238,6 +239,7 @@
</span><span class="cx">     Timer&lt;AXObjectCache&gt; m_notificationPostTimer;
</span><span class="cx">     Vector&lt;std::pair&lt;RefPtr&lt;AccessibilityObject&gt;, AXNotification&gt;&gt; m_notificationsToPost;
</span><span class="cx">     void notificationPostTimerFired(Timer&lt;AXObjectCache&gt;&amp;);
</span><ins>+    void handleMenuOpened(Node*);
</ins><span class="cx">     void handleMenuItemSelected(Node*);
</span><span class="cx">     
</span><span class="cx">     static AccessibilityObject* focusedImageMapUIElement(HTMLAreaElement*);
</span><span class="lines">@@ -282,7 +284,7 @@
</span><span class="cx"> inline const Element* AXObjectCache::rootAXEditableElement(const Node*) { return 0; }
</span><span class="cx"> inline void AXObjectCache::attachWrapper(AccessibilityObject*) { }
</span><span class="cx"> inline void AXObjectCache::checkedStateChanged(Node*) { }
</span><del>-inline void AXObjectCache::childrenChanged(RenderObject*) { }
</del><ins>+inline void AXObjectCache::childrenChanged(RenderObject*, RenderObject*) { }
</ins><span class="cx"> inline void AXObjectCache::childrenChanged(Node*) { }
</span><span class="cx"> inline void AXObjectCache::childrenChanged(AccessibilityObject*) { }
</span><span class="cx"> inline void AXObjectCache::textChanged(RenderObject*) { }
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilitymacAXObjectCacheMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/mac/AXObjectCacheMac.mm (162131 => 162132)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/mac/AXObjectCacheMac.mm        2014-01-16 17:07:16 UTC (rev 162131)
+++ trunk/Source/WebCore/accessibility/mac/AXObjectCacheMac.mm        2014-01-16 17:33:06 UTC (rev 162132)
</span><span class="lines">@@ -124,6 +124,9 @@
</span><span class="cx">         case AXMenuListItemSelected:
</span><span class="cx">             macNotification = (id)kAXMenuItemSelectedNotification;
</span><span class="cx">             break;
</span><ins>+        case AXMenuOpened:
+            macNotification = (id)kAXMenuOpenedNotification;
+            break;
</ins><span class="cx">         case AXCheckedStateChanged:
</span><span class="cx">             // Does not exist on Mac.
</span><span class="cx">         default:
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderElement.cpp (162131 => 162132)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderElement.cpp        2014-01-16 17:07:16 UTC (rev 162131)
+++ trunk/Source/WebCore/rendering/RenderElement.cpp        2014-01-16 17:33:06 UTC (rev 162132)
</span><span class="lines">@@ -593,7 +593,7 @@
</span><span class="cx">         setChildNeedsLayout(); // We may supply the static position for an absolute positioned child.
</span><span class="cx"> 
</span><span class="cx">     if (AXObjectCache* cache = document().axObjectCache())
</span><del>-        cache-&gt;childrenChanged(this);
</del><ins>+        cache-&gt;childrenChanged(this, newChild);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderElement::removeChildInternal(RenderObject&amp; oldChild, NotifyChildrenType notifyChildren)
</span><span class="lines">@@ -842,7 +842,7 @@
</span><span class="cx"> #endif
</span><span class="cx">         if (visibilityChanged) {
</span><span class="cx">             if (AXObjectCache* cache = document().existingAXObjectCache())
</span><del>-                cache-&gt;childrenChanged(parent());
</del><ins>+                cache-&gt;childrenChanged(parent(), this);
</ins><span class="cx">         }
</span><span class="cx"> 
</span><span class="cx">         // Keep layer hierarchy visibility bits up to date if visibility changes.
</span></span></pre></div>
<a id="trunkSourceWebCorerenderingRenderMenuListcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/rendering/RenderMenuList.cpp (162131 => 162132)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/rendering/RenderMenuList.cpp        2014-01-16 17:07:16 UTC (rev 162131)
+++ trunk/Source/WebCore/rendering/RenderMenuList.cpp        2014-01-16 17:33:06 UTC (rev 162132)
</span><span class="lines">@@ -183,7 +183,7 @@
</span><span class="cx">     ASSERT(m_innerBlock == firstChild());
</span><span class="cx"> 
</span><span class="cx">     if (AXObjectCache* cache = document().existingAXObjectCache())
</span><del>-        cache-&gt;childrenChanged(this);
</del><ins>+        cache-&gt;childrenChanged(this, newChild);
</ins><span class="cx"> }
</span><span class="cx"> 
</span><span class="cx"> void RenderMenuList::removeChild(RenderObject&amp; oldChild)
</span></span></pre>
</div>
</div>

</body>
</html>