Changeset 48521 in webkit
- Timestamp:
- Sep 18, 2009, 12:00:28 PM (16 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r48515 r48521 1 2009-09-18 Dan Bernstein <mitz@apple.com> 2 3 Reviewed by Darin Adler. 4 5 Test for <rdar://problem/7050773> REGRESSION (r40098) Crash at 6 WebCore::RenderBlock::layoutBlock() 7 https://bugs.webkit.org/show_bug.cgi?id=29498 8 9 * accessibility/nested-layout-crash-expected.txt: Added. 10 * accessibility/nested-layout-crash.html: Added. 11 1 12 2009-09-18 Sam Weinig <sam@webkit.org> 2 13 -
trunk/WebCore/ChangeLog
r48520 r48521 1 2009-09-18 Dan Bernstein <mitz@apple.com> 2 3 Reviewed by Darin Adler. 4 5 Fix <rdar://problem/7050773> REGRESSION (r40098) Crash at 6 WebCore::RenderBlock::layoutBlock() 7 https://bugs.webkit.org/show_bug.cgi?id=29498 8 9 Test: accessibility/nested-layout-crash.html 10 11 * accessibility/AccessibilityRenderObject.cpp: 12 (WebCore::AccessibilityRenderObject::updateBackingStore): Changed to 13 call Document::updateLayoutIgnorePendingStylesheets() instead of 14 calling RenderObject::layoutIfNeeded(). The latter requires that 15 there be no pending style recalc, which allows methods that call 16 Document::updateLayout() to be called during layout without risking 17 re-entry into layout. 18 * accessibility/mac/AccessibilityObjectWrapper.mm: 19 (-[AccessibilityObjectWrapper accessibilityActionNames]): Null-check 20 m_object after calling updateBackingStore(), since style recalc may 21 destroy the renderer, which destroys the accessibility object and 22 detaches it from the wrapper. 23 (-[AccessibilityObjectWrapper accessibilityAttributeNames]): Ditto. 24 (-[AccessibilityObjectWrapper accessibilityAttributeValue:]): Ditto. 25 (-[AccessibilityObjectWrapper accessibilityFocusedUIElement]): Ditto. 26 (-[AccessibilityObjectWrapper accessibilityHitTest:]): Ditto. 27 (-[AccessibilityObjectWrapper accessibilityIsAttributeSettable:]): 28 Ditto. 29 (-[AccessibilityObjectWrapper accessibilityIsIgnored]): Ditto. 30 (-[AccessibilityObjectWrapper accessibilityParameterizedAttributeNames]): 31 Ditto. 32 (-[AccessibilityObjectWrapper accessibilityPerformPressAction]): Ditto. 33 (-[AccessibilityObjectWrapper accessibilityPerformIncrementAction]): 34 Ditto. 35 (-[AccessibilityObjectWrapper accessibilityPerformDecrementAction]): 36 Ditto. 37 (-[AccessibilityObjectWrapper accessibilityPerformAction:]): Ditto. 38 (-[AccessibilityObjectWrapper accessibilitySetValue:forAttribute:]): 39 Ditto. 40 (-[AccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]): 41 Ditto. 42 (-[AccessibilityObjectWrapper accessibilityIndexOfChild:]): Ditto. 43 (-[AccessibilityObjectWrapper accessibilityArrayAttributeCount:]): 44 Ditto. 45 (-[AccessibilityObjectWrapper accessibilityArrayAttributeValues:index:maxCount:]): 46 Ditto. 47 1 48 2009-09-18 Fumitoshi Ukai <ukai@chromium.org> 2 49 -
trunk/WebCore/accessibility/AccessibilityRenderObject.cpp
r48482 r48521 2677 2677 if (!m_renderer) 2678 2678 return; 2679 m_renderer->view()->layoutIfNeeded(); 2680 } 2681 2679 2680 // Updating layout may delete m_renderer and this object. 2681 m_renderer->document()->updateLayoutIgnorePendingStylesheets(); 2682 } 2683 2682 2684 } // namespace WebCore -
trunk/WebCore/accessibility/mac/AccessibilityObjectWrapper.mm
r47763 r48521 547 547 548 548 m_object->updateBackingStore(); 549 if (!m_object) 550 return nil; 549 551 550 552 static NSArray* actionElementActions = [[NSArray alloc] initWithObjects: NSAccessibilityPressAction, NSAccessibilityShowMenuAction, nil]; … … 574 576 575 577 m_object->updateBackingStore(); 578 if (!m_object) 579 return nil; 576 580 577 581 if (m_object->isAttachment()) … … 1230 1234 1231 1235 m_object->updateBackingStore(); 1236 if (!m_object) 1237 return nil; 1232 1238 1233 1239 if ([attributeName isEqualToString: NSAccessibilityRoleAttribute]) … … 1572 1578 1573 1579 m_object->updateBackingStore(); 1580 if (!m_object) 1581 return nil; 1574 1582 1575 1583 RefPtr<AccessibilityObject> focusedObj = m_object->focusedUIElement(); … … 1587 1595 1588 1596 m_object->updateBackingStore(); 1597 if (!m_object) 1598 return nil; 1589 1599 1590 1600 RefPtr<AccessibilityObject> axObject = m_object->doAccessibilityHitTest(IntPoint(point)); … … 1600 1610 1601 1611 m_object->updateBackingStore(); 1612 if (!m_object) 1613 return nil; 1602 1614 1603 1615 if ([attributeName isEqualToString: @"AXSelectedTextMarkerRange"]) … … 1639 1651 1640 1652 m_object->updateBackingStore(); 1653 if (!m_object) 1654 return nil; 1641 1655 1642 1656 if (m_object->isAttachment()) … … 1651 1665 1652 1666 m_object->updateBackingStore(); 1667 if (!m_object) 1668 return nil; 1653 1669 1654 1670 if (m_object->isAttachment()) … … 1737 1753 1738 1754 m_object->updateBackingStore(); 1755 if (!m_object) 1756 return; 1739 1757 1740 1758 if (m_object->isAttachment()) … … 1750 1768 1751 1769 m_object->updateBackingStore(); 1770 if (!m_object) 1771 return; 1752 1772 1753 1773 if (m_object->isAttachment()) … … 1763 1783 1764 1784 m_object->updateBackingStore(); 1785 if (!m_object) 1786 return; 1765 1787 1766 1788 if (m_object->isAttachment()) … … 1812 1834 1813 1835 m_object->updateBackingStore(); 1836 if (!m_object) 1837 return; 1814 1838 1815 1839 if ([action isEqualToString:NSAccessibilityPressAction]) … … 1832 1856 1833 1857 m_object->updateBackingStore(); 1858 if (!m_object) 1859 return; 1834 1860 1835 1861 WebCoreTextMarkerRange* textMarkerRange = nil; … … 1956 1982 1957 1983 m_object->updateBackingStore(); 1984 if (!m_object) 1985 return nil; 1958 1986 1959 1987 // common parameter type check/casting. Nil checks in handlers catch wrong type case. … … 2214 2242 2215 2243 m_object->updateBackingStore(); 2216 2244 if (!m_object) 2245 return NSNotFound; 2246 2217 2247 const AccessibilityObject::AccessibilityChildrenVector& children = m_object->children(); 2218 2248 … … 2236 2266 2237 2267 m_object->updateBackingStore(); 2268 if (!m_object) 2269 return 0; 2238 2270 2239 2271 if ([attribute isEqualToString:NSAccessibilityChildrenAttribute]) { … … 2254 2286 2255 2287 m_object->updateBackingStore(); 2288 if (!m_object) 2289 return nil; 2256 2290 2257 2291 if ([attribute isEqualToString:NSAccessibilityChildrenAttribute]) {
Note:
See TracChangeset
for help on using the changeset viewer.