This is the second half of bug 108128, which covers the case of adding a shape-inside dynamically. Removing a shape-inside requires bug 110995 to land, because it will require keeping the ExclusionShapeInsideInfo around for one more layout after the shape inside style has been removed.
Created attachment 193335 [details] Testcase Adding test case. Text lays out based on the old shape-inside even after it has been removed.
Created attachment 194659 [details] Patch
Attachment 194659 [details] did not pass style-queue: Failed to run "['Tools/Scripts/check-webkit-style', '--diff-files', u'LayoutTests/ChangeLog', u'LayoutTests/fast/exclusions/shape-inside/shape-inside-dynamic-nested-expected.html', u'LayoutTests/fast/exclusions/shape-inside/shape-inside-dynamic-nested.html', u'Source/WebCore/ChangeLog', u'Source/WebCore/rendering/ExclusionShapeInsideInfo.h', u'Source/WebCore/rendering/LayoutState.cpp', u'Source/WebCore/rendering/RenderBlock.cpp', u'Source/WebCore/rendering/RenderBlock.h', u'Source/WebCore/rendering/RenderBlockLineLayout.cpp', u'Source/WebCore/rendering/RenderDeprecatedFlexibleBox.cpp', u'Source/WebCore/rendering/RenderFlexibleBox.cpp', u'Source/WebCore/rendering/RenderGrid.cpp']" exit_code: 1 Source/WebCore/ChangeLog:17: Need whitespace between colon and description [changelog/filechangedescriptionwhitespace] [5] Total errors found: 1 in 12 files If any of these errors are false positives, please file a bug against check-webkit-style.
Created attachment 194661 [details] Patch
Comment on attachment 194661 [details] Patch View in context: https://bugs.webkit.org/attachment.cgi?id=194661&action=review Patch looks fine. I'd just prefer enums instead of boolean arguments, since it makes the call sites clearer. > Source/WebCore/rendering/RenderBlock.cpp:1421 > + info = block->layoutExclusionShapeInsideInfo(true); Use an enum here. Nobody is going to know what "true" means. > Source/WebCore/rendering/RenderBlock.h:455 > + ExclusionShapeInsideInfo* exclusionShapeInsideInfo(bool includeRemoved = false) const enum. > Source/WebCore/rendering/RenderBlock.h:467 > + ExclusionShapeInsideInfo* layoutExclusionShapeInsideInfo(bool includeRemoved = false) const; enum. > Source/WebCore/rendering/RenderBlockLineLayout.cpp:80 > +ExclusionShapeInsideInfo* RenderBlock::layoutExclusionShapeInsideInfo(bool includeRemoved) const enum.
Created attachment 195432 [details] Changing bool to enum
Created attachment 195766 [details] Updating to trunk
Comment on attachment 195766 [details] Updating to trunk r=me
Comment on attachment 195766 [details] Updating to trunk Setting CQ.
Comment on attachment 195766 [details] Updating to trunk Rejecting attachment 195766 [details] from commit-queue. Failed to run "['/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch', '--status-host=webkit-commit-queue.appspot.com', '--bot-id=gce-cq-01', 'build', '--no-clean', '--no-update', '--build-style=release', '--port=chromium-xvfb']" exit_code: 2 cwd: /mnt/git/webkit-commit-queue Last 500 characters of output: onShapeInsideInfo.h:105: error: 'bool WebCore::ExclusionShapeInsideInfo::needsRemoval()' is protected ../../Source/WebCore/rendering/RenderBlock.cpp:1475: error: within this context ninja: build stopped: subcommand failed. Failed to run "['Tools/Scripts/build-webkit', '--release', '--chromium', '--update-chromium']" exit_code: 1 nShapeInsideInfo::needsRemoval()' is protected ../../Source/WebCore/rendering/RenderBlock.cpp:1475: error: within this context ninja: build stopped: subcommand failed. Full output: http://webkit-commit-queue.appspot.com/results/17473153
Created attachment 196542 [details] Updated Patch Previous patch no longer applied cleanly.
Created attachment 196543 [details] Fixing MIME type
Comment on attachment 196543 [details] Fixing MIME type Clearing flags on attachment: 196543 Committed r147758: <http://trac.webkit.org/changeset/147758>
All reviewed patches have been landed. Closing bug.