Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Issue 131133004: [CSS Shapes] Dynamically created element with image valued shape-outside doesn't update (Closed)

Created:
6 years, 10 months ago by Hans Muller
Modified:
6 years, 10 months ago
Reviewers:
eseidel
CC:
blink-reviews, bemjb+rendering_chromium.org, dsinclair, zoltan1, eae+blinkwatch, leviw+renderwatch, jchaffraix+rendering, leviw_travelin_and_unemployed
Base URL:
https://chromium.googlesource.com/chromium/blink.git@master
Visibility:
Public.

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 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+53 lines, -5 lines) Patch
A LayoutTests/fast/shapes/shape-outside-floats/shape-outside-insert-svg-shape.html View 1 chunk +31 lines, -0 lines 0 comments Download
A LayoutTests/fast/shapes/shape-outside-floats/shape-outside-insert-svg-shape-expected.html View 1 chunk +16 lines, -0 lines 0 comments Download
M Source/core/rendering/RenderBlock.cpp View 1 chunk +0 lines, -4 lines 0 comments Download
M Source/core/rendering/RenderBox.cpp View 1 1 chunk +6 lines, -1 line 0 comments Download

Messages

Total messages: 7 (0 generated)
Hans Muller
This patch improves long-standing flakiness in the way shape-outside responds to the completion of an ...
6 years, 10 months ago (2014-02-04 16:52:32 UTC) #1
eseidel
https://codereview.chromium.org/131133004/diff/1/Source/core/rendering/RenderBox.cpp File Source/core/rendering/RenderBox.cpp (right): https://codereview.chromium.org/131133004/diff/1/Source/core/rendering/RenderBox.cpp#newcode1634 Source/core/rendering/RenderBox.cpp:1634: if (!(frameView() && frameView()->isInPerformLayout()) && isFloating() && shapeOutsideValue && ...
6 years, 10 months ago (2014-02-04 17:40:47 UTC) #2
Hans Muller
On 2014/02/04 17:40:47, eseidel wrote: > https://codereview.chromium.org/131133004/diff/1/Source/core/rendering/RenderBox.cpp > File Source/core/rendering/RenderBox.cpp (right): > > https://codereview.chromium.org/131133004/diff/1/Source/core/rendering/RenderBox.cpp#newcode1634 > ...
6 years, 10 months ago (2014-02-04 18:02:49 UTC) #3
Hans Muller
I've removed the unnecessary frameView() check.
6 years, 10 months ago (2014-02-04 18:37:16 UTC) #4
eseidel
lgtm OK.
6 years, 10 months ago (2014-02-13 20:34:14 UTC) #5
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/hmuller@adobe.com/131133004/60001
6 years, 10 months ago (2014-02-13 20:34:29 UTC) #6
commit-bot: I haz the power
6 years, 10 months ago (2014-02-13 23:53:49 UTC) #7
Message was sent while issue was closed.
Change committed as 167124

Powered by Google App Engine
This is Rietveld 408576698