<!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>[160907] 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/160907">160907</a></dd>
<dt>Author</dt> <dd>mario.prada@samsung.com</dd>
<dt>Date</dt> <dd>2013-12-20 06:12:04 -0800 (Fri, 20 Dec 2013)</dd>
</dl>

<h3>Log Message</h3>
<pre>[ATK] [WK2] platform/gtk/accessibility/roles-exposed.html is failing
https://bugs.webkit.org/show_bug.cgi?id=125854

Reviewed by Chris Fleizach.

Tools:

Ensure we don't ever create instances of AccessibilityUIElement
wrapping invalid platform-specific accessibility objects in DRT,
both for consistency with what WKTR does (so we avoid situations
where some tests fail in WK2 and not in WK1) and also to avoid
overlooking tests that might not be checking the right thing.

* DumpRenderTree/AccessibilityUIElement.cpp:
(AccessibilityUIElement::makeJSAccessibilityUIElement): Return a
nullPtr if the platformUIElement() is not a valid one.
* DumpRenderTree/AccessibilityUIElement.h:
(AccessibilityUIElement::platformUIElement): Added const modifier.

LayoutTests:

Updated tests and expectations to keep them passing after the
change done in DRT, without changing their actual purpose.

* platform/gtk/accessibility/roles-exposed.html: Make sure we
print &quot;AXRole: (no element)&quot; when accessibilityElementByID() does
not return a valid object, not to confuse it with cases where the
returned string for the role is an empty string.
* platform/gtk/accessibility/roles-exposed-expected.txt: Update
test expectations to reflect the &quot;AXRole: (no element)&quot; string
that is now being exposed. Also, replace the (wrongly added) PASS
expectations with FAIL for rowgroups, which are currently not
being exposed for ATK either.

* accessibility/deleting-iframe-destroys-axcache.html: Just
consider the first and third sons of the accessibility object for
the body (instead of the grandsons), so the test can run both in
Mac, where sons and grandsons are exposed, and ATK, where only
sons are exposed (no StaticText objects exposed there).

* accessibility/non-data-table-cell-title-ui-element.html: Use
accessibilityElementById() to get the accessibility object for the
&quot;skip&quot; table header instead of navigating with childAtIndex(),
since the hierarchy is not the same for Mac and ATK based ports.

* platform/mac/accessibility/search-predicate.html: Do not rely on
shouldBe() together with the string &quot;AXRole: &quot; when asking for the
role of objects that should no longer be in the accessibility
tree, and use shouldBeUndefined() instead.
* platform/mac/accessibility/search-when-element-starts-in-table.html: Ditto.

* platform/mac/accessibility/search-predicate-expected.txt: Update
expectations according to the usage of shouldBeUndefined().
* platform/mac/accessibility/search-when-element-starts-in-table-expected.txt: Ditto.

* platform/mac/TestExpectations: Add loading-iframe-updates-axtree.html
here, since it seems not to be returning the expected values for
either the scrollarea and the webarea in the iframe (see bug 126066).

* platform/mac-wk2/TestExpectations: Add search-when-element-starts-in-table.html
here, since it does not return an undefined object in WebKit2 when
the search query should return no results (see bug 125996).</pre>

