<!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>[175068] trunk/Source/WebCore</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/175068">175068</a></dd>
<dt>Author</dt> <dd>cdumez@apple.com</dd>
<dt>Date</dt> <dd>2014-10-22 14:45:20 -0700 (Wed, 22 Oct 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>Avoid confusion between AccessibilityObject::isTable() / isAccessibilityTable()
https://bugs.webkit.org/show_bug.cgi?id=137899
Reviewed by Darin Adler.
Avoid confusion between AccessibilityObject::isTable() and
isAccessibilityTable(). isTable() is equivalent to
is<AccessibilityTable>(), while isAccessibilityTable() is an
AccessibilityTable that is exposed as an AccessibilityTable to the
platform.
This patch is renaming isAccessibilityTable() to
isExposableThroughAccessibility(), makes it non-virtual and defines it
on AccessibilityTable only, for clarity.
This patch also renames isTableExposableThroughAccessibility() to
computeIisTableExposableThroughAccessibility() as it is called only
once to initialize the m_isExposableThroughAccessibility data member.
No new tests, no behavior change.
* accessibility/AccessibilityARIAGrid.cpp:
(WebCore::AccessibilityARIAGrid::addChildren):
* accessibility/AccessibilityARIAGrid.h:
* accessibility/AccessibilityARIAGridCell.cpp:
(WebCore::AccessibilityARIAGridCell::parentTable):
(WebCore::AccessibilityARIAGridCell::rowIndexRange):
(WebCore::AccessibilityARIAGridCell::columnIndexRange):
* accessibility/AccessibilityARIAGridRow.cpp:
(WebCore::AccessibilityARIAGridRow::disclosedRows):
(WebCore::AccessibilityARIAGridRow::disclosedByRow):
(WebCore::AccessibilityARIAGridRow::parentTable):
* accessibility/AccessibilityNodeObject.cpp:
(WebCore::shouldUseAccessiblityObjectInnerText):
* accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex):
(WebCore::appendChildrenToArray):
* accessibility/AccessibilityObject.h:
(WebCore::AccessibilityObject::isAccessibilityTable): Deleted.
* accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::ariaSelectedRows):
* accessibility/AccessibilityTable.cpp:
(WebCore::AccessibilityTable::AccessibilityTable):
(WebCore::AccessibilityTable::init):
(WebCore::AccessibilityTable::isExposableThroughAccessibility):
(WebCore::AccessibilityTable::computeIsTableExposableThroughAccessibility):
(WebCore::AccessibilityTable::addChildren):
(WebCore::AccessibilityTable::tableLevel):
(WebCore::AccessibilityTable::roleValue):
(WebCore::AccessibilityTable::computeAccessibilityIsIgnored):
(WebCore::AccessibilityTable::title):
(WebCore::AccessibilityTable::isAccessibilityTable): Deleted.
(WebCore::AccessibilityTable::isTableExposableThroughAccessibility): Deleted.
* accessibility/AccessibilityTable.h:
* accessibility/AccessibilityTableCell.cpp:
(WebCore::AccessibilityTableCell::isTableCell):
* accessibility/AccessibilityTableColumn.cpp:
(WebCore::AccessibilityTableColumn::headerObject):
(WebCore::AccessibilityTableColumn::addChildren):
* accessibility/AccessibilityTableHeaderContainer.cpp:
(WebCore::AccessibilityTableHeaderContainer::addChildren):
* accessibility/AccessibilityTableRow.cpp:
(WebCore::AccessibilityTableRow::isTableRow):
(WebCore::AccessibilityTableRow::parentTable):
* accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
(webkitAccessibleGetNChildren):
(webkitAccessibleRefChild):
(webkitAccessibleGetAttributes):
* accessibility/mac/AXObjectCacheMac.mm:
(WebCore::AXObjectCache::postPlatformNotification):
* accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
(-[WebAccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
(-[WebAccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
(-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#trunkSourceWebCoreChangeLog">trunk/Source/WebCore/ChangeLog</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityARIAGridcpp">trunk/Source/WebCore/accessibility/AccessibilityARIAGrid.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityARIAGridh">trunk/Source/WebCore/accessibility/AccessibilityARIAGrid.h</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityARIAGridCellcpp">trunk/Source/WebCore/accessibility/AccessibilityARIAGridCell.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityARIAGridRowcpp">trunk/Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityNodeObjectcpp">trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp</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="#trunkSourceWebCoreaccessibilityAccessibilityTablecpp">trunk/Source/WebCore/accessibility/AccessibilityTable.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityTableh">trunk/Source/WebCore/accessibility/AccessibilityTable.h</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityTableCellcpp">trunk/Source/WebCore/accessibility/AccessibilityTableCell.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityTableColumncpp">trunk/Source/WebCore/accessibility/AccessibilityTableColumn.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityTableHeaderContainercpp">trunk/Source/WebCore/accessibility/AccessibilityTableHeaderContainer.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityAccessibilityTableRowcpp">trunk/Source/WebCore/accessibility/AccessibilityTableRow.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilityatkWebKitAccessibleWrapperAtkcpp">trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp</a></li>
<li><a href="#trunkSourceWebCoreaccessibilitymacAXObjectCacheMacmm">trunk/Source/WebCore/accessibility/mac/AXObjectCacheMac.mm</a></li>
<li><a href="#trunkSourceWebCoreaccessibilitymacWebAccessibilityObjectWrapperMacmm">trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="trunkSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/ChangeLog (175067 => 175068)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/ChangeLog        2014-10-22 21:16:48 UTC (rev 175067)
+++ trunk/Source/WebCore/ChangeLog        2014-10-22 21:45:20 UTC (rev 175068)
</span><span class="lines">@@ -1,5 +1,85 @@
</span><span class="cx"> 2014-10-22 Chris Dumez <cdumez@apple.com>
</span><span class="cx">
</span><ins>+ Avoid confusion between AccessibilityObject::isTable() / isAccessibilityTable()
+ https://bugs.webkit.org/show_bug.cgi?id=137899
+
+ Reviewed by Darin Adler.
+
+ Avoid confusion between AccessibilityObject::isTable() and
+ isAccessibilityTable(). isTable() is equivalent to
+ is<AccessibilityTable>(), while isAccessibilityTable() is an
+ AccessibilityTable that is exposed as an AccessibilityTable to the
+ platform.
+
+ This patch is renaming isAccessibilityTable() to
+ isExposableThroughAccessibility(), makes it non-virtual and defines it
+ on AccessibilityTable only, for clarity.
+
+ This patch also renames isTableExposableThroughAccessibility() to
+ computeIisTableExposableThroughAccessibility() as it is called only
+ once to initialize the m_isExposableThroughAccessibility data member.
+
+ No new tests, no behavior change.
+
+ * accessibility/AccessibilityARIAGrid.cpp:
+ (WebCore::AccessibilityARIAGrid::addChildren):
+ * accessibility/AccessibilityARIAGrid.h:
+ * accessibility/AccessibilityARIAGridCell.cpp:
+ (WebCore::AccessibilityARIAGridCell::parentTable):
+ (WebCore::AccessibilityARIAGridCell::rowIndexRange):
+ (WebCore::AccessibilityARIAGridCell::columnIndexRange):
+ * accessibility/AccessibilityARIAGridRow.cpp:
+ (WebCore::AccessibilityARIAGridRow::disclosedRows):
+ (WebCore::AccessibilityARIAGridRow::disclosedByRow):
+ (WebCore::AccessibilityARIAGridRow::parentTable):
+ * accessibility/AccessibilityNodeObject.cpp:
+ (WebCore::shouldUseAccessiblityObjectInnerText):
+ * accessibility/AccessibilityObject.cpp:
+ (WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex):
+ (WebCore::appendChildrenToArray):
+ * accessibility/AccessibilityObject.h:
+ (WebCore::AccessibilityObject::isAccessibilityTable): Deleted.
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::ariaSelectedRows):
+ * accessibility/AccessibilityTable.cpp:
+ (WebCore::AccessibilityTable::AccessibilityTable):
+ (WebCore::AccessibilityTable::init):
+ (WebCore::AccessibilityTable::isExposableThroughAccessibility):
+ (WebCore::AccessibilityTable::computeIsTableExposableThroughAccessibility):
+ (WebCore::AccessibilityTable::addChildren):
+ (WebCore::AccessibilityTable::tableLevel):
+ (WebCore::AccessibilityTable::roleValue):
+ (WebCore::AccessibilityTable::computeAccessibilityIsIgnored):
+ (WebCore::AccessibilityTable::title):
+ (WebCore::AccessibilityTable::isAccessibilityTable): Deleted.
+ (WebCore::AccessibilityTable::isTableExposableThroughAccessibility): Deleted.
+ * accessibility/AccessibilityTable.h:
+ * accessibility/AccessibilityTableCell.cpp:
+ (WebCore::AccessibilityTableCell::isTableCell):
+ * accessibility/AccessibilityTableColumn.cpp:
+ (WebCore::AccessibilityTableColumn::headerObject):
+ (WebCore::AccessibilityTableColumn::addChildren):
+ * accessibility/AccessibilityTableHeaderContainer.cpp:
+ (WebCore::AccessibilityTableHeaderContainer::addChildren):
+ * accessibility/AccessibilityTableRow.cpp:
+ (WebCore::AccessibilityTableRow::isTableRow):
+ (WebCore::AccessibilityTableRow::parentTable):
+ * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
+ (webkitAccessibleGetNChildren):
+ (webkitAccessibleRefChild):
+ (webkitAccessibleGetAttributes):
+ * accessibility/mac/AXObjectCacheMac.mm:
+ (WebCore::AXObjectCache::postPlatformNotification):
+ * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
+ (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
+ (-[WebAccessibilityObjectWrapper accessibilityAttributeNames]):
+ (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
+ (-[WebAccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
+ (-[WebAccessibilityObjectWrapper accessibilitySetValue:forAttribute:]):
+ (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
+
+2014-10-22 Chris Dumez <cdumez@apple.com>
+
</ins><span class="cx"> Avoid repeated is<MutableStyleProperties>() checks in StyleProperties
</span><span class="cx"> https://bugs.webkit.org/show_bug.cgi?id=137978
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityARIAGridcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityARIAGrid.cpp (175067 => 175068)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityARIAGrid.cpp        2014-10-22 21:16:48 UTC (rev 175067)
+++ trunk/Source/WebCore/accessibility/AccessibilityARIAGrid.cpp        2014-10-22 21:45:20 UTC (rev 175068)
</span><span class="lines">@@ -100,7 +100,7 @@
</span><span class="cx"> {
</span><span class="cx"> ASSERT(!m_haveChildren);
</span><span class="cx">
</span><del>- if (!isAccessibilityTable()) {
</del><ins>+ if (!isExposableThroughAccessibility()) {
</ins><span class="cx"> AccessibilityRenderObject::addChildren();
</span><span class="cx"> return;
</span><span class="cx"> }
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityARIAGridh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityARIAGrid.h (175067 => 175068)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityARIAGrid.h        2014-10-22 21:16:48 UTC (rev 175067)
+++ trunk/Source/WebCore/accessibility/AccessibilityARIAGrid.h        2014-10-22 21:45:20 UTC (rev 175068)
</span><span class="lines">@@ -53,7 +53,7 @@
</span><span class="cx"> // ARIA treegrids and grids support selected rows.
</span><span class="cx"> virtual bool supportsSelectedRows() override { return true; }
</span><span class="cx"> virtual bool isMultiSelectable() const override { return true; }
</span><del>- virtual bool isTableExposableThroughAccessibility() const override { return true; }
</del><ins>+ virtual bool computeIsTableExposableThroughAccessibility() const override { return true; }
</ins><span class="cx">
</span><span class="cx"> void addRowDescendant(AccessibilityObject*, HashSet<AccessibilityObject*>& appendedRows, unsigned& columnCount);
</span><span class="cx"> bool addTableCellChild(AccessibilityObject*, HashSet<AccessibilityObject*>& appendedRows, unsigned& columnCount);
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityARIAGridCellcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityARIAGridCell.cpp (175067 => 175068)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityARIAGridCell.cpp        2014-10-22 21:16:48 UTC (rev 175067)
+++ trunk/Source/WebCore/accessibility/AccessibilityARIAGridCell.cpp        2014-10-22 21:45:20 UTC (rev 175068)
</span><span class="lines">@@ -55,14 +55,14 @@
</span><span class="cx"> if (!parent)
</span><span class="cx"> return nullptr;
</span><span class="cx">
</span><del>- if (parent->isAccessibilityTable())
</del><ins>+ if (is<AccessibilityTable>(*parent) && downcast<AccessibilityTable>(*parent).isExposableThroughAccessibility())
</ins><span class="cx"> return downcast<AccessibilityTable>(parent);
</span><span class="cx">
</span><span class="cx"> // It could happen that we hadn't reached the parent table yet (in
</span><span class="cx"> // case objects for rows were not ignoring accessibility) so for
</span><span class="cx"> // that reason we need to run parentObjectUnignored once again.
</span><span class="cx"> parent = parent->parentObjectUnignored();
</span><del>- if (!parent || !parent->isAccessibilityTable())
</del><ins>+ if (!(is<AccessibilityTable>(parent) && downcast<AccessibilityTable>(*parent).isExposableThroughAccessibility()))
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> return downcast<AccessibilityTable>(parent);
</span><span class="lines">@@ -77,7 +77,7 @@
</span><span class="cx"> if (is<AccessibilityTableRow>(*parent)) {
</span><span class="cx"> // We already got a table row, use its API.
</span><span class="cx"> rowRange.first = downcast<AccessibilityTableRow>(*parent).rowIndex();
</span><del>- } else if (parent->isAccessibilityTable()) {
</del><ins>+ } else if (is<AccessibilityTable>(*parent) && downcast<AccessibilityTable>(*parent).isExposableThroughAccessibility()) {
</ins><span class="cx"> // We reached the parent table, so we need to inspect its
</span><span class="cx"> // children to determine the row index for the cell in it.
</span><span class="cx"> unsigned columnCount = downcast<AccessibilityTable>(*parent).columnCount();
</span><span class="lines">@@ -104,7 +104,8 @@
</span><span class="cx"> if (!parent)
</span><span class="cx"> return;
</span><span class="cx">
</span><del>- if (!parent->isTableRow() && !parent->isAccessibilityTable())
</del><ins>+ if (!is<AccessibilityTableRow>(*parent)
+ && !(is<AccessibilityTable>(*parent) && downcast<AccessibilityTable>(*parent).isExposableThroughAccessibility()))
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> const AccessibilityChildrenVector& siblings = parent->children();
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityARIAGridRowcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp (175067 => 175068)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp        2014-10-22 21:16:48 UTC (rev 175067)
+++ trunk/Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp        2014-10-22 21:45:20 UTC (rev 175068)
</span><span class="lines">@@ -63,7 +63,7 @@
</span><span class="cx"> // The contiguous disclosed rows will be the rows in the table that
</span><span class="cx"> // have an aria-level of plus 1 from this row.
</span><span class="cx"> AccessibilityObject* parent = parentObjectUnignored();
</span><del>- if (!parent || !parent->isAccessibilityTable())
</del><ins>+ if (!is<AccessibilityTable>(*parent) || !downcast<AccessibilityTable>(*parent).isExposableThroughAccessibility())
</ins><span class="cx"> return;
</span><span class="cx">
</span><span class="cx"> // Search for rows that match the correct level.
</span><span class="lines">@@ -90,7 +90,7 @@
</span><span class="cx"> // The row that discloses this one is the row in the table
</span><span class="cx"> // that is aria-level subtract 1 from this row.
</span><span class="cx"> AccessibilityObject* parent = parentObjectUnignored();
</span><del>- if (!parent || !parent->isAccessibilityTable())
</del><ins>+ if (!is<AccessibilityTable>(*parent) || !downcast<AccessibilityTable>(*parent).isExposableThroughAccessibility())
</ins><span class="cx"> return nullptr;
</span><span class="cx">
</span><span class="cx"> // If the level is 1 or less, than nothing discloses this row.
</span><span class="lines">@@ -120,8 +120,11 @@
</span><span class="cx"> // only have "row" elements, but if not, we still should handle it gracefully by finding the right table.
</span><span class="cx"> for (AccessibilityObject* parent = parentObject(); parent; parent = parent->parentObject()) {
</span><span class="cx"> // The parent table for an ARIA grid row should be an ARIA table.
</span><del>- if (parent->isAccessibilityTable() && downcast<AccessibilityTable>(*parent).isAriaTable())
- return downcast<AccessibilityTable>(parent);
</del><ins>+ if (is<AccessibilityTable>(*parent)) {
+ AccessibilityTable& tableParent = downcast<AccessibilityTable>(*parent);
+ if (tableParent.isExposableThroughAccessibility() && tableParent.isAriaTable())
+ return &tableParent;
+ }
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> return nullptr;
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityNodeObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp (175067 => 175068)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp        2014-10-22 21:16:48 UTC (rev 175067)
+++ trunk/Source/WebCore/accessibility/AccessibilityNodeObject.cpp        2014-10-22 21:45:20 UTC (rev 175068)
</span><span class="lines">@@ -31,6 +31,7 @@
</span><span class="cx">
</span><span class="cx"> #include "AXObjectCache.h"
</span><span class="cx"> #include "AccessibilityImageMapLink.h"
</span><ins>+#include "AccessibilityList.h"
</ins><span class="cx"> #include "AccessibilityListBox.h"
</span><span class="cx"> #include "AccessibilitySpinButton.h"
</span><span class="cx"> #include "AccessibilityTable.h"
</span><span class="lines">@@ -1623,9 +1624,15 @@
</span><span class="cx"> return false;
</span><span class="cx">
</span><span class="cx"> // Skip big container elements like lists, tables, etc.
</span><del>- if (obj->isList() || obj->isAccessibilityTable() || obj->isTree() || obj->isCanvas())
</del><ins>+ if (is<AccessibilityList>(*obj))
</ins><span class="cx"> return false;
</span><span class="cx">
</span><ins>+ if (is<AccessibilityTable>(*obj) && downcast<AccessibilityTable>(*obj).isExposableThroughAccessibility())
+ return false;
+
+ if (obj->isTree() || obj->isCanvas())
+ return false;
+
</ins><span class="cx"> return true;
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.cpp (175067 => 175068)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityObject.cpp        2014-10-22 21:16:48 UTC (rev 175067)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.cpp        2014-10-22 21:45:20 UTC (rev 175068)
</span><span class="lines">@@ -231,11 +231,11 @@
</span><span class="cx">
</span><span class="cx"> case TableSameLevelSearchKey:
</span><span class="cx"> return criteria->startObject
</span><del>- && axObject->isAccessibilityTable()
- && axObject->tableLevel() == criteria->startObject->tableLevel();
</del><ins>+ && is<AccessibilityTable>(*axObject) && downcast<AccessibilityTable>(*axObject).isExposableThroughAccessibility()
+ && downcast<AccessibilityTable>(*axObject).tableLevel() == criteria->startObject->tableLevel();
</ins><span class="cx">
</span><span class="cx"> case TableSearchKey:
</span><del>- return axObject->isAccessibilityTable();
</del><ins>+ return is<AccessibilityTable>(*axObject) && downcast<AccessibilityTable>(*axObject).isExposableThroughAccessibility();
</ins><span class="cx">
</span><span class="cx"> case TextFieldSearchKey:
</span><span class="cx"> return axObject->isTextControl();
</span><span class="lines">@@ -502,7 +502,7 @@
</span><span class="cx"> {
</span><span class="cx"> // A table's children includes elements whose own children are also the table's children (due to the way the Mac exposes tables).
</span><span class="cx"> // The rows from the table should be queried, since those are direct descendants of the table, and they contain content.
</span><del>- const auto& searchChildren = object->isAccessibilityTable() ? downcast<AccessibilityTable>(*object).rows() : object->children();
</del><ins>+ const auto& searchChildren = is<AccessibilityTable>(*object) && downcast<AccessibilityTable>(*object).isExposableThroughAccessibility() ? downcast<AccessibilityTable>(*object).rows() : object->children();
</ins><span class="cx">
</span><span class="cx"> size_t childrenSize = searchChildren.size();
</span><span class="cx">
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityObjecth"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityObject.h (175067 => 175068)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityObject.h        2014-10-22 21:16:48 UTC (rev 175067)
+++ trunk/Source/WebCore/accessibility/AccessibilityObject.h        2014-10-22 21:45:20 UTC (rev 175068)
</span><span class="lines">@@ -475,7 +475,6 @@
</span><span class="cx"> virtual bool isControl() const { return false; }
</span><span class="cx"> virtual bool isList() const { return false; }
</span><span class="cx"> virtual bool isTable() const { return false; }
</span><del>- virtual bool isAccessibilityTable() const { return false; }
</del><span class="cx"> virtual bool isDataTable() const { return false; }
</span><span class="cx"> virtual bool isTableRow() const { return false; }
</span><span class="cx"> virtual bool isTableColumn() const { return false; }
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityRenderObjectcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp (175067 => 175068)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp        2014-10-22 21:16:48 UTC (rev 175067)
+++ trunk/Source/WebCore/accessibility/AccessibilityRenderObject.cpp        2014-10-22 21:45:20 UTC (rev 175068)
</span><span class="lines">@@ -3144,8 +3144,11 @@
</span><span class="cx"> AccessibilityChildrenVector allRows;
</span><span class="cx"> ariaTreeRows(allRows);
</span><span class="cx"> rowsIteration(allRows);
</span><del>- } else if (isAccessibilityTable() && downcast<AccessibilityTable>(*this).supportsSelectedRows())
- rowsIteration(downcast<AccessibilityTable>(*this).rows());
</del><ins>+ } else if (is<AccessibilityTable>(*this)) {
+ auto& thisTable = downcast<AccessibilityTable>(*this);
+ if (thisTable.isExposableThroughAccessibility() && thisTable.supportsSelectedRows())
+ rowsIteration(thisTable.rows());
+ }
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> void AccessibilityRenderObject::ariaListboxSelectedChildren(AccessibilityChildrenVector& result)
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityTablecpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityTable.cpp (175067 => 175068)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityTable.cpp        2014-10-22 21:16:48 UTC (rev 175067)
+++ trunk/Source/WebCore/accessibility/AccessibilityTable.cpp        2014-10-22 21:45:20 UTC (rev 175068)
</span><span class="lines">@@ -51,7 +51,7 @@
</span><span class="cx"> AccessibilityTable::AccessibilityTable(RenderObject* renderer)
</span><span class="cx"> : AccessibilityRenderObject(renderer)
</span><span class="cx"> , m_headerContainer(nullptr)
</span><del>- , m_isAccessibilityTable(true)
</del><ins>+ , m_isExposableThroughAccessibility(true)
</ins><span class="cx"> {
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -62,7 +62,7 @@
</span><span class="cx"> void AccessibilityTable::init()
</span><span class="cx"> {
</span><span class="cx"> AccessibilityRenderObject::init();
</span><del>- m_isAccessibilityTable = isTableExposableThroughAccessibility();
</del><ins>+ m_isExposableThroughAccessibility = computeIsTableExposableThroughAccessibility();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> PassRefPtr<AccessibilityTable> AccessibilityTable::create(RenderObject* renderer)
</span><span class="lines">@@ -82,12 +82,12 @@
</span><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool AccessibilityTable::isAccessibilityTable() const
</del><ins>+bool AccessibilityTable::isExposableThroughAccessibility() const
</ins><span class="cx"> {
</span><span class="cx"> if (!m_renderer)
</span><span class="cx"> return false;
</span><span class="cx">
</span><del>- return m_isAccessibilityTable;
</del><ins>+ return m_isExposableThroughAccessibility;
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> HTMLTableElement* AccessibilityTable::tableElement() const
</span><span class="lines">@@ -309,7 +309,7 @@
</span><span class="cx"> return false;
</span><span class="cx"> }
</span><span class="cx">
</span><del>-bool AccessibilityTable::isTableExposableThroughAccessibility() const
</del><ins>+bool AccessibilityTable::computeIsTableExposableThroughAccessibility() const
</ins><span class="cx"> {
</span><span class="cx"> // The following is a heuristic used to determine if a
</span><span class="cx"> // <table> should be exposed as an AXTable. The goal
</span><span class="lines">@@ -347,7 +347,7 @@
</span><span class="cx">
</span><span class="cx"> void AccessibilityTable::addChildren()
</span><span class="cx"> {
</span><del>- if (!isAccessibilityTable()) {
</del><ins>+ if (!isExposableThroughAccessibility()) {
</ins><span class="cx"> AccessibilityRenderObject::addChildren();
</span><span class="cx"> return;
</span><span class="cx"> }
</span><span class="lines">@@ -525,7 +525,7 @@
</span><span class="cx"> {
</span><span class="cx"> int level = 0;
</span><span class="cx"> for (AccessibilityObject* obj = static_cast<AccessibilityObject*>(const_cast<AccessibilityTable*>(this)); obj; obj = obj->parentObject()) {
</span><del>- if (obj->isAccessibilityTable())
</del><ins>+ if (is<AccessibilityTable>(*obj) && downcast<AccessibilityTable>(*obj).isExposableThroughAccessibility())
</ins><span class="cx"> ++level;
</span><span class="cx"> }
</span><span class="cx">
</span><span class="lines">@@ -568,7 +568,7 @@
</span><span class="cx">
</span><span class="cx"> AccessibilityRole AccessibilityTable::roleValue() const
</span><span class="cx"> {
</span><del>- if (!isAccessibilityTable())
</del><ins>+ if (!isExposableThroughAccessibility())
</ins><span class="cx"> return AccessibilityRenderObject::roleValue();
</span><span class="cx">
</span><span class="cx"> return TableRole;
</span><span class="lines">@@ -582,7 +582,7 @@
</span><span class="cx"> if (decision == IgnoreObject)
</span><span class="cx"> return true;
</span><span class="cx">
</span><del>- if (!isAccessibilityTable())
</del><ins>+ if (!isExposableThroughAccessibility())
</ins><span class="cx"> return AccessibilityRenderObject::computeAccessibilityIsIgnored();
</span><span class="cx">
</span><span class="cx"> return false;
</span><span class="lines">@@ -597,7 +597,7 @@
</span><span class="cx">
</span><span class="cx"> String AccessibilityTable::title() const
</span><span class="cx"> {
</span><del>- if (!isAccessibilityTable())
</del><ins>+ if (!isExposableThroughAccessibility())
</ins><span class="cx"> return AccessibilityRenderObject::title();
</span><span class="cx">
</span><span class="cx"> String title;
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityTableh"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityTable.h (175067 => 175068)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityTable.h        2014-10-22 21:16:48 UTC (rev 175067)
+++ trunk/Source/WebCore/accessibility/AccessibilityTable.h        2014-10-22 21:45:20 UTC (rev 175068)
</span><span class="lines">@@ -60,7 +60,7 @@
</span><span class="cx"> virtual bool supportsSelectedRows() { return false; }
</span><span class="cx"> unsigned columnCount();
</span><span class="cx"> unsigned rowCount();
</span><del>- virtual int tableLevel() const override;
</del><ins>+ virtual int tableLevel() const override final;
</ins><span class="cx">
</span><span class="cx"> virtual String title() const override;
</span><span class="cx">
</span><span class="lines">@@ -75,15 +75,15 @@
</span><span class="cx"> // an object that contains, as children, all the objects that act as headers
</span><span class="cx"> AccessibilityObject* headerContainer();
</span><span class="cx">
</span><del>- // isAccessibilityTable is whether it is exposed as an AccessibilityTable to the platform.
- virtual bool isAccessibilityTable() const override final;
</del><ins>+ // isExposableThroughAccessibility() is whether it is exposed as an AccessibilityTable to the platform.
+ bool isExposableThroughAccessibility() const;
</ins><span class="cx">
</span><span class="cx"> protected:
</span><span class="cx"> AccessibilityChildrenVector m_rows;
</span><span class="cx"> AccessibilityChildrenVector m_columns;
</span><span class="cx">
</span><span class="cx"> RefPtr<AccessibilityObject> m_headerContainer;
</span><del>- bool m_isAccessibilityTable;
</del><ins>+ bool m_isExposableThroughAccessibility;
</ins><span class="cx">
</span><span class="cx"> bool hasARIARole() const;
</span><span class="cx">
</span><span class="lines">@@ -92,11 +92,10 @@
</span><span class="cx"> // isDataTable is whether it is exposed as an AccessibilityTable because the heuristic
</span><span class="cx"> // think this "looks" like a data-based table (instead of a table used for layout).
</span><span class="cx"> virtual bool isDataTable() const override;
</span><del>-
- virtual bool isTableExposableThroughAccessibility() const;
</del><span class="cx"> virtual bool computeAccessibilityIsIgnored() const override;
</span><span class="cx">
</span><span class="cx"> private:
</span><ins>+ virtual bool computeIsTableExposableThroughAccessibility() const;
</ins><span class="cx"> virtual void titleElementText(Vector<AccessibilityText>&) const override;
</span><span class="cx"> HTMLTableElement* tableElement() const;
</span><span class="cx"> void addChildrenFromSection(RenderTableSection*, unsigned& maxColumnCount);
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityTableCellcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityTableCell.cpp (175067 => 175068)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityTableCell.cpp        2014-10-22 21:16:48 UTC (rev 175067)
+++ trunk/Source/WebCore/accessibility/AccessibilityTableCell.cpp        2014-10-22 21:45:20 UTC (rev 175068)
</span><span class="lines">@@ -100,7 +100,7 @@
</span><span class="cx"> // This used to check if the unignoredParent was a row, but that exploded performance if
</span><span class="cx"> // this was in nested tables. This check should be just as good.
</span><span class="cx"> AccessibilityObject* parentTable = this->parentTable();
</span><del>- return parentTable && parentTable->isAccessibilityTable();
</del><ins>+ return is<AccessibilityTable>(parentTable) && downcast<AccessibilityTable>(*parentTable).isExposableThroughAccessibility();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> AccessibilityRole AccessibilityTableCell::determineAccessibilityRole()
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityTableColumncpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityTableColumn.cpp (175067 => 175068)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityTableColumn.cpp        2014-10-22 21:16:48 UTC (rev 175067)
+++ trunk/Source/WebCore/accessibility/AccessibilityTableColumn.cpp        2014-10-22 21:45:20 UTC (rev 175068)
</span><span class="lines">@@ -75,11 +75,13 @@
</span><span class="cx"> RenderObject* renderer = m_parent->renderer();
</span><span class="cx"> if (!renderer)
</span><span class="cx"> return nullptr;
</span><del>-
- if (!m_parent->isAccessibilityTable())
</del><ins>+ if (!is<AccessibilityTable>(*m_parent))
</ins><span class="cx"> return nullptr;
</span><ins>+
+ auto& parentTable = downcast<AccessibilityTable>(*m_parent);
+ if (!parentTable.isExposableThroughAccessibility())
+ return nullptr;
</ins><span class="cx">
</span><del>- auto& parentTable = downcast<AccessibilityTable>(*m_parent);
</del><span class="cx"> if (parentTable.isAriaTable()) {
</span><span class="cx"> for (const auto& cell : children()) {
</span><span class="cx"> if (cell->ariaRoleAttribute() == ColumnHeaderRole)
</span><span class="lines">@@ -170,10 +172,13 @@
</span><span class="cx"> ASSERT(!m_haveChildren);
</span><span class="cx">
</span><span class="cx"> m_haveChildren = true;
</span><del>- if (!m_parent || !m_parent->isAccessibilityTable())
</del><ins>+ if (!is<AccessibilityTable>(m_parent))
</ins><span class="cx"> return;
</span><ins>+
+ auto& parentTable = downcast<AccessibilityTable>(*m_parent);
+ if (!parentTable.isExposableThroughAccessibility())
+ return;
</ins><span class="cx">
</span><del>- AccessibilityTable& parentTable = downcast<AccessibilityTable>(*m_parent);
</del><span class="cx"> int numRows = parentTable.rowCount();
</span><span class="cx">
</span><span class="cx"> for (int i = 0; i < numRows; ++i) {
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityTableHeaderContainercpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityTableHeaderContainer.cpp (175067 => 175068)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityTableHeaderContainer.cpp        2014-10-22 21:16:48 UTC (rev 175067)
+++ trunk/Source/WebCore/accessibility/AccessibilityTableHeaderContainer.cpp        2014-10-22 21:45:20 UTC (rev 175068)
</span><span class="lines">@@ -70,10 +70,14 @@
</span><span class="cx"> ASSERT(!m_haveChildren);
</span><span class="cx">
</span><span class="cx"> m_haveChildren = true;
</span><del>- if (!m_parent || !m_parent->isAccessibilityTable())
</del><ins>+ if (!is<AccessibilityTable>(m_parent))
</ins><span class="cx"> return;
</span><ins>+
+ auto& parentTable = downcast<AccessibilityTable>(*m_parent);
+ if (!parentTable.isExposableThroughAccessibility())
+ return;
</ins><span class="cx">
</span><del>- downcast<AccessibilityTable>(*m_parent).columnHeaders(m_children);
</del><ins>+ parentTable.columnHeaders(m_children);
</ins><span class="cx">
</span><span class="cx"> for (const auto& child : m_children)
</span><span class="cx"> m_headerRect.unite(child->elementRect());
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityAccessibilityTableRowcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/AccessibilityTableRow.cpp (175067 => 175068)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/AccessibilityTableRow.cpp        2014-10-22 21:16:48 UTC (rev 175067)
+++ trunk/Source/WebCore/accessibility/AccessibilityTableRow.cpp        2014-10-22 21:45:20 UTC (rev 175068)
</span><span class="lines">@@ -73,10 +73,7 @@
</span><span class="cx"> bool AccessibilityTableRow::isTableRow() const
</span><span class="cx"> {
</span><span class="cx"> AccessibilityObject* table = parentTable();
</span><del>- if (!table || !table->isAccessibilityTable())
- return false;
-
- return true;
</del><ins>+ return is<AccessibilityTable>(table) && downcast<AccessibilityTable>(*table).isExposableThroughAccessibility();
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> AccessibilityObject* AccessibilityTableRow::observableObject() const
</span><span class="lines">@@ -106,8 +103,12 @@
</span><span class="cx"> for (AccessibilityObject* parent = parentObject(); parent; parent = parent->parentObject()) {
</span><span class="cx"> // If this is a table object, but not an accessibility table, we should stop because we don't want to
</span><span class="cx"> // choose another ancestor table as this row's table.
</span><del>- if (is<AccessibilityTable>(*parent))
- return downcast<AccessibilityTable>(*parent).isAccessibilityTable() ? downcast<AccessibilityTable>(parent) : nullptr;
</del><ins>+ if (is<AccessibilityTable>(*parent)) {
+ auto& parentTable = downcast<AccessibilityTable>(*parent);
+ if (parentTable.isExposableThroughAccessibility())
+ return &parentTable;
+ break;
+ }
</ins><span class="cx"> }
</span><span class="cx">
</span><span class="cx"> return nullptr;
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilityatkWebKitAccessibleWrapperAtkcpp"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp (175067 => 175068)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp        2014-10-22 21:16:48 UTC (rev 175067)
+++ trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp        2014-10-22 21:45:20 UTC (rev 175068)
</span><span class="lines">@@ -37,6 +37,7 @@
</span><span class="cx"> #include "AXObjectCache.h"
</span><span class="cx"> #include "AccessibilityList.h"
</span><span class="cx"> #include "AccessibilityListBoxOption.h"
</span><ins>+#include "AccessibilityTable.h"
</ins><span class="cx"> #include "Document.h"
</span><span class="cx"> #include "Frame.h"
</span><span class="cx"> #include "FrameView.h"
</span><span class="lines">@@ -355,7 +356,7 @@
</span><span class="cx">
</span><span class="cx"> // Tables should be treated in a different way because rows should
</span><span class="cx"> // be bypassed when exposing the accessible hierarchy.
</span><del>- if (coreObject->isAccessibilityTable())
</del><ins>+ if (is<AccessibilityTable>(*coreObject) && downcast<AccessibilityTable>(*coreObject).isExposableThroughAccessibility())
</ins><span class="cx"> return getNChildrenForTable(coreObject);
</span><span class="cx">
</span><span class="cx"> return coreObject->children().size();
</span><span class="lines">@@ -398,7 +399,7 @@
</span><span class="cx">
</span><span class="cx"> // Tables are special cases because rows should be bypassed, but
</span><span class="cx"> // still taking their cells into account.
</span><del>- if (coreObject->isAccessibilityTable())
</del><ins>+ if (is<AccessibilityTable>(*coreObject) && downcast<AccessibilityTable>(*coreObject).isExposableThroughAccessibility())
</ins><span class="cx"> coreChild = getChildForTable(coreObject, index);
</span><span class="cx"> else {
</span><span class="cx"> const AccessibilityObject::AccessibilityChildrenVector& children = coreObject->children();
</span><span class="lines">@@ -520,7 +521,7 @@
</span><span class="cx">
</span><span class="cx"> // Set the 'layout-guess' attribute to help Assistive
</span><span class="cx"> // Technologies know when an exposed table is not data table.
</span><del>- if (coreObject->isAccessibilityTable() && !coreObject->isDataTable())
</del><ins>+ if (is<AccessibilityTable>(*coreObject) && downcast<AccessibilityTable>(*coreObject).isExposableThroughAccessibility() && !coreObject->isDataTable())
</ins><span class="cx"> attributeSet = addToAtkAttributeSet(attributeSet, "layout-guess", "true");
</span><span class="cx">
</span><span class="cx"> String placeholder = coreObject->placeholderValue();
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilitymacAXObjectCacheMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/mac/AXObjectCacheMac.mm (175067 => 175068)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/mac/AXObjectCacheMac.mm        2014-10-22 21:16:48 UTC (rev 175067)
+++ trunk/Source/WebCore/accessibility/mac/AXObjectCacheMac.mm        2014-10-22 21:45:20 UTC (rev 175068)
</span><span class="lines">@@ -29,6 +29,7 @@
</span><span class="cx"> #if HAVE(ACCESSIBILITY)
</span><span class="cx">
</span><span class="cx"> #import "AccessibilityObject.h"
</span><ins>+#import "AccessibilityTable.h"
</ins><span class="cx"> #import "RenderObject.h"
</span><span class="cx"> #import "WebAccessibilityObjectWrapperMac.h"
</span><span class="cx"> #import "WebCoreSystemInterface.h"
</span><span class="lines">@@ -96,7 +97,7 @@
</span><span class="cx"> macNotification = @"AXInvalidStatusChanged";
</span><span class="cx"> break;
</span><span class="cx"> case AXSelectedChildrenChanged:
</span><del>- if (obj->isAccessibilityTable())
</del><ins>+ if (is<AccessibilityTable>(*obj) && downcast<AccessibilityTable>(*obj).isExposableThroughAccessibility())
</ins><span class="cx"> macNotification = NSAccessibilitySelectedRowsChangedNotification;
</span><span class="cx"> else
</span><span class="cx"> macNotification = NSAccessibilitySelectedChildrenChangedNotification;
</span></span></pre></div>
<a id="trunkSourceWebCoreaccessibilitymacWebAccessibilityObjectWrapperMacmm"></a>
<div class="modfile"><h4>Modified: trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm (175067 => 175068)</h4>
<pre class="diff"><span>
<span class="info">--- trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm        2014-10-22 21:16:48 UTC (rev 175067)
+++ trunk/Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm        2014-10-22 21:45:20 UTC (rev 175068)
</span><span class="lines">@@ -1199,7 +1199,7 @@
</span><span class="cx"> if (m_object->supportsARIADropping())
</span><span class="cx"> [additional addObject:NSAccessibilityDropEffectsAttribute];
</span><span class="cx">
</span><del>- if (m_object->isAccessibilityTable() && downcast<AccessibilityTable>(*m_object).supportsSelectedRows())
</del><ins>+ if (is<AccessibilityTable>(*m_object) && downcast<AccessibilityTable>(*m_object).isExposableThroughAccessibility() && downcast<AccessibilityTable>(*m_object).supportsSelectedRows())
</ins><span class="cx"> [additional addObject:NSAccessibilitySelectedRowsAttribute];
</span><span class="cx">
</span><span class="cx"> if (m_object->supportsARIALiveRegion()) {
</span><span class="lines">@@ -1590,7 +1590,7 @@
</span><span class="cx"> else if (m_object->isAnchor() || m_object->isImage() || m_object->isLink())
</span><span class="cx"> objectAttributes = anchorAttrs;
</span><span class="cx">
</span><del>- else if (m_object->isAccessibilityTable())
</del><ins>+ else if (is<AccessibilityTable>(*m_object) && downcast<AccessibilityTable>(*m_object).isExposableThroughAccessibility())
</ins><span class="cx"> objectAttributes = tableAttrs;
</span><span class="cx"> else if (m_object->isTableColumn())
</span><span class="cx"> objectAttributes = tableColAttrs;
</span><span class="lines">@@ -2554,7 +2554,7 @@
</span><span class="cx"> }
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if (m_object->isAccessibilityTable()) {
</del><ins>+ if (is<AccessibilityTable>(*m_object) && downcast<AccessibilityTable>(*m_object).isExposableThroughAccessibility()) {
</ins><span class="cx"> auto& table = downcast<AccessibilityTable>(*m_object);
</span><span class="cx"> if ([attributeName isEqualToString:NSAccessibilityRowsAttribute])
</span><span class="cx"> return convertToNSArray(table.rows());
</span><span class="lines">@@ -3128,7 +3128,7 @@
</span><span class="cx"> if (m_object->isTextControl())
</span><span class="cx"> return textParamAttrs;
</span><span class="cx">
</span><del>- if (m_object->isAccessibilityTable())
</del><ins>+ if (is<AccessibilityTable>(*m_object) && downcast<AccessibilityTable>(*m_object).isExposableThroughAccessibility())
</ins><span class="cx"> return tableParamAttrs;
</span><span class="cx">
</span><span class="cx"> if (m_object->isMenuRelated())
</span><span class="lines">@@ -3314,7 +3314,7 @@
</span><span class="cx"> else if ([attributeName isEqualToString:NSAccessibilitySelectedRowsAttribute]) {
</span><span class="cx"> AccessibilityObject::AccessibilityChildrenVector selectedRows;
</span><span class="cx"> convertToVector(array, selectedRows);
</span><del>- if (m_object->isTree() || m_object->isAccessibilityTable())
</del><ins>+ if (m_object->isTree() || (is<AccessibilityTable>(*m_object) && downcast<AccessibilityTable>(*m_object).isExposableThroughAccessibility()))
</ins><span class="cx"> m_object->setSelectedRows(selectedRows);
</span><span class="cx"> } else if ([attributeName isEqualToString:NSAccessibilityGrabbedAttribute])
</span><span class="cx"> m_object->setARIAGrabbed([number boolValue]);
</span><span class="lines">@@ -3703,7 +3703,7 @@
</span><span class="cx"> return [self textMarkerForVisiblePosition:visiblePosRange.end];
</span><span class="cx"> }
</span><span class="cx">
</span><del>- if (m_object->isAccessibilityTable()) {
</del><ins>+ if (is<AccessibilityTable>(*m_object) && downcast<AccessibilityTable>(*m_object).isExposableThroughAccessibility()) {
</ins><span class="cx"> if ([attribute isEqualToString:NSAccessibilityCellForColumnAndRowParameterizedAttribute]) {
</span><span class="cx"> if (array == nil || [array count] != 2)
</span><span class="cx"> return nil;
</span></span></pre>
</div>
</div>
</body>
</html>