Title: [194143] trunk
Revision
194143
Author
[email protected]
Date
2015-12-16 06:53:28 -0800 (Wed, 16 Dec 2015)

Log Message

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):

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (194142 => 194143)


--- trunk/LayoutTests/ChangeLog	2015-12-16 13:30:11 UTC (rev 194142)
+++ trunk/LayoutTests/ChangeLog	2015-12-16 14:53:28 UTC (rev 194143)
@@ -1,3 +1,45 @@
+2015-12-08  Sergio Villar Senin  <[email protected]>
+
+        Fix computation of min|max-content contribution of non-replaced blocks
+        https://bugs.webkit.org/show_bug.cgi?id=152004
+
+        Reviewed by Darin Adler.
+
+        * 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):
+
 2015-12-16  Youenn Fablet  <[email protected]>
 
         Mac EWS bots frequently fail several wpt tests

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/auto-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/auto-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/auto-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -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>
+
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/auto-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/auto-maxcontent-inlinesize-contribution-nonreplaced-blocks.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/auto-maxcontent-inlinesize-contribution-nonreplaced-blocks.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/auto-maxcontent-inlinesize-contribution-nonreplaced-blocks.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -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>
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/auto-maxcontent-inlinesize-contribution-nonreplaced-blocks.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/auto-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/auto-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/auto-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -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>
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/auto-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/auto-mincontent-inlinesize-contribution-nonreplaced-blocks.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/auto-mincontent-inlinesize-contribution-nonreplaced-blocks.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/auto-mincontent-inlinesize-contribution-nonreplaced-blocks.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -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>
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/auto-mincontent-inlinesize-contribution-nonreplaced-blocks.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/fillavailable-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/fillavailable-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/fillavailable-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -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>
+
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/fillavailable-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/fillavailable-maxcontent-inlinesize-contribution-nonreplaced-blocks.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/fillavailable-maxcontent-inlinesize-contribution-nonreplaced-blocks.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/fillavailable-maxcontent-inlinesize-contribution-nonreplaced-blocks.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -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>
+
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/fillavailable-maxcontent-inlinesize-contribution-nonreplaced-blocks.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/fillavailable-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/fillavailable-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/fillavailable-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -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>
+
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/fillavailable-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/fillavailable-mincontent-inlinesize-contribution-nonreplaced-blocks.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/fillavailable-mincontent-inlinesize-contribution-nonreplaced-blocks.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/fillavailable-mincontent-inlinesize-contribution-nonreplaced-blocks.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -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>
+
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/fillavailable-mincontent-inlinesize-contribution-nonreplaced-blocks.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/fitcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/fitcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/fitcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -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>
+
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/fitcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/fitcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/fitcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/fitcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -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 fit-content">XXX XXXXX</div>
+</div>
+
+<div class="container max-content">
+    <div class="item fit-content border">XXX XXXXX</div>
+</div>
+
+<div class="container max-content">
+    <div class="item fit-content padding">XXX XXXXX</div>
+</div>
+
+<div class="container max-content">
+    <div class="item fit-content margin">XXX XXXXX</div>
+</div>
+
+<div class="container max-content">
+    <div class="item fit-content border padding">XXX XXXXX</div>
+</div>
+
+<div class="container max-content">
+    <div class="item fit-content border margin">XXX XXXXX</div>
+</div>
+
+<div class="container max-content">
+    <div class="item fit-content border padding margin">XXX XXXXX</div>
+</div>
+
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/fitcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/fitcontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/fitcontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/fitcontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -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>
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/fitcontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/fitcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/fitcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/fitcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -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 fit-content">XXX XXXXX</div>
+</div>
+
+<div class="container min-content">
+    <div class="item fit-content border">XXX XXXXX</div>
+</div>
+
+<div class="container min-content">
+    <div class="item fit-content padding">XXX XXXXX</div>
+</div>
+
+<div class="container min-content">
+    <div class="item fit-content margin">XXX XXXXX</div>
+</div>
+
+<div class="container min-content">
+    <div class="item fit-content border padding">XXX XXXXX</div>
+</div>
+
+<div class="container min-content">
+    <div class="item fit-content border margin">XXX XXXXX</div>
+</div>
+
+<div class="container min-content">
+    <div class="item fit-content border padding margin">XXX XXXXX</div>
+</div>
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/fitcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-1-expected.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-1-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-1-expected.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+
+<style>
+@import "resources/width-keyword-classes.css";
+@import "resources/intrinsic-size-contribution.css";
+
+.fixed {
+    width: 50px;
+}
+</style>
+
+<div class="container max-content">
+    <div class="item fixed"></div>
+</div>
+
+<div class="container max-content">
+    <div class="item fixed border"></div>
+</div>
+
+<div class="container max-content">
+    <div class="item fixed padding"></div>
+</div>
+
+<div class="container max-content">
+    <div class="item fixed margin"></div>
+</div>
+
+<div class="container max-content">
+    <div class="item fixed border padding"></div>
+</div>
+
+<div class="container max-content">
+    <div class="item fixed border margin"></div>
+</div>
+
+<div class="container max-content">
+    <div class="item fixed border padding margin"></div>
+</div>
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-1-expected.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-1.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-1.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-1.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+
+<style>
+@import "resources/width-keyword-classes.css";
+@import "resources/intrinsic-size-contribution.css";
+
+.fixed {
+    width: 50px;
+}
+</style>
+
+<div class="container min-content">
+    <div class="item fixed"></div>
+</div>
+
+<div class="container min-content">
+    <div class="item fixed border"></div>
+</div>
+
+<div class="container min-content">
+    <div class="item fixed padding"></div>
+</div>
+
+<div class="container min-content">
+    <div class="item fixed margin"></div>
+</div>
+
+<div class="container min-content">
+    <div class="item fixed border padding"></div>
+</div>
+
+<div class="container min-content">
+    <div class="item fixed border margin"></div>
+</div>
+
+<div class="container min-content">
+    <div class="item fixed border padding margin"></div>
+</div>
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-1.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-2-expected.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-2-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-2-expected.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+
+<style>
+@import "resources/width-keyword-classes.css";
+@import "resources/intrinsic-size-contribution.css";
+
+.percent {
+    width: 50%;
+}
+</style>
+
+<div class="container max-content">
+    <div style="width: 50px;">
+        <div class="item percent"></div>
+    </div>
+</div>
+
+<div class="container max-content">
+    <div style="width: 60px;">
+        <div class="item percent border"></div>
+    </div>
+</div>
+
+<div class="container max-content">
+    <div style="width: 70px;">
+        <div class="item percent padding"></div>
+    </div>
+</div>
+
+<div class="container max-content">
+    <div style="width: 90px;">
+        <div class="item percent margin"></div>
+    </div>
+</div>
+
+<div class="container max-content">
+    <div style="width: 80px;">
+        <div class="item percent border padding"></div>
+    </div>
+</div>
+
+<div class="container max-content">
+    <div style="width: 100px;">
+        <div class="item percent border margin"></div>
+    </div>
+</div>
+
+<div class="container max-content">
+    <div style="width: 120px;">
+        <div class="item percent border padding margin"></div>
+    </div>
+</div>
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-2-expected.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-2.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-2.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-2.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -0,0 +1,52 @@
+<!DOCTYPE html>
+
+<style>
+@import "resources/width-keyword-classes.css";
+@import "resources/intrinsic-size-contribution.css";
+
+.percent {
+    width: 50%;
+}
+</style>
+
+<div class="container min-content">
+    <div style="width: 50px;">
+        <div class="item percent"></div>
+    </div>
+</div>
+
+<div class="container min-content">
+    <div style="width: 60px;">
+        <div class="item percent border"></div>
+    </div>
+</div>
+
+<div class="container min-content">
+    <div style="width: 70px;">
+        <div class="item percent padding"></div>
+    </div>
+</div>
+
+<div class="container min-content">
+    <div style="width: 90px;">
+        <div class="item percent margin"></div>
+    </div>
+</div>
+
+<div class="container min-content">
+    <div style="width: 80px;">
+        <div class="item percent border padding"></div>
+    </div>
+</div>
+
+<div class="container min-content">
+    <div style="width: 100px;">
+        <div class="item percent border margin"></div>
+    </div>
+</div>
+
+<div class="container min-content">
+    <div style="width: 120px;">
+        <div class="item percent border padding margin"></div>
+    </div>
+</div>
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/fixed-inlinesize-contribution-nonreplaced-blocks-2.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/indefinite-percent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/indefinite-percent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/indefinite-percent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+
+<style>
+@import "resources/width-keyword-classes.css";
+@import "resources/intrinsic-size-contribution.css";
+
+.item {
+    width: 50%;
+}
+</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>
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/indefinite-percent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/indefinite-percent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/indefinite-percent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/indefinite-percent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+
+<style>
+@import "resources/width-keyword-classes.css";
+@import "resources/intrinsic-size-contribution.css";
+
+.item {
+    width: 50%;
+}
+</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>
+
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/indefinite-percent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/indefinite-percent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/indefinite-percent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/indefinite-percent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+
+<style>
+@import "resources/width-keyword-classes.css";
+@import "resources/intrinsic-size-contribution.css";
+
+.item {
+    width: 50%;
+}
+</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>
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/indefinite-percent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/indefinite-percent-mincontent-inlinesize-contribution-nonreplaced-blocks.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/indefinite-percent-mincontent-inlinesize-contribution-nonreplaced-blocks.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/indefinite-percent-mincontent-inlinesize-contribution-nonreplaced-blocks.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -0,0 +1,38 @@
+<!DOCTYPE html>
+
+<style>
+@import "resources/width-keyword-classes.css";
+@import "resources/intrinsic-size-contribution.css";
+
+.item {
+    width: 50%;
+}
+</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>
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/indefinite-percent-mincontent-inlinesize-contribution-nonreplaced-blocks.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/maxcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/maxcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/maxcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -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: 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>
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/maxcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/maxcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/maxcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/maxcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -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 max-content">XXX XXXXX</div>
+</div>
+
+<div class="container max-content">
+    <div class="item max-content border">XXX XXXXX</div>
+</div>
+
+<div class="container max-content">
+    <div class="item max-content padding">XXX XXXXX</div>
+</div>
+
+<div class="container max-content">
+    <div class="item max-content margin">XXX XXXXX</div>
+</div>
+
+<div class="container max-content">
+    <div class="item max-content border padding">XXX XXXXX</div>
+</div>
+
+<div class="container max-content">
+    <div class="item max-content border margin">XXX XXXXX</div>
+</div>
+
+<div class="container max-content">
+    <div class="item max-content border padding margin">XXX XXXXX</div>
+</div>
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/maxcontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/maxcontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/maxcontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/maxcontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -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: 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>
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/maxcontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/maxcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/maxcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/maxcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -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 max-content">XXX XXXXX</div>
+</div>
+
+<div class="container min-content">
+    <div class="item max-content border">XXX XXXXX</div>
+</div>
+
+<div class="container min-content">
+    <div class="item max-content padding">XXX XXXXX</div>
+</div>
+
+<div class="container min-content">
+    <div class="item max-content margin">XXX XXXXX</div>
+</div>
+
+<div class="container min-content">
+    <div class="item max-content border padding">XXX XXXXX</div>
+</div>
+
+<div class="container min-content">
+    <div class="item max-content border margin">XXX XXXXX</div>
+</div>
+
+<div class="container min-content">
+    <div class="item max-content border padding margin">XXX XXXXX</div>
+</div>
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/maxcontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/mincontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/mincontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/mincontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -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>
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/mincontent-maxcontent-inlinesize-contribution-nonreplaced-blocks-expected.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/mincontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/mincontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/mincontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -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 min-content">XXX XXXXX</div>
+</div>
+
+<div class="container max-content">
+    <div class="item min-content border">XXX XXXXX</div>
+</div>
+
+<div class="container max-content">
+    <div class="item min-content padding">XXX XXXXX</div>
+</div>
+
+<div class="container max-content">
+    <div class="item min-content margin">XXX XXXXX</div>
+</div>
+
+<div class="container max-content">
+    <div class="item min-content border padding">XXX XXXXX</div>
+</div>
+
+<div class="container max-content">
+    <div class="item min-content border margin">XXX XXXXX</div>
+</div>
+
+<div class="container max-content">
+    <div class="item min-content border padding margin">XXX XXXXX</div>
+</div>
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/mincontent-maxcontent-inlinesize-contribution-nonreplaced-blocks.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/mincontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/mincontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/mincontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -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>
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/mincontent-mincontent-inlinesize-contribution-nonreplaced-blocks-expected.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/mincontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/mincontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/mincontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html	2015-12-16 14:53:28 UTC (rev 194143)
@@ -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 min-content">XXX XXXXX</div>
+</div>
+
+<div class="container min-content">
+    <div class="item min-content border">XXX XXXXX</div>
+</div>
+
+<div class="container min-content">
+    <div class="item min-content padding">XXX XXXXX</div>
+</div>
+
+<div class="container min-content">
+    <div class="item min-content margin">XXX XXXXX</div>
+</div>
+
+<div class="container min-content">
+    <div class="item min-content border padding">XXX XXXXX</div>
+</div>
+
+<div class="container min-content">
+    <div class="item min-content border margin">XXX XXXXX</div>
+</div>
+
+<div class="container min-content">
+    <div class="item min-content border padding margin">XXX XXXXX</div>
+</div>
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/mincontent-mincontent-inlinesize-contribution-nonreplaced-blocks.html
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Added: trunk/LayoutTests/fast/css-intrinsic-dimensions/resources/intrinsic-size-contribution.css (0 => 194143)