<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkLayoutTestsChangeLog">trunk/LayoutTests/ChangeLog</a></li>
<li><a href="#trunkLayoutTestsaccessibilitydeletingiframedestroysaxcachehtml">trunk/LayoutTests/accessibility/deleting-iframe-destroys-axcache.html</a></li>
<li><a href="#trunkLayoutTestsaccessibilitynondatatablecelltitleuielementhtml">trunk/LayoutTests/accessibility/non-data-table-cell-title-ui-element.html</a></li>
<li><a href="#trunkLayoutTestsplatformgtkaccessibilityrolesexposedexpectedtxt">trunk/LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformgtkaccessibilityrolesexposedhtml">trunk/LayoutTests/platform/gtk/accessibility/roles-exposed.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacTestExpectations">trunk/LayoutTests/platform/mac/TestExpectations</a></li>
<li><a href="#trunkLayoutTestsplatformmacaccessibilitysearchpredicateexpectedtxt">trunk/LayoutTests/platform/mac/accessibility/search-predicate-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacaccessibilitysearchpredicatehtml">trunk/LayoutTests/platform/mac/accessibility/search-predicate.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacaccessibilitysearchwhenelementstartsintableexpectedtxt">trunk/LayoutTests/platform/mac/accessibility/search-when-element-starts-in-table-expected.txt</a></li>
<li><a href="#trunkLayoutTestsplatformmacaccessibilitysearchwhenelementstartsintablehtml">trunk/LayoutTests/platform/mac/accessibility/search-when-element-starts-in-table.html</a></li>
<li><a href="#trunkLayoutTestsplatformmacwk2TestExpectations">trunk/LayoutTests/platform/mac-wk2/TestExpectations</a></li>
<li><a href="#trunkToolsChangeLog">trunk/Tools/ChangeLog</a></li>
<li><a href="#trunkToolsDumpRenderTreeAccessibilityUIElementcpp">trunk/Tools/DumpRenderTree/AccessibilityUIElement.cpp</a></li>
<li><a href="#trunkToolsDumpRenderTreeAccessibilityUIElementh">trunk/Tools/DumpRenderTree/AccessibilityUIElement.h</a></li>
</ul>

