<!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>[160778] 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/160778">160778</a></dd>
<dt>Author</dt> <dd>cfleizach@apple.com</dd>
<dt>Date</dt> <dd>2013-12-18 10:50:47 -0800 (Wed, 18 Dec 2013)</dd>
</dl>

<h3>Log Message</h3>
<pre>AX: WebKit not sending AXMenuClosed notification
https://bugs.webkit.org/show_bug.cgi?id=125783

Reviewed by Mario Sanchez Prada.

Source/WebCore: 

When an object with a role=menu is removed, we need to send out a notification informing that the menu has closed.
This means detecting the right kind of destruction event for an element, because we do not want to 
send this notification when the entire cache is being torn down.

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

* accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::~AXObjectCache):
(WebCore::AXObjectCache::remove):
* accessibility/AXObjectCache.h:
(WebCore::AXObjectCache::document):
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::detach):
* accessibility/AccessibilityNodeObject.h:
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::detach):
* accessibility/AccessibilityObject.h:
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::detach):
* accessibility/AccessibilityRenderObject.h:
* accessibility/AccessibilityScrollView.cpp:
(WebCore::AccessibilityScrollView::detach):
* accessibility/AccessibilityScrollView.h:
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postPlatformNotification):

LayoutTests: 

* platform/mac/accessibility/aria-menu-closed-notification-expected.txt: Added.
* platform/mac/accessibility/aria-menu-closed-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="#trunkSourceWebCoreaccessibilityAccessibilityNodeObjectcpp">trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityNodeObjecth">trunk/Source/WebCore/accessibility/AccessibilityNodeObject.h</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityObjectcpp">trunk/Source/WebCore/accessibility/AccessibilityObject.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityObjecth">trunk/Source/WebCore/accessibility/AccessibilityObject.h</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityRenderObjectcpp">trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityRenderObjecth">trunk/Source/WebCore/accessibility/AccessibilityRenderObject.h</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityScrollViewcpp">trunk/Source/WebCore/accessibility/AccessibilityScrollView.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityScrollViewh">trunk/Source/WebCore/accessibility/AccessibilityScrollView.h</a></li>
<li><a href="#trunkSourceWebCoreaccessibilitymacAXObjectCacheMacmm">trunk/Source/WebCore/accessibility/mac/AXObjectCacheMac.mm</a></li>
</ul>

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

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (160777 => 160778)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2013-12-18 18:32:55 UTC (rev 160777)
+++ trunk/LayoutTests/ChangeLog        2013-12-18 18:50:47 UTC (rev 160778)
</span><span class="lines">@@ -1,3 +1,13 @@
</span><ins>+2013-12-18  Chris Fleizach  &lt;cfleizach@apple.com&gt;
+
+        AX: WebKit not sending AXMenuClosed notification
+        https://bugs.webkit.org/show_bug.cgi?id=125783
+
+        Reviewed by Mario Sanchez Prada.
+
+        * platform/mac/accessibility/aria-menu-closed-notification-expected.txt: Added.
+        * platform/mac/accessibility/aria-menu-closed-notification.html: Added.
+
</ins><span class="cx"> 2013-12-18  Tamas Gergely  &lt;tgergely.u-szeged@partner.samsung.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Fix ASSERTION FAILED in WebCore::SVGLengthContext::determineViewport
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacaccessibilityariamenuclosednotificationexpectedtxt"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/mac/accessibility/aria-menu-closed-notification-expected.txt (0 => 160778)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/accessibility/aria-menu-closed-notification-expected.txt                                (rev 0)
+++ trunk/LayoutTests/platform/mac/accessibility/aria-menu-closed-notification-expected.txt        2013-12-18 18:50:47 UTC (rev 160778)
</span><span class="lines">@@ -0,0 +1,11 @@
</span><ins>+This tests that an AXMenuClosed notification gets fired when an ARIA menu popup closes.
+
+On success, you will see a series of &quot;PASS&quot; messages, followed by &quot;TEST COMPLETE&quot;.
+
+
+PASS addedNotification is true
+Received menu closed notification: AXMenuClosed
+PASS successfullyParsed is true
+
+TEST COMPLETE
+
</ins></span></pre></div>
<a id="trunkLayoutTestsplatformmacaccessibilityariamenuclosednotificationhtml"></a>
<div class="addfile"><h4>Added: trunk/LayoutTests/platform/mac/accessibility/aria-menu-closed-notification.html (0 => 160778)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/accessibility/aria-menu-closed-notification.html                                (rev 0)
+++ trunk/LayoutTests/platform/mac/accessibility/aria-menu-closed-notification.html        2013-12-18 18:50:47 UTC (rev 160778)
</span><span class="lines">@@ -0,0 +1,49 @@
</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;&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 an AXMenuClosed notification gets fired when an ARIA menu popup closes.&quot;);
+
+    function hideMenu() {
+        document.getElementById(&quot;menu&quot;).style.display = &quot;none&quot;;
+    }
+
+    var webArea = 0;
+    function ariaCallback(notification) {
+        if (notification == &quot;AXMenuClosed&quot;) {
+           debug(&quot;Received menu closed notification: &quot; + notification);
+           webArea.removeNotificationListener();
+           finishJSTest();
+        }
+    }
+
+    if (window.accessibilityController) {
+        window.jsTestIsAsync = true;
+
+        webArea = accessibilityController.rootElement.childAtIndex(0);
+        var menu = accessibilityController.accessibleElementById(&quot;menu&quot;);
+
+        var addedNotification = webArea.addNotificationListener(ariaCallback);
+        shouldBe(&quot;addedNotification&quot;, &quot;true&quot;);
+
+        hideMenu(); 
+    }
+
+&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 (160777 => 160778)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2013-12-18 18:32:55 UTC (rev 160777)
+++ trunk/Source/WebCore/ChangeLog        2013-12-18 18:50:47 UTC (rev 160778)
</span><span class="lines">@@ -1,3 +1,36 @@
</span><ins>+2013-12-18  Chris Fleizach  &lt;cfleizach@apple.com&gt;
+
+        AX: WebKit not sending AXMenuClosed notification
+        https://bugs.webkit.org/show_bug.cgi?id=125783
+
+        Reviewed by Mario Sanchez Prada.
+
+        When an object with a role=menu is removed, we need to send out a notification informing that the menu has closed.
+        This means detecting the right kind of destruction event for an element, because we do not want to 
+        send this notification when the entire cache is being torn down.
+
+        Test: platform/mac/accessibility/aria-menu-closed-notification.html
+
+        * accessibility/AXObjectCache.cpp:
+        (WebCore::AXObjectCache::~AXObjectCache):
+        (WebCore::AXObjectCache::remove):
+        * accessibility/AXObjectCache.h:
+        (WebCore::AXObjectCache::document):
+        * accessibility/AccessibilityNodeObject.cpp:
+        (WebCore::AccessibilityNodeObject::detach):
+        * accessibility/AccessibilityNodeObject.h:
+        * accessibility/AccessibilityObject.cpp:
+        (WebCore::AccessibilityObject::detach):
+        * accessibility/AccessibilityObject.h:
+        * accessibility/AccessibilityRenderObject.cpp:
+        (WebCore::AccessibilityRenderObject::detach):
+        * accessibility/AccessibilityRenderObject.h:
+        * accessibility/AccessibilityScrollView.cpp:
+        (WebCore::AccessibilityScrollView::detach):
+        * accessibility/AccessibilityScrollView.h:
+        * accessibility/mac/AXObjectCacheMac.mm:
+        (WebCore::AXObjectCache::postPlatformNotification):
+
</ins><span class="cx"> 2013-12-18  Eric Carlson  &lt;eric.carlson@apple.com&gt;
</span><span class="cx"> 
</span><span class="cx">         Do not create cue subtree just to delete it
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAXObjectCachecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AXObjectCache.cpp (160777 => 160778)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AXObjectCache.cpp        2013-12-18 18:32:55 UTC (rev 160777)
+++ trunk/Source/WebCore/accessibility/AXObjectCache.cpp        2013-12-18 18:50:47 UTC (rev 160778)
</span><span class="lines">@@ -122,7 +122,7 @@
</span><span class="cx">     for (HashMap&lt;AXID, RefPtr&lt;AccessibilityObject&gt;&gt;::iterator it = m_objects.begin(); it != end; ++it) {
</span><span class="cx">         AccessibilityObject* obj = (*it).value.get();
</span><span class="cx">         detachWrapper(obj);
</span><del>-        obj-&gt;detach();
</del><ins>+        obj-&gt;detach(CacheDestroyed);
</ins><span class="cx">         removeAXID(obj);
</span><span class="cx">     }
</span><span class="cx"> }
</span><span class="lines">@@ -494,7 +494,7 @@
</span><span class="cx">         return;
</span><span class="cx">     
</span><span class="cx">     detachWrapper(obj);
</span><del>-    obj-&gt;detach();
</del><ins>+    obj-&gt;detach(ElementDestroyed, this);
</ins><span class="cx">     removeAXID(obj);
</span><span class="cx">     
</span><span class="cx">     // finally remove the object
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAXObjectCacheh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AXObjectCache.h (160777 => 160778)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AXObjectCache.h        2013-12-18 18:32:55 UTC (rev 160777)
+++ trunk/Source/WebCore/accessibility/AXObjectCache.h        2013-12-18 18:50:47 UTC (rev 160778)
</span><span class="lines">@@ -169,6 +169,7 @@
</span><span class="cx">         AXLiveRegionChanged,
</span><span class="cx">         AXMenuListItemSelected,
</span><span class="cx">         AXMenuListValueChanged,
</span><ins>+        AXMenuClosed,
</ins><span class="cx">         AXRowCountChanged,
</span><span class="cx">         AXRowCollapsed,
</span><span class="cx">         AXRowExpanded,
</span><span class="lines">@@ -206,6 +207,8 @@
</span><span class="cx"> 
</span><span class="cx">     AXComputedObjectAttributeCache* computedObjectAttributeCache() { return m_computedObjectAttributeCache.get(); }
</span><span class="cx"> 
</span><ins>+    Document&amp; document() const { return m_document; }
+    
</ins><span class="cx"> protected:
</span><span class="cx">     void postPlatformNotification(AccessibilityObject*, AXNotification);
</span><span class="cx">     void nodeTextChangePlatformNotification(AccessibilityObject*, AXTextChange, unsigned offset, const String&amp;);
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityNodeObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp (160777 => 160778)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp        2013-12-18 18:32:55 UTC (rev 160777)
+++ trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp        2013-12-18 18:50:47 UTC (rev 160778)
</span><span class="lines">@@ -120,10 +120,10 @@
</span><span class="cx">     return adoptRef(new AccessibilityNodeObject(node));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void AccessibilityNodeObject::detach()
</del><ins>+void AccessibilityNodeObject::detach(AccessibilityDetachmentType detachmentType, AXObjectCache* cache)
</ins><span class="cx"> {
</span><del>-    clearChildren();
-    AccessibilityObject::detach();
</del><ins>+    // AccessibilityObject calls clearChildren.
+    AccessibilityObject::detach(detachmentType, cache);
</ins><span class="cx">     m_node = 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityNodeObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityNodeObject.h (160777 => 160778)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityNodeObject.h        2013-12-18 18:32:55 UTC (rev 160777)
+++ trunk/Source/WebCore/accessibility/AccessibilityNodeObject.h        2013-12-18 18:50:47 UTC (rev 160778)
</span><span class="lines">@@ -144,7 +144,7 @@
</span><span class="cx">     virtual AccessibilityObject* parentObject() const OVERRIDE;
</span><span class="cx">     virtual AccessibilityObject* parentObjectIfExists() const OVERRIDE;
</span><span class="cx"> 
</span><del>-    virtual void detach() OVERRIDE;
</del><ins>+    virtual void detach(AccessibilityDetachmentType, AXObjectCache*) OVERRIDE;
</ins><span class="cx">     virtual void childrenChanged() OVERRIDE;
</span><span class="cx">     virtual void updateAccessibilityRole() OVERRIDE;
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.cpp (160777 => 160778)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityObject.cpp        2013-12-18 18:32:55 UTC (rev 160777)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.cpp        2013-12-18 18:50:47 UTC (rev 160778)
</span><span class="lines">@@ -88,8 +88,12 @@
</span><span class="cx">     ASSERT(isDetached());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void AccessibilityObject::detach()
</del><ins>+void AccessibilityObject::detach(AccessibilityDetachmentType detachmentType, AXObjectCache* cache)
</ins><span class="cx"> {
</span><ins>+    // Menu close events need to notify the platform. No element is used in the notification because it's a destruction event.
+    if (detachmentType == ElementDestroyed &amp;&amp; roleValue() == MenuRole &amp;&amp; cache)
+        cache-&gt;postNotification(nullptr, &amp;cache-&gt;document(), AXObjectCache::AXMenuClosed);
+    
</ins><span class="cx">     // Clear any children and call detachFromParent on them so that
</span><span class="cx">     // no children are left with dangling pointers to their parent.
</span><span class="cx">     clearChildren();
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.h (160777 => 160778)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityObject.h        2013-12-18 18:32:55 UTC (rev 160777)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.h        2013-12-18 18:50:47 UTC (rev 160778)
</span><span class="lines">@@ -351,6 +351,8 @@
</span><span class="cx">     , visibleOnly(visibleOnly)
</span><span class="cx">     { }
</span><span class="cx"> };
</span><ins>+    
+enum AccessibilityDetachmentType { CacheDestroyed, ElementDestroyed };
</ins><span class="cx"> 
</span><span class="cx"> struct VisiblePositionRange {
</span><span class="cx"> 
</span><span class="lines">@@ -400,7 +402,7 @@
</span><span class="cx"> 
</span><span class="cx">     // When the corresponding WebCore object that this AccessibilityObject
</span><span class="cx">     // wraps is deleted, it must be detached.
</span><del>-    virtual void detach();
</del><ins>+    virtual void detach(AccessibilityDetachmentType, AXObjectCache* cache = nullptr);
</ins><span class="cx">     virtual bool isDetached() const;
</span><span class="cx"> 
</span><span class="cx">     typedef Vector&lt;RefPtr&lt;AccessibilityObject&gt;&gt; AccessibilityChildrenVector;
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityRenderObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp (160777 => 160778)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp        2013-12-18 18:32:55 UTC (rev 160777)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp        2013-12-18 18:50:47 UTC (rev 160778)
</span><span class="lines">@@ -131,9 +131,9 @@
</span><span class="cx">     return adoptRef(new AccessibilityRenderObject(renderer));
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void AccessibilityRenderObject::detach()
</del><ins>+void AccessibilityRenderObject::detach(AccessibilityDetachmentType detachmentType, AXObjectCache* cache)
</ins><span class="cx"> {
</span><del>-    AccessibilityNodeObject::detach();
</del><ins>+    AccessibilityNodeObject::detach(detachmentType, cache);
</ins><span class="cx">     
</span><span class="cx">     detachRemoteSVGRoot();
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityRenderObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.h (160777 => 160778)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.h        2013-12-18 18:32:55 UTC (rev 160777)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.h        2013-12-18 18:50:47 UTC (rev 160778)
</span><span class="lines">@@ -161,7 +161,7 @@
</span><span class="cx">     virtual void setSelectedRows(AccessibilityChildrenVector&amp;) OVERRIDE;
</span><span class="cx">     virtual AccessibilityOrientation orientation() const OVERRIDE;
</span><span class="cx">     
</span><del>-    virtual void detach() OVERRIDE;
</del><ins>+    virtual void detach(AccessibilityDetachmentType, AXObjectCache*) OVERRIDE;
</ins><span class="cx">     virtual void textChanged() OVERRIDE;
</span><span class="cx">     virtual void addChildren() OVERRIDE;
</span><span class="cx">     virtual bool canHaveChildren() const OVERRIDE;
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityScrollViewcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityScrollView.cpp (160777 => 160778)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityScrollView.cpp        2013-12-18 18:32:55 UTC (rev 160777)
+++ trunk/Source/WebCore/accessibility/AccessibilityScrollView.cpp        2013-12-18 18:50:47 UTC (rev 160778)
</span><span class="lines">@@ -48,9 +48,9 @@
</span><span class="cx">     ASSERT(isDetached());
</span><span class="cx"> }
</span><span class="cx"> 
</span><del>-void AccessibilityScrollView::detach()
</del><ins>+void AccessibilityScrollView::detach(AccessibilityDetachmentType detachmentType, AXObjectCache* cache)
</ins><span class="cx"> {
</span><del>-    AccessibilityObject::detach();
</del><ins>+    AccessibilityObject::detach(detachmentType, cache);
</ins><span class="cx">     m_scrollView = 0;
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityScrollViewh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityScrollView.h (160777 => 160778)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityScrollView.h        2013-12-18 18:32:55 UTC (rev 160777)
+++ trunk/Source/WebCore/accessibility/AccessibilityScrollView.h        2013-12-18 18:50:47 UTC (rev 160778)
</span><span class="lines">@@ -41,7 +41,7 @@
</span><span class="cx">     ScrollView* scrollView() const { return m_scrollView; }
</span><span class="cx"> 
</span><span class="cx">     virtual ~AccessibilityScrollView();
</span><del>-    virtual void detach() OVERRIDE;
</del><ins>+    virtual void detach(AccessibilityDetachmentType, AXObjectCache*) OVERRIDE;
</ins><span class="cx"> 
</span><span class="cx"> protected:
</span><span class="cx">     virtual ScrollableArea* getScrollableAreaIfScrollable() const OVERRIDE;
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilitymacAXObjectCacheMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/mac/AXObjectCacheMac.mm (160777 => 160778)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/mac/AXObjectCacheMac.mm        2013-12-18 18:32:55 UTC (rev 160777)
+++ trunk/Source/WebCore/accessibility/mac/AXObjectCacheMac.mm        2013-12-18 18:50:47 UTC (rev 160778)
</span><span class="lines">@@ -118,6 +118,9 @@
</span><span class="cx">         case AXElementBusyChanged:
</span><span class="cx">             macNotification = @&quot;AXElementBusyChanged&quot;;
</span><span class="cx">             break;
</span><ins>+        case AXMenuClosed:
+            macNotification = (id)kAXMenuClosedNotification;
+            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>
</div>

</body>
</html>