--- trunk/LayoutTests/fast/css-intrinsic-dimensions/resources/intrinsic-size-contribution.css	                        (rev 0)
+++ trunk/LayoutTests/fast/css-intrinsic-dimensions/resources/intrinsic-size-contribution.css	2015-12-16 14:53:28 UTC (rev 194143)
@@ -0,0 +1,17 @@
+.container {
+    border: 5px solid blue;
+    background-color: gray;
+    margin-top: 10px;
+}
+
+.item {
+    font: 10px/1 Ahem;
+    height: 30px;
+    background-color: orange;
+}
+
+.border { border: 5px solid red; }
+
+.padding { padding: 10px; }
+
+.margin { margin: 20px; }
Property changes on: trunk/LayoutTests/fast/css-intrinsic-dimensions/resources/intrinsic-size-contribution.css
___________________________________________________________________

Added: svn:mime-type

Added: svn:eol-style

Modified: trunk/Source/WebCore/ChangeLog (194142 => 194143)


--- trunk/Source/WebCore/ChangeLog	2015-12-16 13:30:11 UTC (rev 194142)
+++ trunk/Source/WebCore/ChangeLog	2015-12-16 14:53:28 UTC (rev 194143)
@@ -1,3 +1,43 @@
+2015-12-08  Sergio Villar Senin  <[email protected]>
+
+        Fix computation of min|max-content contribution of non-replaced blocks
+        https://bugs.webkit.org/show_bug.cgi?id=152004
+
+        Reviewed by Darin Adler.
+
+        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):
+
 2015-12-16  Youenn Fablet  <[email protected]>
 
         [Fetch API] Add fetch API compile time flag