</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkLayoutTestsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/ChangeLog (160906 => 160907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/ChangeLog        2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/LayoutTests/ChangeLog        2013-12-20 14:12:04 UTC (rev 160907)
</span><span class="lines">@@ -1,3 +1,52 @@
</span><ins>+2013-12-20  Mario Sanchez Prada  &lt;mario.prada@samsung.com&gt;
+
+        [ATK] [WK2] platform/gtk/accessibility/roles-exposed.html is failing
+        https://bugs.webkit.org/show_bug.cgi?id=125854
+
+        Reviewed by Chris Fleizach.
+
+        Updated tests and expectations to keep them passing after the
+        change done in DRT, without changing their actual purpose.
+
+        * platform/gtk/accessibility/roles-exposed.html: Make sure we
+        print &quot;AXRole: (no element)&quot; when accessibilityElementByID() does
+        not return a valid object, not to confuse it with cases where the
+        returned string for the role is an empty string.
+        * platform/gtk/accessibility/roles-exposed-expected.txt: Update
+        test expectations to reflect the &quot;AXRole: (no element)&quot; string
+        that is now being exposed. Also, replace the (wrongly added) PASS
+        expectations with FAIL for rowgroups, which are currently not
+        being exposed for ATK either.
+
+        * accessibility/deleting-iframe-destroys-axcache.html: Just
+        consider the first and third sons of the accessibility object for
+        the body (instead of the grandsons), so the test can run both in
+        Mac, where sons and grandsons are exposed, and ATK, where only
+        sons are exposed (no StaticText objects exposed there).
+
+        * accessibility/non-data-table-cell-title-ui-element.html: Use
+        accessibilityElementById() to get the accessibility object for the
+        &quot;skip&quot; table header instead of navigating with childAtIndex(),
+        since the hierarchy is not the same for Mac and ATK based ports.
+
+        * platform/mac/accessibility/search-predicate.html: Do not rely on
+        shouldBe() together with the string &quot;AXRole: &quot; when asking for the
+        role of objects that should no longer be in the accessibility
+        tree, and use shouldBeUndefined() instead.
+        * platform/mac/accessibility/search-when-element-starts-in-table.html: Ditto.
+
+        * platform/mac/accessibility/search-predicate-expected.txt: Update
+        expectations according to the usage of shouldBeUndefined().
+        * platform/mac/accessibility/search-when-element-starts-in-table-expected.txt: Ditto.
+
+        * platform/mac/TestExpectations: Add loading-iframe-updates-axtree.html
+        here, since it seems not to be returning the expected values for
+        either the scrollarea and the webarea in the iframe (see bug 126066).
+
+        * platform/mac-wk2/TestExpectations: Add search-when-element-starts-in-table.html
+        here, since it does not return an undefined object in WebKit2 when
+        the search query should return no results (see bug 125996).
+
</ins><span class="cx"> 2013-12-20  Radu Stavila  &lt;stavila@adobe.com&gt;
</span><span class="cx"> 
</span><span class="cx">         [CSS Regions] When changing flow-from/flow-into on :hover, elements overflowing the region are not correctly repainted
</span></span></pre></div>
<a id="trunkLayoutTestsaccessibilitydeletingiframedestroysaxcachehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/accessibility/deleting-iframe-destroys-axcache.html (160906 => 160907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/accessibility/deleting-iframe-destroys-axcache.html        2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/LayoutTests/accessibility/deleting-iframe-destroys-axcache.html        2013-12-20 14:12:04 UTC (rev 160907)
</span><span class="lines">@@ -38,9 +38,9 @@
</span><span class="cx">         if (window.accessibilityController) {
</span><span class="cx">             window.root = accessibilityController.rootElement;
</span><span class="cx">             window.body = root.childAtIndex(0);
</span><del>-            window.before = body.childAtIndex(0).childAtIndex(0);
</del><ins>+            window.before = body.childAtIndex(0);
</ins><span class="cx">             window.iframe = body.childAtIndex(1).childAtIndex(0);
</span><del>-            window.after = body.childAtIndex(2).childAtIndex(0);
</del><ins>+            window.after = body.childAtIndex(2);
</ins><span class="cx"> 
</span><span class="cx">             window.frameBody = window.iframe.childAtIndex(0);
</span><span class="cx">             window.frameBodyRole = window.frameBody.role;
</span><span class="lines">@@ -57,8 +57,8 @@
</span><span class="cx"> 
</span><span class="cx">             window.newRoot = accessibilityController.rootElement;
</span><span class="cx">             window.newBody = newRoot.childAtIndex(0);
</span><del>-            window.newBefore = newBody.childAtIndex(0).childAtIndex(0);
-            window.newAfter = newBody.childAtIndex(1).childAtIndex(0);
</del><ins>+            window.newBefore = newBody.childAtIndex(0);
+            window.newAfter = newBody.childAtIndex(1);
</ins><span class="cx"> 
</span><span class="cx">             document.getElementById(&quot;console&quot;).innerText += &quot;\nAfter:\n&quot;;
</span><span class="cx">             buildAccessibilityTree(newRoot, 0);
</span></span></pre></div>
<a id="trunkLayoutTestsaccessibilitynondatatablecelltitleuielementhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/accessibility/non-data-table-cell-title-ui-element.html (160906 => 160907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/accessibility/non-data-table-cell-title-ui-element.html        2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/LayoutTests/accessibility/non-data-table-cell-title-ui-element.html        2013-12-20 14:12:04 UTC (rev 160907)
</span><span class="lines">@@ -14,7 +14,7 @@
</span><span class="cx"> &lt;th&gt;issue&lt;/th&gt;
</span><span class="cx"> &lt;th&gt;fail&lt;/th&gt;
</span><span class="cx"> &lt;th&gt;blocked&lt;/th&gt;
</span><del>-&lt;th&gt;skip&lt;/th&gt;
</del><ins>+&lt;th id=&quot;skip&quot;&gt;skip&lt;/th&gt;
</ins><span class="cx"> &lt;th&gt;test&lt;/th&gt;
</span><span class="cx"> &lt;/tr&gt;
</span><span class="cx"> &lt;/tbody&gt;
</span><span class="lines">@@ -28,9 +28,8 @@
</span><span class="cx">             var result = document.getElementById(&quot;result&quot;);
</span><span class="cx"> 
</span><span class="cx">             var pass = document.getElementById(&quot;body&quot;);
</span><del>-            body.focus();
</del><span class="cx">             // get the &lt;th&gt;skip&lt;/th&gt; element
</span><del>-            var group = accessibilityController.focusedElement.childAtIndex(5);
</del><ins>+            var group = accessibilityController.accessibleElementById(&quot;skip&quot;);
</ins><span class="cx">             var titleUI = group.titleUIElement();
</span><span class="cx">             var allAttributes = &quot;&quot;;
</span><span class="cx">             if (titleUI)
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkaccessibilityrolesexposedexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt (160906 => 160907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt        2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/LayoutTests/platform/gtk/accessibility/roles-exposed-expected.txt        2013-12-20 14:12:04 UTC (rev 160907)
</span><span class="lines">@@ -172,21 +172,21 @@
</span><span class="cx">       AXRole: AXTable
</span><span class="cx">       
</span><span class="cx"> FAIL: tr
</span><del>-      
</del><ins>+      AXRole: (no element)
</ins><span class="cx">       Expected: AXRow
</span><span class="cx"> 
</span><span class="cx"> PASS: th
</span><span class="cx">       AXRole: AXCell
</span><span class="cx">       
</span><span class="cx"> FAIL: tr
</span><del>-      
</del><ins>+      AXRole: (no element)
</ins><span class="cx">       Expected: AXRow
</span><span class="cx"> 
</span><span class="cx"> PASS: td
</span><span class="cx">       AXRole: AXCell
</span><span class="cx">       
</span><span class="cx"> FAIL: tr
</span><del>-      
</del><ins>+      AXRole: (no element)
</ins><span class="cx">       Expected: AXRow
</span><span class="cx"> 
</span><span class="cx"> PASS: th
</span><span class="lines">@@ -279,11 +279,12 @@
</span><span class="cx"> PASS: div[role=grid]
</span><span class="cx">       AXRole: AXTable
</span><span class="cx">       
</span><del>-PASS: div[role=rowgroup]
-      
-      
</del><ins>+FAIL: div[role=rowgroup]
+      AXRole: (no element)
+      Expected: 
+
</ins><span class="cx"> FAIL: div[role=row]
</span><del>-      
</del><ins>+      AXRole: (no element)
</ins><span class="cx">       Expected: AXRow
</span><span class="cx"> 
</span><span class="cx"> PASS: div[role=gridcell]
</span><span class="lines">@@ -398,11 +399,12 @@
</span><span class="cx"> PASS: div[role=treegrid]
</span><span class="cx">       AXRole: AXTable
</span><span class="cx">       
</span><del>-PASS: div[role=rowgroup]
-      
-      
</del><ins>+FAIL: div[role=rowgroup]
+      AXRole: (no element)
+      Expected: 
+
</ins><span class="cx"> FAIL: div[role=row]
</span><del>-      
</del><ins>+      AXRole: (no element)
</ins><span class="cx">       Expected: AXRow
</span><span class="cx"> 
</span><span class="cx"> PASS: div[role=gridcell]
</span></span></pre></div>
<a id="trunkLayoutTestsplatformgtkaccessibilityrolesexposedhtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/gtk/accessibility/roles-exposed.html (160906 => 160907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/gtk/accessibility/roles-exposed.html        2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/LayoutTests/platform/gtk/accessibility/roles-exposed.html        2013-12-20 14:12:04 UTC (rev 160907)
</span><span class="lines">@@ -291,7 +291,7 @@
</span><span class="cx">         if (axElement)
</span><span class="cx">             role = axElement.role;
</span><span class="cx">         else
</span><del>-            role = 'AXRole: ';
</del><ins>+            role = 'AXRole: (no element)';
</ins><span class="cx"> 
</span><span class="cx">         output = el.tagName.toLowerCase() + (ariaRole?(&quot;[role=&quot;+ariaRole+&quot;]&quot;):'');
</span><span class="cx">         if (el.getAttribute('data-note')) {
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacTestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/TestExpectations (160906 => 160907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/TestExpectations        2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/LayoutTests/platform/mac/TestExpectations        2013-12-20 14:12:04 UTC (rev 160907)
</span><span class="lines">@@ -33,6 +33,9 @@
</span><span class="cx"> fast/dom/Window/slow-unload-handler.html
</span><span class="cx"> fast/dom/Window/slow-unload-handler-only-frame-is-stopped.html
</span><span class="cx"> 
</span><ins>+# This test fails on release and crashes on debug because of trying to use isEqual() with undefined objects
+webkit.org/b/126066 accessibility/loading-iframe-updates-axtree.html [ Failure Crash ]
+
</ins><span class="cx"> webkit.org/b/116636 accessibility/document-attributes.html [ Failure ]
</span><span class="cx"> 
</span><span class="cx"> # Accessibility tests with missing AccessibilityController functionality.
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacaccessibilitysearchpredicateexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/accessibility/search-predicate-expected.txt (160906 => 160907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/accessibility/search-predicate-expected.txt        2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/LayoutTests/platform/mac/accessibility/search-predicate-expected.txt        2013-12-20 14:12:04 UTC (rev 160907)
</span><span class="lines">@@ -145,7 +145,7 @@
</span><span class="cx"> PASS resultElement.title is 'AXTitle: test button 2'
</span><span class="cx"> PASS resultElement.role is 'AXRole: AXButton'
</span><span class="cx"> PASS resultElement.title is 'AXTitle: Submit'
</span><del>-PASS resultElement.role is 'AXRole: '
</del><ins>+PASS resultElement is undefined.
</ins><span class="cx"> PASS successfullyParsed is true
</span><span class="cx"> 
</span><span class="cx"> TEST COMPLETE
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacaccessibilitysearchpredicatehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/accessibility/search-predicate.html (160906 => 160907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/accessibility/search-predicate.html        2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/LayoutTests/platform/mac/accessibility/search-predicate.html        2013-12-20 14:12:04 UTC (rev 160907)
</span><span class="lines">@@ -364,7 +364,7 @@
</span><span class="cx">         
</span><span class="cx">         // there should be no more visible buttons
</span><span class="cx">         resultElement = containerElement.uiElementForSearchPredicate(resultElement, true, &quot;AXButtonSearchKey&quot;, &quot;&quot;, true);
</span><del>-        shouldBe(&quot;resultElement.role&quot;, &quot;'AXRole: '&quot;);
</del><ins>+        shouldBeUndefined(&quot;resultElement&quot;);
</ins><span class="cx">         
</span><span class="cx">     }
</span><span class="cx">     
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacaccessibilitysearchwhenelementstartsintableexpectedtxt"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/accessibility/search-when-element-starts-in-table-expected.txt (160906 => 160907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/accessibility/search-when-element-starts-in-table-expected.txt        2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/LayoutTests/platform/mac/accessibility/search-when-element-starts-in-table-expected.txt        2013-12-20 14:12:04 UTC (rev 160907)
</span><span class="lines">@@ -10,7 +10,7 @@
</span><span class="cx"> 
</span><span class="cx"> PASS resultElement.role is 'AXRole: AXHeading'
</span><span class="cx"> PASS resultElement.title is 'AXTitle: outside heading'
</span><del>-PASS resultElement.role is 'AXRole: '
</del><ins>+PASS resultElement is undefined.
</ins><span class="cx"> PASS resultElement.role is 'AXRole: AXHeading'
</span><span class="cx"> PASS resultElement.role is 'AXRole: AXCell'
</span><span class="cx"> PASS resultElement.role is 'AXRole: AXRow'
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacaccessibilitysearchwhenelementstartsintablehtml"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac/accessibility/search-when-element-starts-in-table.html (160906 => 160907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac/accessibility/search-when-element-starts-in-table.html        2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/LayoutTests/platform/mac/accessibility/search-when-element-starts-in-table.html        2013-12-20 14:12:04 UTC (rev 160907)
</span><span class="lines">@@ -32,7 +32,7 @@
</span><span class="cx"> 
</span><span class="cx">         // A search for the previous heading should return nothing.
</span><span class="cx">         resultElement = containerElement.uiElementForSearchPredicate(heading, false, &quot;AXHeadingSearchKey&quot;, &quot;&quot;, false);
</span><del>-        shouldBe(&quot;resultElement.role&quot;, &quot;'AXRole: '&quot;);
</del><ins>+        shouldBeUndefined(&quot;resultElement&quot;);
</ins><span class="cx"> 
</span><span class="cx">         // When asking the child of the heading for the previous element, it should return the heading.
</span><span class="cx">         resultElement = containerElement.uiElementForSearchPredicate(heading.childAtIndex(0), false, &quot;AXAnyTypeSearchKey&quot;, &quot;&quot;, false);
</span></span></pre></div>
<a id="trunkLayoutTestsplatformmacwk2TestExpectations"></a>
<div class="modfile"><h4>Modified: trunk/LayoutTests/platform/mac-wk2/TestExpectations (160906 => 160907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/LayoutTests/platform/mac-wk2/TestExpectations        2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/LayoutTests/platform/mac-wk2/TestExpectations        2013-12-20 14:12:04 UTC (rev 160907)
</span><span class="lines">@@ -382,6 +382,9 @@
</span><span class="cx"> 
</span><span class="cx"> webkit.org/b/124476 platform/mac-wk2/plugins/slow/asynchronous-plugin-initialization-multiple.html [ Pass Failure ]
</span><span class="cx"> 
</span><ins>+# uiElementForSearchPredicate() is not returning an undefined object when the search returns no results
+webkit.org/b/125996 platform/mac/accessibility/search-when-element-starts-in-table.html [ Failure ]
+
</ins><span class="cx"> ### END OF (1) Classified failures with bug reports
</span><span class="cx"> ########################################
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkToolsChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Tools/ChangeLog (160906 => 160907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/ChangeLog        2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/Tools/ChangeLog        2013-12-20 14:12:04 UTC (rev 160907)
</span><span class="lines">@@ -1,5 +1,24 @@
</span><span class="cx"> 2013-12-20  Mario Sanchez Prada  &lt;mario.prada@samsung.com&gt;
</span><span class="cx"> 
</span><ins>+        [ATK] [WK2] platform/gtk/accessibility/roles-exposed.html is failing
+        https://bugs.webkit.org/show_bug.cgi?id=125854
+
+        Reviewed by Chris Fleizach.
+
+        Ensure we don't ever create instances of AccessibilityUIElement
+        wrapping invalid platform-specific accessibility objects in DRT,
+        both for consistency with what WKTR does (so we avoid situations
+        where some tests fail in WK2 and not in WK1) and also to avoid
+        overlooking tests that might not be checking the right thing.
+
+        * DumpRenderTree/AccessibilityUIElement.cpp:
+        (AccessibilityUIElement::makeJSAccessibilityUIElement): Return a
+        nullPtr if the platformUIElement() is not a valid one.
+        * DumpRenderTree/AccessibilityUIElement.h:
+        (AccessibilityUIElement::platformUIElement): Added const modifier.
+
+2013-12-20  Mario Sanchez Prada  &lt;mario.prada@samsung.com&gt;
+
</ins><span class="cx">         Programmatically-inserted children lack accessibility events
</span><span class="cx">         https://bugs.webkit.org/show_bug.cgi?id=100275
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreeAccessibilityUIElementcpp"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/AccessibilityUIElement.cpp (160906 => 160907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/AccessibilityUIElement.cpp        2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/Tools/DumpRenderTree/AccessibilityUIElement.cpp        2013-12-20 14:12:04 UTC (rev 160907)
</span><span class="lines">@@ -1358,6 +1358,9 @@
</span><span class="cx"> 
</span><span class="cx"> JSObjectRef AccessibilityUIElement::makeJSAccessibilityUIElement(JSContextRef context, const AccessibilityUIElement&amp; element)
</span><span class="cx"> {
</span><ins>+    if (!element.platformUIElement())
+        return nullptr;
+
</ins><span class="cx">     return JSObjectMake(context, AccessibilityUIElement::getJSClass(), new AccessibilityUIElement(element));
</span><span class="cx"> }
</span><span class="cx"> 
</span></span></pre></div>
<a id="trunkToolsDumpRenderTreeAccessibilityUIElementh"></a>
<div class="modfile"><h4>Modified: trunk/Tools/DumpRenderTree/AccessibilityUIElement.h (160906 => 160907)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Tools/DumpRenderTree/AccessibilityUIElement.h        2013-12-20 13:47:42 UTC (rev 160906)
+++ trunk/Tools/DumpRenderTree/AccessibilityUIElement.h        2013-12-20 14:12:04 UTC (rev 160907)
</span><span class="lines">@@ -67,7 +67,7 @@
</span><span class="cx">     AccessibilityUIElement(const AccessibilityUIElement&amp;);
</span><span class="cx">     ~AccessibilityUIElement();
</span><span class="cx"> 
</span><del>-    PlatformUIElement platformUIElement() { return m_element; }
</del><ins>+    PlatformUIElement platformUIElement() const { return m_element; }
</ins><span class="cx"> 
</span><span class="cx">     static JSObjectRef makeJSAccessibilityUIElement(JSContextRef, const AccessibilityUIElement&amp;);
</span><span class="cx"> 
</span></span></pre>
</div>
</div>

</body>
</html>