Changeset 140095 in webkit
- Timestamp:
- Jan 17, 2013 7:46:37 PM (11 years ago)
- Location:
- trunk
- Files:
-
- 7 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r140090 r140095 1 2013-01-17 Joanmarie Diggs <jdiggs@igalia.com> 2 3 REGRESSION (r139444): Crashes in three accessibility tests on GTK 4 https://bugs.webkit.org/show_bug.cgi?id=106922 5 6 Reviewed by Chris Fleizach. 7 8 * platform/gtk/TestExpectations: Unskipped the three failing tests 9 1 10 2013-01-17 Elliott Sprehn <esprehn@chromium.org> 2 11 -
trunk/LayoutTests/platform/gtk/TestExpectations
r140006 r140095 484 484 webkit.org/b/105689 [ Debug ] plugins/npruntime/embed-property-iframe-equality.html [ Crash ] 485 485 486 webkit.org/b/106922 accessibility/aria-tables.html [ Crash ]487 webkit.org/b/106922 accessibility/aria-hidden-with-elements.html [ Crash ]488 webkit.org/b/106922 platform/gtk/accessibility/aria-table-hierarchy.html [ Crash ]489 486 490 487 #//////////////////////////////////////////////////////////////////////////////////////// -
trunk/Source/WebCore/ChangeLog
r140094 r140095 1 2013-01-17 Joanmarie Diggs <jdiggs@igalia.com> 2 3 REGRESSION (r139444): Crashes in three accessibility tests on GTK 4 https://bugs.webkit.org/show_bug.cgi?id=106922 5 6 Reviewed by Chris Fleizach. 7 8 r139444 exposed an infinite loop that was just waiting to happen. 9 Currently, getting the role value of an ARIA table row involves 10 getting the parent table via parentObjectUnignored() which in turn 11 can lead to the role value of the table row being checked. Moving 12 the roleValue() logic to determineAccessibilityRole() avoids this. 13 14 This fix, however, introduced a regression when an accessible row 15 was examined without having first examined the parent table for 16 non-ARIA tables. Now that it is safe to call parentObjectUnignored(), 17 the parentTable() method used for ARIA table rows can also be used 18 by non-ARIA table rows. 19 20 No new tests; instead unskipped the three crashing tests. 21 22 * accessibility/AccessibilityTableRow.cpp: 23 (WebCore::AccessibilityTableRow::determineAccessibilityRole): 24 * accessibility/AccessibilityTableRow.h: 25 (AccessibilityTableRow): 26 1 27 2013-01-17 Rik Cabanier <cabanier@adobe.com> 2 28 -
trunk/Source/WebCore/accessibility/AccessibilityARIAGridRow.cpp
r123428 r140095 119 119 } 120 120 121 AccessibilityObject* AccessibilityARIAGridRow::parentTable() const122 {123 AccessibilityObject* parent = parentObjectUnignored();124 if (!parent->isAccessibilityTable())125 return 0;126 127 return parent;128 }129 130 121 AccessibilityObject* AccessibilityARIAGridRow::headerObject() 131 122 { -
trunk/Source/WebCore/accessibility/AccessibilityARIAGridRow.h
r124582 r140095 46 46 47 47 virtual AccessibilityObject* headerObject(); 48 virtual AccessibilityObject* parentTable() const;49 48 50 49 private: -
trunk/Source/WebCore/accessibility/AccessibilityTableRow.cpp
r123428 r140095 60 60 } 61 61 62 AccessibilityRole AccessibilityTableRow:: roleValue() const62 AccessibilityRole AccessibilityTableRow::determineAccessibilityRole() 63 63 { 64 64 if (!isTableRow()) 65 return AccessibilityRenderObject::roleValue(); 66 65 return AccessibilityRenderObject::determineAccessibilityRole(); 66 67 m_ariaRole = determineAriaRoleAttribute(); 68 69 AccessibilityRole ariaRole = ariaRoleAttribute(); 70 if (ariaRole != UnknownRole) 71 return ariaRole; 72 67 73 return RowRole; 68 74 } … … 99 105 AccessibilityObject* AccessibilityTableRow::parentTable() const 100 106 { 101 if (!m_renderer || !m_renderer->isTableRow()) 107 AccessibilityObject* parent = parentObjectUnignored(); 108 if (!parent || !parent->isAccessibilityTable()) 102 109 return 0; 103 110 104 // Do not use getOrCreate. parentTable() can be called while the render tree is being modified. 105 return axObjectCache()->get(toRenderTableRow(m_renderer)->table()); 111 return parent; 106 112 } 107 113 -
trunk/Source/WebCore/accessibility/AccessibilityTableRow.h
r124582 r140095 43 43 44 44 virtual bool isTableRow() const; 45 virtual AccessibilityRole roleValue() const;46 45 virtual bool accessibilityIsIgnored() const; 47 46 … … 57 56 void appendChild(AccessibilityObject*); 58 57 58 protected: 59 virtual AccessibilityRole determineAccessibilityRole(); 60 59 61 private: 60 62 int m_rowIndex;
Note: See TracChangeset
for help on using the changeset viewer.