Modified: trunk/Source/WebCore/rendering/RenderBlock.cpp (194142 => 194143)


--- trunk/Source/WebCore/rendering/RenderBlock.cpp	2015-12-16 13:30:11 UTC (rev 194142)
+++ trunk/Source/WebCore/rendering/RenderBlock.cpp	2015-12-16 14:53:28 UTC (rev 194143)
@@ -2751,8 +2751,27 @@
             childBox.computeLogicalHeight(childBox.borderAndPaddingLogicalHeight(), 0, computedValues);
             childMinPreferredLogicalWidth = childMaxPreferredLogicalWidth = computedValues.m_extent;
         } else {
-            childMinPreferredLogicalWidth = child->minPreferredLogicalWidth();
-            childMaxPreferredLogicalWidth = child->maxPreferredLogicalWidth();
+            if (is<RenderBlock>(*child) && !is<RenderTable>(*child)) {
+                const Length& computedInlineSize = child->style().logicalWidth();
+                if (computedInlineSize.isFitContent() || computedInlineSize.isFillAvailable() || computedInlineSize.isAuto()
+                    || computedInlineSize.isPercentOrCalculated()) {
+                    // FIXME: we could do a lot better for percents (we're considering them always indefinite)
+                    // but we need https://bugs.webkit.org/show_bug.cgi?id=152262 to be fixed first
+                    childMinPreferredLogicalWidth = child->minPreferredLogicalWidth();
+                    childMaxPreferredLogicalWidth = child->maxPreferredLogicalWidth();
+                } else {
+                    ASSERT(computedInlineSize.isMinContent() || computedInlineSize.isMaxContent() || computedInlineSize.isFixed());
+                    LogicalExtentComputedValues computedValues;
+                    downcast<RenderBlock>(*child).computeLogicalWidthInRegion(computedValues);
+                    childMinPreferredLogicalWidth = childMaxPreferredLogicalWidth = computedValues.m_extent;
+                    child->setPreferredLogicalWidthsDirty(false);
+                }
+            } else {
+                // FIXME: we leave the original implementation as default fallback. Still need to specialcase
+                // some other situations: https://drafts.csswg.org/css-sizing/#intrinsic
+                childMinPreferredLogicalWidth = child->minPreferredLogicalWidth();
+                childMaxPreferredLogicalWidth = child->maxPreferredLogicalWidth();
+            }
         }
 
         LayoutUnit w = childMinPreferredLogicalWidth + margin;
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to