Index: Source/core/accessibility/AXARIAGrid.cpp |
diff --git a/Source/core/accessibility/AXARIAGrid.cpp b/Source/core/accessibility/AXARIAGrid.cpp |
deleted file mode 100644 |
index 156791d2485ea9d3142673dfc3244baa90b73cc4..0000000000000000000000000000000000000000 |
--- a/Source/core/accessibility/AXARIAGrid.cpp |
+++ /dev/null |
@@ -1,132 +0,0 @@ |
-/* |
- * Copyright (C) 2009 Apple Inc. All rights reserved. |
- * |
- * Redistribution and use in source and binary forms, with or without |
- * modification, are permitted provided that the following conditions |
- * are met: |
- * |
- * 1. Redistributions of source code must retain the above copyright |
- * notice, this list of conditions and the following disclaimer. |
- * 2. Redistributions in binary form must reproduce the above copyright |
- * notice, this list of conditions and the following disclaimer in the |
- * documentation and/or other materials provided with the distribution. |
- * 3. Neither the name of Apple Computer, Inc. ("Apple") nor the names of |
- * its contributors may be used to endorse or promote products derived |
- * from this software without specific prior written permission. |
- * |
- * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY |
- * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED |
- * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE |
- * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY |
- * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES |
- * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; |
- * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND |
- * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
- * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
- * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
- */ |
- |
-#include "config.h" |
-#include "core/accessibility/AXARIAGrid.h" |
- |
-#include "core/accessibility/AXObjectCacheImpl.h" |
-#include "core/accessibility/AXTableColumn.h" |
-#include "core/accessibility/AXTableRow.h" |
-#include "core/rendering/RenderObject.h" |
- |
- |
-namespace blink { |
- |
-AXARIAGrid::AXARIAGrid(RenderObject* renderer) |
- : AXTable(renderer) |
-{ |
-} |
- |
-AXARIAGrid::~AXARIAGrid() |
-{ |
-} |
- |
-PassRefPtr<AXARIAGrid> AXARIAGrid::create(RenderObject* renderer) |
-{ |
- return adoptRef(new AXARIAGrid(renderer)); |
-} |
- |
-bool AXARIAGrid::addTableCellChild(AXObject* child, HashSet<AXObject*>& appendedRows, unsigned& columnCount) |
-{ |
- if (!child || !child->isTableRow() || child->ariaRoleAttribute() != RowRole) |
- return false; |
- |
- AXTableRow* row = toAXTableRow(child); |
- if (appendedRows.contains(row)) |
- return false; |
- |
- // store the maximum number of columns |
- unsigned rowCellCount = row->children().size(); |
- if (rowCellCount > columnCount) |
- columnCount = rowCellCount; |
- |
- row->setRowIndex((int)m_rows.size()); |
- m_rows.append(row); |
- |
- // Try adding the row if it's not ignoring accessibility, |
- // otherwise add its children (the cells) as the grid's children. |
- if (!row->accessibilityIsIgnored()) |
- m_children.append(row); |
- else |
- m_children.appendVector(row->children()); |
- |
- appendedRows.add(row); |
- return true; |
-} |
- |
-void AXARIAGrid::addChildren() |
-{ |
- ASSERT(!m_haveChildren); |
- |
- if (!isAXTable()) { |
- AXRenderObject::addChildren(); |
- return; |
- } |
- |
- m_haveChildren = true; |
- if (!m_renderer) |
- return; |
- |
- AXObjectCacheImpl* axCache = toAXObjectCacheImpl(m_renderer->document().axObjectCache()); |
- |
- // add only rows that are labeled as aria rows |
- HashSet<AXObject*> appendedRows; |
- unsigned columnCount = 0; |
- for (RefPtr<AXObject> child = firstChild(); child; child = child->nextSibling()) { |
- |
- if (!addTableCellChild(child.get(), appendedRows, columnCount)) { |
- |
- // in case the render tree doesn't match the expected ARIA hierarchy, look at the children |
- if (!child->hasChildren()) |
- child->addChildren(); |
- |
- // The children of this non-row will contain all non-ignored elements (recursing to find them). |
- // This allows the table to dive arbitrarily deep to find the rows. |
- AccessibilityChildrenVector children = child->children(); |
- size_t length = children.size(); |
- for (size_t i = 0; i < length; ++i) |
- addTableCellChild(children[i].get(), appendedRows, columnCount); |
- } |
- } |
- |
- // make the columns based on the number of columns in the first body |
- for (unsigned i = 0; i < columnCount; ++i) { |
- AXTableColumn* column = toAXTableColumn(axCache->getOrCreate(ColumnRole)); |
- column->setColumnIndex((int)i); |
- column->setParent(this); |
- m_columns.append(column); |
- if (!column->accessibilityIsIgnored()) |
- m_children.append(column); |
- } |
- |
- AXObject* headerContainerObject = headerContainer(); |
- if (headerContainerObject && !headerContainerObject->accessibilityIsIgnored()) |
- m_children.append(headerContainerObject); |
-} |
- |
-} // namespace blink |