Changeset 140340 in webkit
- Timestamp:
- Jan 21, 2013 8:57:38 AM (11 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r140334 r140340 1 2013-01-21 Joanmarie Diggs <jdiggs@igalia.com> 2 3 Crash in AccessibilityTableCell::parentTable() 4 https://bugs.webkit.org/show_bug.cgi?id=107261 5 6 Reviewed by Chris Fleizach. 7 8 Getting the parent table in order to get the role value should not be 9 done when objects are being destroyed. Also, it does not seem safe to 10 assume we have an AXObjectCache. 11 12 * accessibility/table-destroyed-crash-expected.txt: Added. 13 * accessibility/table-destroyed-crash.html: Added. 14 1 15 2013-01-21 Ádám Kallai <kadam@inf.u-szeged.hu> 2 16 -
trunk/Source/WebCore/ChangeLog
r140339 r140340 1 2013-01-21 Joanmarie Diggs <jdiggs@igalia.com> 2 3 Crash in AccessibilityTableCell::parentTable() 4 https://bugs.webkit.org/show_bug.cgi?id=107261 5 6 Reviewed by Chris Fleizach. 7 8 Test: accessibility/table-destroyed-crash.html 9 10 Getting the parent table in order to get the role value should not be 11 done when objects are being destroyed. Also, it does not seem safe to 12 assume we have an AXObjectCache. 13 14 Moving the logic from roleValue() to determineAccessibilityRole() has 15 the side effect of not being able to verify the cell is in an AXTable 16 when that AXTable has not yet been created. Therefore isTableCell() 17 should look to see if it is the descendant of an AXRow. 18 19 * accessibility/AccessibilityTableCell.cpp: 20 (WebCore::AccessibilityTableCell::parentTable): 21 (WebCore::AccessibilityTableCell::isTableCell): 22 (WebCore::AccessibilityTableCell::determineAccessibilityRole): 23 * accessibility/AccessibilityTableCell.h: 24 (AccessibilityTableCell): 25 1 26 2013-01-21 Halton Huo <halton.huo@intel.com> 2 27 -
trunk/Source/WebCore/accessibility/AccessibilityTableCell.cpp
r123428 r140340 75 75 if (!m_renderer || !m_renderer->isTableCell()) 76 76 return 0; 77 78 // If the document no longer exists, we might not have an axObjectCache. 79 if (!axObjectCache()) 80 return 0; 77 81 78 82 // Do not use getOrCreate. parentTable() can be called while the render tree is being modified … … 86 90 bool AccessibilityTableCell::isTableCell() const 87 91 { 88 AccessibilityObject* table = parentTable();89 if (! table || !table->isAccessibilityTable())92 AccessibilityObject* parent = parentObjectUnignored(); 93 if (!parent || !parent->isTableRow()) 90 94 return false; 91 95 … … 93 97 } 94 98 95 AccessibilityRole AccessibilityTableCell:: roleValue() const99 AccessibilityRole AccessibilityTableCell::determineAccessibilityRole() 96 100 { 97 101 if (!isTableCell()) 98 return AccessibilityRenderObject:: roleValue();102 return AccessibilityRenderObject::determineAccessibilityRole(); 99 103 100 104 return CellRole; -
trunk/Source/WebCore/accessibility/AccessibilityTableCell.h
r124582 r140340 43 43 44 44 virtual bool isTableCell() const; 45 virtual AccessibilityRole roleValue() const;46 45 47 46 virtual bool accessibilityIsIgnored() const; … … 55 54 virtual AccessibilityObject* parentTable() const; 56 55 int m_rowIndex; 56 virtual AccessibilityRole determineAccessibilityRole(); 57 57 58 58 private:
Note: See TracChangeset
for help on using the changeset viewer.