Description[CSS Shapes] Dynamically created element with image valued shape-outside doesn't update
Corrected the way shape-outside handles the completion of an image load. Move the shape-outside imageChanged() logic from RenderBlock to RenderBox and call markShapeOutsideDependentsForLayout() instead of parent()->setNeedsLayoutAndPrefWidthsRecalc(). The latter did not deal with descendants of the shape element's siblings correctly and it failed when the shape element was inserted dynamically. The markShapeOutsideDependentsForLayout() method can't be called during layout, so the imageChanged() code checks for that. The only scenario where imageChanged() can be called during layout (that I've discovered so far anyway) is when an SVG Image is rendered with drawImage(). The Shape::createRasterShape() does, and the corresponding imageChanged() notification can be safely ignored.
BUG=339136
Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=167124
Patch Set 1 #
Total comments: 1
Patch Set 2 : Removed unnecessary frameView() check #
Messages
Total messages: 7 (0 generated)
|