Bug 111029 - [css exclusions] Dynamically removing shape-inside should cause relayout of child blocks' inline content
Summary: [css exclusions] Dynamically removing shape-inside should cause relayout of c...
Status: RESOLVED FIXED
Alias: None
Product: WebKit
Classification: Unclassified
Component: CSS (show other bugs)
Version: 528+ (Nightly build)
Hardware: Unspecified Unspecified
: P2 Normal
Assignee: Bear Travis
URL:
Keywords:
Depends on: 108128 110995
Blocks: 89256 116236
  Show dependency treegraph
 
Reported: 2013-02-27 18:42 PST by Bear Travis
Modified: 2013-05-16 11:24 PDT (History)
6 users (show)

See Also:


Attachments
Testcase (509 bytes, text/html)
2013-03-15 10:39 PDT, Bear Travis
no flags Details
Patch (21.09 KB, patch)
2013-03-22 17:04 PDT, Bear Travis
no flags Details | Formatted Diff | Diff
Patch (21.09 KB, patch)
2013-03-22 17:14 PDT, Bear Travis
no flags Details | Formatted Diff | Diff
Changing bool to enum (21.38 KB, patch)
2013-03-27 16:37 PDT, Bear Travis
no flags Details | Formatted Diff | Diff
Updating to trunk (21.44 KB, patch)
2013-03-29 11:06 PDT, Bear Travis
hyatt: review+
webkit.review.bot: commit-queue-
Details | Formatted Diff | Diff
Updated Patch (20.72 KB, application/octet-stream)
2013-04-04 15:37 PDT, Bear Travis
no flags Details
Fixing MIME type (20.72 KB, patch)
2013-04-04 15:37 PDT, Bear Travis
no flags Details | Formatted Diff | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Bear Travis 2013-02-27 18:42:13 PST
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.
Comment 1 Bear Travis 2013-03-15 10:39:10 PDT
Created attachment 193335 [details]
Testcase

Adding test case. Text lays out based on the old shape-inside even after it has been removed.
Comment 2 Bear Travis 2013-03-22 17:04:41 PDT
Created attachment 194659 [details]
Patch
Comment 3 WebKit Review Bot 2013-03-22 17:08:23 PDT
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.
Comment 4 Bear Travis 2013-03-22 17:14:00 PDT
Created attachment 194661 [details]
Patch
Comment 5 Dave Hyatt 2013-03-27 13:31:12 PDT
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.
Comment 6 Bear Travis 2013-03-27 16:37:56 PDT
Created attachment 195432 [details]
Changing bool to enum
Comment 7 Bear Travis 2013-03-29 11:06:44 PDT
Created attachment 195766 [details]
Updating to trunk
Comment 8 Dave Hyatt 2013-04-01 11:58:06 PDT
Comment on attachment 195766 [details]
Updating to trunk

r=me
Comment 9 Bear Travis 2013-04-04 14:42:36 PDT
Comment on attachment 195766 [details]
Updating to trunk

Setting CQ.
Comment 10 WebKit Review Bot 2013-04-04 14:50:57 PDT
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
Comment 11 Bear Travis 2013-04-04 15:37:07 PDT
Created attachment 196542 [details]
Updated Patch

Previous patch no longer applied cleanly.
Comment 12 Bear Travis 2013-04-04 15:37:59 PDT
Created attachment 196543 [details]
Fixing MIME type
Comment 13 WebKit Commit Bot 2013-04-05 10:28:50 PDT
Comment on attachment 196543 [details]
Fixing MIME type

Clearing flags on attachment: 196543

Committed r147758: <http://trac.webkit.org/changeset/147758>
Comment 14 WebKit Commit Bot 2013-04-05 10:28:53 PDT
All reviewed patches have been landed.  Closing bug.