Changeset 245454 in webkit
- Timestamp:
- May 17, 2019, 4:25:20 AM (7 years ago)
- Location:
- releases/WebKitGTK/webkit-2.24
- Files:
-
- 2 added
- 4 edited
-
LayoutTests/ChangeLog (modified) (1 diff)
-
LayoutTests/fast/block/float/float-with-shape-outside-crash-expected.txt (added)
-
LayoutTests/fast/block/float/float-with-shape-outside-crash.html (added)
-
Source/WebCore/ChangeLog (modified) (1 diff)
-
Source/WebCore/rendering/FloatingObjects.cpp (modified) (2 diffs)
-
Source/WebCore/rendering/shapes/ShapeOutsideInfo.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
releases/WebKitGTK/webkit-2.24/LayoutTests/ChangeLog
r245453 r245454 1 2019-05-15 Zalan Bujtas <zalan@apple.com> 2 3 Do not create a shape object outside of the layout context 4 https://bugs.webkit.org/show_bug.cgi?id=197926 5 <rdar://problem/50627858> 6 7 Reviewed by Simon Fraser. 8 9 * fast/block/float/float-with-shape-outside-crash-expected.txt: Added. 10 * fast/block/float/float-with-shape-outside-crash.html: Added. 11 1 12 2019-05-14 Zalan Bujtas <zalan@apple.com> 2 13 -
releases/WebKitGTK/webkit-2.24/Source/WebCore/ChangeLog
r245453 r245454 1 2019-05-15 Zalan Bujtas <zalan@apple.com> 2 3 Do not create a shape object outside of the layout context 4 https://bugs.webkit.org/show_bug.cgi?id=197926 5 <rdar://problem/50627858> 6 7 Reviewed by Simon Fraser. 8 9 ShapeOutside objects are used to compute line constrains during layout (in a strict sense, they are part of the layout context and should only be mutated during layout). 10 If we don't create one during layout, we probably don't need to know its geometry during paint (or any other non-layout activity) either. 11 12 Test: fast/block/float/float-with-shape-outside-crash.html 13 14 * rendering/FloatingObjects.cpp: 15 (WebCore::ComputeFloatOffsetForLineLayoutAdapter<FloatingObject::FloatLeft>::updateOffsetIfNeeded): 16 (WebCore::ComputeFloatOffsetForLineLayoutAdapter<FloatingObject::FloatRight>::updateOffsetIfNeeded): 17 * rendering/shapes/ShapeOutsideInfo.cpp: 18 (WebCore::ShapeOutsideInfo::computeDeltasForContainingBlockLine): 19 1 20 2019-05-14 Zalan Bujtas <zalan@apple.com> 2 21 -
releases/WebKitGTK/webkit-2.24/Source/WebCore/rendering/FloatingObjects.cpp
r241799 r245454 480 480 if (ShapeOutsideInfo* shapeOutside = floatingObject.renderer().shapeOutsideInfo()) { 481 481 ShapeOutsideDeltas shapeDeltas = shapeOutside->computeDeltasForContainingBlockLine(*m_renderer, floatingObject, m_lineTop, m_lineBottom - m_lineTop); 482 if (!shapeDeltas. lineOverlapsShape())482 if (!shapeDeltas.isValid() || !shapeDeltas.lineOverlapsShape()) 483 483 return false; 484 484 … … 499 499 if (ShapeOutsideInfo* shapeOutside = floatingObject.renderer().shapeOutsideInfo()) { 500 500 ShapeOutsideDeltas shapeDeltas = shapeOutside->computeDeltasForContainingBlockLine(*m_renderer, floatingObject, m_lineTop, m_lineBottom - m_lineTop); 501 if (!shapeDeltas. lineOverlapsShape())501 if (!shapeDeltas.isValid() || !shapeDeltas.lineOverlapsShape()) 502 502 return false; 503 503 -
releases/WebKitGTK/webkit-2.24/Source/WebCore/rendering/shapes/ShapeOutsideInfo.cpp
r238463 r245454 39 39 #include "RenderFragmentContainer.h" 40 40 #include "RenderImage.h" 41 #include "RenderView.h" 41 42 42 43 namespace WebCore { … … 321 322 ShapeOutsideDeltas ShapeOutsideInfo::computeDeltasForContainingBlockLine(const RenderBlockFlow& containingBlock, const FloatingObject& floatingObject, LayoutUnit lineTop, LayoutUnit lineHeight) 322 323 { 324 // If we never constructed this shape during layout, we propably don't need to know about it outside of layout in the context of "containing block line". 325 if (!m_shape && !containingBlock.view().frameView().layoutContext().isInLayout()) 326 return { }; 327 323 328 ASSERT(lineHeight >= 0); 324 329 LayoutUnit borderBoxTop = containingBlock.logicalTopForFloat(floatingObject) + containingBlock.marginBeforeForChild(m_renderer);
Note:
See TracChangeset
for help on using the changeset viewer.