Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Browse files
Fix computation of min|max-content contribution of non-replaced blocks
https://bugs.webkit.org/show_bug.cgi?id=152004 Reviewed by Darin Adler. Source/WebCore: WebKit currently always returns the min preferred logical width for the min-content contribution (and the max preferred logical width for the max-content contribution) for non-replaced blocks. That is not correct according to specs https://drafts.csswg.org/css-sizing/#block-intrinsic. The min-content and max-content contributions actually depend on the computed inline size of the block: * for min-content,max-content or definite sizes: min-content and max-content contributions are the inline size plus border, margin and padding. * otherwise: min-content contribution is the min-content size and max-content contribution is the max-content size (in both cases plus border, padding and margin). Tests: fast/css-intrinsic-dimensions/auto-maxcontent-inlinesize-contribution-nonreplaced-blocks.html fast/css-intrinsic-dimensions/auto-mincontent-inlinesize-contribution-nonreplaced-blocks.html fast/css-intrinsic-dimensions/fillavailable-maxcontent-inlinesize-contribution-nonreplaced-blocks.html fast/css-intrinsic-dimensions/fillavailable-mincontent-inlinesize-contribution-nonreplaced-blocks.html fast/css-intrinsic-dimensions/fitcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html fast/css-intrinsic-dimensions/fitcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-1.html fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-2.html fast/css-intrinsic-dimensions/indefinite-percent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html fast/css-intrinsic-dimensions/indefinite-percent-mincontent-inlinesize-contribution-nonreplaced-blocks.html fast/css-intrinsic-dimensions/maxcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html fast/css-intrinsic-dimensions/maxcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html fast/css-intrinsic-dimensions/mincontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html fast/css-intrinsic-dimensions/mincontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html * rendering/RenderBlock.cpp: (WebCore::RenderBlock::computeBlockPreferredLogicalWidths): LayoutTests: * fast/css-intrinsic-dimensions/auto-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added. * fast/css-intrinsic-dimensions/auto-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added. * fast/css-intrinsic-dimensions/auto-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added. * fast/css-intrinsic-dimensions/auto-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added. * fast/css-intrinsic-dimensions/fillavailable-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added. * fast/css-intrinsic-dimensions/fillavailable-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added. * fast/css-intrinsic-dimensions/fillavailable-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added. * fast/css-intrinsic-dimensions/fillavailable-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added. * fast/css-intrinsic-dimensions/fitcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added. * fast/css-intrinsic-dimensions/fitcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added. * fast/css-intrinsic-dimensions/fitcontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added. * fast/css-intrinsic-dimensions/fitcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added. * fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-1-expected.html: Added. * fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-1.html: Added. * fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-2-expected.html: Added. * fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-2.html: Added. * fast/css-intrinsic-dimensions/indefinite-percent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added. * fast/css-intrinsic-dimensions/indefinite-percent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added. * fast/css-intrinsic-dimensions/indefinite-percent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added. * fast/css-intrinsic-dimensions/indefinite-percent-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added. * fast/css-intrinsic-dimensions/maxcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added. * fast/css-intrinsic-dimensions/maxcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added. * fast/css-intrinsic-dimensions/maxcontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added. * fast/css-intrinsic-dimensions/maxcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added. * fast/css-intrinsic-dimensions/mincontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added. * fast/css-intrinsic-dimensions/mincontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html: Added. * fast/css-intrinsic-dimensions/mincontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html: Added. * fast/css-intrinsic-dimensions/mincontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html: Added. * fast/css-intrinsic-dimensions/resources/intrinsic-size-contribution.css: Added. (.container): (.item): (.border): (.padding): (.margin): Canonical link: https://commits.webkit.org/170447@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@194143 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- Loading branch information
Showing
with
1,139 additions
and 2 deletions.
- +42 −0 LayoutTests/ChangeLog
- +35 −0 ...css-intrinsic-dimensions/auto-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html
- +34 −0 ...sts/fast/css-intrinsic-dimensions/auto-maxcontent-inlinesize-contribution-nonreplaced-blocks.html
- +34 −0 ...css-intrinsic-dimensions/auto-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html
- +34 −0 ...sts/fast/css-intrinsic-dimensions/auto-mincontent-inlinesize-contribution-nonreplaced-blocks.html
- +35 −0 ...nsic-dimensions/fillavailable-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html
- +35 −0 ...css-intrinsic-dimensions/fillavailable-maxcontent-inlinesize-contribution-nonreplaced-blocks.html
- +35 −0 ...nsic-dimensions/fillavailable-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html
- +35 −0 ...css-intrinsic-dimensions/fillavailable-mincontent-inlinesize-contribution-nonreplaced-blocks.html
- +35 −0 ...trinsic-dimensions/fitcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html
- +35 −0 ...st/css-intrinsic-dimensions/fitcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html
- +34 −0 ...trinsic-dimensions/fitcontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html
- +34 −0 ...st/css-intrinsic-dimensions/fitcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html
- +38 −0 ...ts/fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-1-expected.html
- +38 −0 LayoutTests/fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-1.html
- +52 −0 ...ts/fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-2-expected.html
- +52 −0 LayoutTests/fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-2.html
- +38 −0 ...dimensions/indefinite-percent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html
- +38 −0 ...ntrinsic-dimensions/indefinite-percent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html
- +38 −0 ...dimensions/indefinite-percent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html
- +38 −0 ...ntrinsic-dimensions/indefinite-percent-mincontent-inlinesize-contribution-nonreplaced-blocks.html
- +34 −0 ...trinsic-dimensions/maxcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html
- +34 −0 ...st/css-intrinsic-dimensions/maxcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html
- +34 −0 ...trinsic-dimensions/maxcontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html
- +34 −0 ...st/css-intrinsic-dimensions/maxcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html
- +34 −0 ...trinsic-dimensions/mincontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html
- +34 −0 ...st/css-intrinsic-dimensions/mincontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html
- +34 −0 ...trinsic-dimensions/mincontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html
- +34 −0 ...st/css-intrinsic-dimensions/mincontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html
- +17 −0 LayoutTests/fast/css-intrinsic-dimensions/resources/intrinsic-size-contribution.css
- +40 −0 Source/WebCore/ChangeLog
- +21 −2 Source/WebCore/rendering/RenderBlock.cpp
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@@ -0,0 +1,35 @@ | ||
<!DOCTYPE html> | ||
|
||
<style> | ||
@import "resources/width-keyword-classes.css"; | ||
@import "resources/intrinsic-size-contribution.css"; | ||
</style> | ||
|
||
<div class="container" style="width: 90px;"> | ||
<div class="item">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 100px;"> | ||
<div class="item border">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 110px;"> | ||
<div class="item padding">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 130px;"> | ||
<div class="item margin">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 120px;"> | ||
<div class="item border padding">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 140px;"> | ||
<div class="item border margin">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 160px;"> | ||
<div class="item border padding margin">XXX XXXXX</div> | ||
</div> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@@ -0,0 +1,34 @@ | ||
<!DOCTYPE html> | ||
|
||
<style> | ||
@import "resources/width-keyword-classes.css"; | ||
@import "resources/intrinsic-size-contribution.css"; | ||
</style> | ||
|
||
<div class="container max-content"> | ||
<div class="item">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container max-content"> | ||
<div class="item border">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container max-content"> | ||
<div class="item padding">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container max-content"> | ||
<div class="item margin">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container max-content"> | ||
<div class="item border padding">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container max-content"> | ||
<div class="item border margin">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container max-content"> | ||
<div class="item border padding margin">XXX XXXXX</div> | ||
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@@ -0,0 +1,34 @@ | ||
<!DOCTYPE html> | ||
|
||
<style> | ||
@import "resources/width-keyword-classes.css"; | ||
@import "resources/intrinsic-size-contribution.css"; | ||
</style> | ||
|
||
<div class="container" style="width: 50px;"> | ||
<div class="item">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 60px;"> | ||
<div class="item border">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 70px;"> | ||
<div class="item padding">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 90px;"> | ||
<div class="item margin">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 80px;"> | ||
<div class="item border padding">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 100px;"> | ||
<div class="item border margin">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 120px;"> | ||
<div class="item border padding margin">XXX XXXXX</div> | ||
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@@ -0,0 +1,34 @@ | ||
<!DOCTYPE html> | ||
|
||
<style> | ||
@import "resources/width-keyword-classes.css"; | ||
@import "resources/intrinsic-size-contribution.css"; | ||
</style> | ||
|
||
<div class="container min-content"> | ||
<div class="item">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container min-content"> | ||
<div class="item border">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container min-content"> | ||
<div class="item padding">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container min-content"> | ||
<div class="item margin">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container min-content"> | ||
<div class="item border padding">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container min-content"> | ||
<div class="item border margin">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container min-content"> | ||
<div class="item border padding margin">XXX XXXXX</div> | ||
</div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@@ -0,0 +1,35 @@ | ||
<!DOCTYPE html> | ||
|
||
<style> | ||
@import "resources/width-keyword-classes.css"; | ||
@import "resources/intrinsic-size-contribution.css"; | ||
</style> | ||
|
||
<div class="container" style="width: 90px;"> | ||
<div class="item">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 100px;"> | ||
<div class="item border">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 110px;"> | ||
<div class="item padding">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 130px;"> | ||
<div class="item margin">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 120px;"> | ||
<div class="item border padding">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 140px;"> | ||
<div class="item border margin">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 160px;"> | ||
<div class="item border padding margin">XXX XXXXX</div> | ||
</div> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@@ -0,0 +1,35 @@ | ||
<!DOCTYPE html> | ||
|
||
<style> | ||
@import "resources/width-keyword-classes.css"; | ||
@import "resources/intrinsic-size-contribution.css"; | ||
</style> | ||
|
||
<div class="container max-content"> | ||
<div class="item fill-available">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container max-content"> | ||
<div class="item fill-available border">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container max-content"> | ||
<div class="item fill-available padding">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container max-content"> | ||
<div class="item fill-available margin">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container max-content"> | ||
<div class="item fill-available border padding">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container max-content"> | ||
<div class="item fill-available border margin">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container max-content"> | ||
<div class="item fill-available border padding margin">XXX XXXXX</div> | ||
</div> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@@ -0,0 +1,35 @@ | ||
<!DOCTYPE html> | ||
|
||
<style> | ||
@import "resources/width-keyword-classes.css"; | ||
@import "resources/intrinsic-size-contribution.css"; | ||
</style> | ||
|
||
<div class="container" style="width: 50px;"> | ||
<div class="item">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 60px;"> | ||
<div class="item border">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 70px;"> | ||
<div class="item padding">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 90px;"> | ||
<div class="item margin">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 80px;"> | ||
<div class="item border padding">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 100px;"> | ||
<div class="item border margin">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 120px;"> | ||
<div class="item border padding margin">XXX XXXXX</div> | ||
</div> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@@ -0,0 +1,35 @@ | ||
<!DOCTYPE html> | ||
|
||
<style> | ||
@import "resources/width-keyword-classes.css"; | ||
@import "resources/intrinsic-size-contribution.css"; | ||
</style> | ||
|
||
<div class="container min-content"> | ||
<div class="item fill-available">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container min-content"> | ||
<div class="item fill-available border">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container min-content"> | ||
<div class="item fill-available padding">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container min-content"> | ||
<div class="item fill-available margin">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container min-content"> | ||
<div class="item fill-available border padding">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container min-content"> | ||
<div class="item fill-available border margin">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container min-content"> | ||
<div class="item fill-available border padding margin">XXX XXXXX</div> | ||
</div> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
@@ -0,0 +1,35 @@ | ||
<!DOCTYPE html> | ||
|
||
<style> | ||
@import "resources/width-keyword-classes.css"; | ||
@import "resources/intrinsic-size-contribution.css"; | ||
</style> | ||
|
||
<div class="container" style="width: 90px;"> | ||
<div class="item">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 100px;"> | ||
<div class="item border">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 110px;"> | ||
<div class="item padding">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 130px;"> | ||
<div class="item margin">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 120px;"> | ||
<div class="item border padding">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 140px;"> | ||
<div class="item border margin">XXX XXXXX</div> | ||
</div> | ||
|
||
<div class="container" style="width: 160px;"> | ||
<div class="item border padding margin">XXX XXXXX</div> | ||
</div> | ||
|
Oops, something went wrong.