Diff
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2018-04-20 20:06:53 UTC (rev 230848)
@@ -1,3 +1,54 @@
+2018-04-20 Javier Fernandez <jfernan...@igalia.com>
+
+ Update Alignment shorthands to the spec now that they are not ambiguous
+ https://bugs.webkit.org/show_bug.cgi?id=184812
+
+ Reviewed by Antti Koivisto.
+
+ Imported new Web Platform Tests from the css-align test suite.
+ Additionally, updated the ones we already have to verify the new shorthand syntax is correct.
+
+ * resources/import-expectations.json:
+ * web-platform-tests/css/css-align/OWNERS: Added.
+ * web-platform-tests/css/css-align/content-distribution/place-content-shorthand-001.html:
+ * web-platform-tests/css/css-align/content-distribution/place-content-shorthand-002.html:
+ * web-platform-tests/css/css-align/content-distribution/place-content-shorthand-004-expected.txt:
+ * web-platform-tests/css/css-align/content-distribution/place-content-shorthand-004.html:
+ * web-platform-tests/css/css-align/default-alignment/parse-justify-items-001.html:
+ * web-platform-tests/css/css-align/default-alignment/parse-justify-items-003.html:
+ * web-platform-tests/css/css-align/default-alignment/place-items-shorthand-001.html:
+ * web-platform-tests/css/css-align/default-alignment/place-items-shorthand-002.html:
+ * web-platform-tests/css/css-align/default-alignment/place-items-shorthand-004-expected.txt:
+ * web-platform-tests/css/css-align/default-alignment/place-items-shorthand-004.html:
+ * web-platform-tests/css/css-align/default-alignment/shorthand-serialization-001-expected.txt: Added.
+ * web-platform-tests/css/css-align/default-alignment/shorthand-serialization-001.html: Added.
+ * web-platform-tests/css/css-align/default-alignment/w3c-import.log:
+ * web-platform-tests/css/css-align/gaps/column-gap-parsing-001-expected.txt:
+ * web-platform-tests/css/css-align/gaps/column-gap-parsing-001.html:
+ * web-platform-tests/css/css-align/gaps/gap-normal-computed-001-expected.txt: Added.
+ * web-platform-tests/css/css-align/gaps/gap-normal-computed-001.html: Added.
+ * web-platform-tests/css/css-align/gaps/gap-normal-used-001-expected.xht: Added.
+ * web-platform-tests/css/css-align/gaps/gap-normal-used-001.html: Added.
+ * web-platform-tests/css/css-align/gaps/gap-normal-used-002-expected.xht: Added.
+ * web-platform-tests/css/css-align/gaps/gap-normal-used-002.html: Added.
+ * web-platform-tests/css/css-align/gaps/gap-parsing-001-expected.txt:
+ * web-platform-tests/css/css-align/gaps/gap-parsing-001.html:
+ * web-platform-tests/css/css-align/gaps/grid-column-gap-parsing-001-expected.txt:
+ * web-platform-tests/css/css-align/gaps/grid-column-gap-parsing-001.html:
+ * web-platform-tests/css/css-align/gaps/grid-gap-parsing-001-expected.txt:
+ * web-platform-tests/css/css-align/gaps/grid-gap-parsing-001.html:
+ * web-platform-tests/css/css-align/gaps/grid-row-gap-parsing-001-expected.txt:
+ * web-platform-tests/css/css-align/gaps/grid-row-gap-parsing-001.html:
+ * web-platform-tests/css/css-align/gaps/row-gap-parsing-001-expected.txt:
+ * web-platform-tests/css/css-align/gaps/row-gap-parsing-001.html:
+ * web-platform-tests/css/css-align/gaps/w3c-import.log:
+ * web-platform-tests/css/css-align/resources/alignment-parsing-utils.js:
+ * web-platform-tests/css/css-align/self-alignment/place-self-shorthand-001.html:
+ * web-platform-tests/css/css-align/self-alignment/place-self-shorthand-002.html:
+ * web-platform-tests/css/css-align/self-alignment/place-self-shorthand-004-expected.txt:
+ * web-platform-tests/css/css-align/self-alignment/place-self-shorthand-004.html:
+ * web-platform-tests/css/css-align/w3c-import.log: Added.
+
2018-04-18 Youenn Fablet <you...@apple.com>
Allow cross-origin redirections for synchronous XHR
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/OWNERS (0 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/OWNERS (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/OWNERS 2018-04-20 20:06:53 UTC (rev 230848)
@@ -0,0 +1,2 @@
+@dholbert
+@emilio
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-001-expected.txt (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-001-expected.txt 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-001-expected.txt 2018-04-20 20:06:53 UTC (rev 230848)
@@ -9,4 +9,9 @@
PASS Checking place-content: space-around
PASS Checking place-content: space-between
PASS Checking place-content: space-evenly
+PASS Checking place-content: safe flex-end
+PASS Checking place-content: unsafe end
+PASS Checking place-content: safe end
+PASS Checking place-content: unsafe flex-start
+PASS Checking place-content: safe center
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-001.html (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-001.html 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-001.html 2018-04-20 20:06:53 UTC (rev 230848)
@@ -8,7 +8,7 @@
<script src=""
<div id="log"></div>
<script>
- let classes = Object.assign({"Normal":"normal"}, contentPositionClasses, distributionClasses);
+ let classes = Object.assign({"Normal":"normal"}, contentPositionClasses, distributionClasses, overflowClasses);
for (var key in classes) {
let value = classes[key];
test(function() {
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-002-expected.txt (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-002-expected.txt 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-002-expected.txt 2018-04-20 20:06:53 UTC (rev 230848)
@@ -155,4 +155,64 @@
PASS Checking place-content: last baseline space-around
PASS Checking place-content: last baseline space-between
PASS Checking place-content: last baseline space-evenly
+PASS Checking place-content: safe flex-end normal
+PASS Checking place-content: safe flex-end left
+PASS Checking place-content: safe flex-end right
+PASS Checking place-content: safe flex-end start
+PASS Checking place-content: safe flex-end end
+PASS Checking place-content: safe flex-end center
+PASS Checking place-content: safe flex-end flex-start
+PASS Checking place-content: safe flex-end flex-end
+PASS Checking place-content: safe flex-end stretch
+PASS Checking place-content: safe flex-end space-around
+PASS Checking place-content: safe flex-end space-between
+PASS Checking place-content: safe flex-end space-evenly
+PASS Checking place-content: unsafe end normal
+PASS Checking place-content: unsafe end left
+PASS Checking place-content: unsafe end right
+PASS Checking place-content: unsafe end start
+PASS Checking place-content: unsafe end end
+PASS Checking place-content: unsafe end center
+PASS Checking place-content: unsafe end flex-start
+PASS Checking place-content: unsafe end flex-end
+PASS Checking place-content: unsafe end stretch
+PASS Checking place-content: unsafe end space-around
+PASS Checking place-content: unsafe end space-between
+PASS Checking place-content: unsafe end space-evenly
+PASS Checking place-content: safe end normal
+PASS Checking place-content: safe end left
+PASS Checking place-content: safe end right
+PASS Checking place-content: safe end start
+PASS Checking place-content: safe end end
+PASS Checking place-content: safe end center
+PASS Checking place-content: safe end flex-start
+PASS Checking place-content: safe end flex-end
+PASS Checking place-content: safe end stretch
+PASS Checking place-content: safe end space-around
+PASS Checking place-content: safe end space-between
+PASS Checking place-content: safe end space-evenly
+PASS Checking place-content: unsafe flex-start normal
+PASS Checking place-content: unsafe flex-start left
+PASS Checking place-content: unsafe flex-start right
+PASS Checking place-content: unsafe flex-start start
+PASS Checking place-content: unsafe flex-start end
+PASS Checking place-content: unsafe flex-start center
+PASS Checking place-content: unsafe flex-start flex-start
+PASS Checking place-content: unsafe flex-start flex-end
+PASS Checking place-content: unsafe flex-start stretch
+PASS Checking place-content: unsafe flex-start space-around
+PASS Checking place-content: unsafe flex-start space-between
+PASS Checking place-content: unsafe flex-start space-evenly
+PASS Checking place-content: safe center normal
+PASS Checking place-content: safe center left
+PASS Checking place-content: safe center right
+PASS Checking place-content: safe center start
+PASS Checking place-content: safe center end
+PASS Checking place-content: safe center center
+PASS Checking place-content: safe center flex-start
+PASS Checking place-content: safe center flex-end
+PASS Checking place-content: safe center stretch
+PASS Checking place-content: safe center space-around
+PASS Checking place-content: safe center space-between
+PASS Checking place-content: safe center space-evenly
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-002.html (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-002.html 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-002.html 2018-04-20 20:06:53 UTC (rev 230848)
@@ -8,10 +8,12 @@
<script src=""
<div id="log"></div>
<script>
- let classes = Object.assign({"Normal":"normal"}, contentPositionClasses, distributionClasses, baselineClasses);
+ let classes = Object.assign({"Normal":"normal"}, contentPositionClasses, distributionClasses, baselineClasses,
+ overflowClasses);
for (var key1 in classes) {
let alignValue = classes[key1];
- let classes2 = Object.assign({"Normal":"normal", "Left":"left", "Right":"right"}, contentPositionClasses, distributionClasses);
+ let classes2 = Object.assign({"Normal":"normal", "Left":"left", "Right":"right"}, contentPositionClasses,
+ distributionClasses);
for (var key2 in classes2) {
let justifyValue = classes2[key2];
test(function() {
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-004-expected.txt (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-004-expected.txt 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-004-expected.txt 2018-04-20 20:06:53 UTC (rev 230848)
@@ -1,5 +1,4 @@
-PASS Verify overflow keywords are invalid
PASS Verify fallback values are invalid
PASS Verify 'left' and 'right' values are invalid for block/cross axis alignment
PASS Verify <baseline-position> values are invalid for the justify-content property
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-004.html (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-004.html 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/content-distribution/place-content-shorthand-004.html 2018-04-20 20:06:53 UTC (rev 230848)
@@ -14,11 +14,6 @@
}
test(function() {
- checkInvalidValues("safe center")
- checkInvalidValues("unsafe center")
- }, "Verify overflow keywords are invalid");
-
- test(function() {
checkInvalidValues("center space-between start")
}, "Verify fallback values are invalid");
@@ -29,8 +24,6 @@
}, "Verify 'left' and 'right' values are invalid for block/cross axis alignment");
test(function() {
- checkInvalidValues("baseline")
- checkInvalidValues("first baseline")
checkInvalidValues("start baseline")
checkInvalidValues("end last baseline")
}, "Verify <baseline-position> values are invalid for the justify-content property");
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-001-expected.txt (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-001-expected.txt 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-001-expected.txt 2018-04-20 20:06:53 UTC (rev 230848)
@@ -18,4 +18,7 @@
PASS Checking justify-items: safe end
PASS Checking justify-items: unsafe flex-start
PASS Checking justify-items: safe center
+PASS Checking justify-items: legacy left
+PASS Checking justify-items: legacy center
+PASS Checking justify-items: legacy right
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-001.html (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-001.html 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-001.html 2018-04-20 20:06:53 UTC (rev 230848)
@@ -15,7 +15,7 @@
<div id="log"></div>
<script>
let classes = Object.assign({"Normal":"normal", "Stretch":"stretch", "Left":"left", "Right":"right"},
- selfPositionClasses, baselineClasses, overflowClasses);
+ selfPositionClasses, baselineClasses, overflowClasses, legacyClasses);
for (var key in classes) {
let specifiedValue = classes[key];
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-003-expected.txt (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-003-expected.txt 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-003-expected.txt 2018-04-20 20:06:53 UTC (rev 230848)
@@ -18,4 +18,7 @@
PASS Checking justify-items: safe end
PASS Checking justify-items: unsafe flex-start
PASS Checking justify-items: safe center
+PASS Checking justify-items: legacy left
+PASS Checking justify-items: legacy center
+PASS Checking justify-items: legacy right
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-003.html (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-003.html 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/parse-justify-items-003.html 2018-04-20 20:06:53 UTC (rev 230848)
@@ -17,7 +17,7 @@
document.body.appendChild(element);
let classes = Object.assign({"Normal":"normal", "Stretch":"stretch", "Left":"left", "Right":"right"},
- selfPositionClasses, baselineClasses, overflowClasses);
+ selfPositionClasses, baselineClasses, overflowClasses, legacyClasses);
for (var key in classes) {
let specifiedValue = classes[key];
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-001-expected.txt (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-001-expected.txt 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-001-expected.txt 2018-04-20 20:06:53 UTC (rev 230848)
@@ -11,4 +11,9 @@
PASS Checking place-items: baseline
PASS Checking place-items: first baseline
PASS Checking place-items: last baseline
+PASS Checking place-items: safe flex-end
+PASS Checking place-items: unsafe end
+PASS Checking place-items: safe end
+PASS Checking place-items: unsafe flex-start
+PASS Checking place-items: safe center
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-001.html (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-001.html 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-001.html 2018-04-20 20:06:53 UTC (rev 230848)
@@ -8,7 +8,8 @@
<script src=""
<div id="log"></div>
<script>
- let classes = Object.assign({"Normal":"normal", "Stretch":"stretch"}, selfPositionClasses, baselineClasses);
+ let classes = Object.assign({"Normal":"normal", "Stretch":"stretch"}, selfPositionClasses, baselineClasses,
+ overflowClasses);
for (var key in classes) {
let value = classes[key];
test(function() {
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-002-expected.txt (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-002-expected.txt 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-002-expected.txt 2018-04-20 20:06:53 UTC (rev 230848)
@@ -1,6 +1,9 @@
PASS Checking place-items: normal left
PASS Checking place-items: normal right
+PASS Checking place-items: normal legacy left
+PASS Checking place-items: normal legacy center
+PASS Checking place-items: normal legacy right
PASS Checking place-items: normal normal
PASS Checking place-items: normal stretch
PASS Checking place-items: normal start
@@ -13,8 +16,16 @@
PASS Checking place-items: normal baseline
PASS Checking place-items: normal first baseline
PASS Checking place-items: normal last baseline
+PASS Checking place-items: normal safe flex-end
+PASS Checking place-items: normal unsafe end
+PASS Checking place-items: normal safe end
+PASS Checking place-items: normal unsafe flex-start
+PASS Checking place-items: normal safe center
PASS Checking place-items: stretch left
PASS Checking place-items: stretch right
+PASS Checking place-items: stretch legacy left
+PASS Checking place-items: stretch legacy center
+PASS Checking place-items: stretch legacy right
PASS Checking place-items: stretch normal
PASS Checking place-items: stretch stretch
PASS Checking place-items: stretch start
@@ -27,8 +38,16 @@
PASS Checking place-items: stretch baseline
PASS Checking place-items: stretch first baseline
PASS Checking place-items: stretch last baseline
+PASS Checking place-items: stretch safe flex-end
+PASS Checking place-items: stretch unsafe end
+PASS Checking place-items: stretch safe end
+PASS Checking place-items: stretch unsafe flex-start
+PASS Checking place-items: stretch safe center
PASS Checking place-items: start left
PASS Checking place-items: start right
+PASS Checking place-items: start legacy left
+PASS Checking place-items: start legacy center
+PASS Checking place-items: start legacy right
PASS Checking place-items: start normal
PASS Checking place-items: start stretch
PASS Checking place-items: start start
@@ -41,8 +60,16 @@
PASS Checking place-items: start baseline
PASS Checking place-items: start first baseline
PASS Checking place-items: start last baseline
+PASS Checking place-items: start safe flex-end
+PASS Checking place-items: start unsafe end
+PASS Checking place-items: start safe end
+PASS Checking place-items: start unsafe flex-start
+PASS Checking place-items: start safe center
PASS Checking place-items: end left
PASS Checking place-items: end right
+PASS Checking place-items: end legacy left
+PASS Checking place-items: end legacy center
+PASS Checking place-items: end legacy right
PASS Checking place-items: end normal
PASS Checking place-items: end stretch
PASS Checking place-items: end start
@@ -55,8 +82,16 @@
PASS Checking place-items: end baseline
PASS Checking place-items: end first baseline
PASS Checking place-items: end last baseline
+PASS Checking place-items: end safe flex-end
+PASS Checking place-items: end unsafe end
+PASS Checking place-items: end safe end
+PASS Checking place-items: end unsafe flex-start
+PASS Checking place-items: end safe center
PASS Checking place-items: self-start left
PASS Checking place-items: self-start right
+PASS Checking place-items: self-start legacy left
+PASS Checking place-items: self-start legacy center
+PASS Checking place-items: self-start legacy right
PASS Checking place-items: self-start normal
PASS Checking place-items: self-start stretch
PASS Checking place-items: self-start start
@@ -69,8 +104,16 @@
PASS Checking place-items: self-start baseline
PASS Checking place-items: self-start first baseline
PASS Checking place-items: self-start last baseline
+PASS Checking place-items: self-start safe flex-end
+PASS Checking place-items: self-start unsafe end
+PASS Checking place-items: self-start safe end
+PASS Checking place-items: self-start unsafe flex-start
+PASS Checking place-items: self-start safe center
PASS Checking place-items: self-end left
PASS Checking place-items: self-end right
+PASS Checking place-items: self-end legacy left
+PASS Checking place-items: self-end legacy center
+PASS Checking place-items: self-end legacy right
PASS Checking place-items: self-end normal
PASS Checking place-items: self-end stretch
PASS Checking place-items: self-end start
@@ -83,8 +126,16 @@
PASS Checking place-items: self-end baseline
PASS Checking place-items: self-end first baseline
PASS Checking place-items: self-end last baseline
+PASS Checking place-items: self-end safe flex-end
+PASS Checking place-items: self-end unsafe end
+PASS Checking place-items: self-end safe end
+PASS Checking place-items: self-end unsafe flex-start
+PASS Checking place-items: self-end safe center
PASS Checking place-items: center left
PASS Checking place-items: center right
+PASS Checking place-items: center legacy left
+PASS Checking place-items: center legacy center
+PASS Checking place-items: center legacy right
PASS Checking place-items: center normal
PASS Checking place-items: center stretch
PASS Checking place-items: center start
@@ -97,8 +148,16 @@
PASS Checking place-items: center baseline
PASS Checking place-items: center first baseline
PASS Checking place-items: center last baseline
+PASS Checking place-items: center safe flex-end
+PASS Checking place-items: center unsafe end
+PASS Checking place-items: center safe end
+PASS Checking place-items: center unsafe flex-start
+PASS Checking place-items: center safe center
PASS Checking place-items: flex-start left
PASS Checking place-items: flex-start right
+PASS Checking place-items: flex-start legacy left
+PASS Checking place-items: flex-start legacy center
+PASS Checking place-items: flex-start legacy right
PASS Checking place-items: flex-start normal
PASS Checking place-items: flex-start stretch
PASS Checking place-items: flex-start start
@@ -111,8 +170,16 @@
PASS Checking place-items: flex-start baseline
PASS Checking place-items: flex-start first baseline
PASS Checking place-items: flex-start last baseline
+PASS Checking place-items: flex-start safe flex-end
+PASS Checking place-items: flex-start unsafe end
+PASS Checking place-items: flex-start safe end
+PASS Checking place-items: flex-start unsafe flex-start
+PASS Checking place-items: flex-start safe center
PASS Checking place-items: flex-end left
PASS Checking place-items: flex-end right
+PASS Checking place-items: flex-end legacy left
+PASS Checking place-items: flex-end legacy center
+PASS Checking place-items: flex-end legacy right
PASS Checking place-items: flex-end normal
PASS Checking place-items: flex-end stretch
PASS Checking place-items: flex-end start
@@ -125,8 +192,16 @@
PASS Checking place-items: flex-end baseline
PASS Checking place-items: flex-end first baseline
PASS Checking place-items: flex-end last baseline
+PASS Checking place-items: flex-end safe flex-end
+PASS Checking place-items: flex-end unsafe end
+PASS Checking place-items: flex-end safe end
+PASS Checking place-items: flex-end unsafe flex-start
+PASS Checking place-items: flex-end safe center
PASS Checking place-items: baseline left
PASS Checking place-items: baseline right
+PASS Checking place-items: baseline legacy left
+PASS Checking place-items: baseline legacy center
+PASS Checking place-items: baseline legacy right
PASS Checking place-items: baseline normal
PASS Checking place-items: baseline stretch
PASS Checking place-items: baseline start
@@ -139,8 +214,16 @@
PASS Checking place-items: baseline baseline
PASS Checking place-items: baseline first baseline
PASS Checking place-items: baseline last baseline
+PASS Checking place-items: baseline safe flex-end
+PASS Checking place-items: baseline unsafe end
+PASS Checking place-items: baseline safe end
+PASS Checking place-items: baseline unsafe flex-start
+PASS Checking place-items: baseline safe center
PASS Checking place-items: first baseline left
PASS Checking place-items: first baseline right
+PASS Checking place-items: first baseline legacy left
+PASS Checking place-items: first baseline legacy center
+PASS Checking place-items: first baseline legacy right
PASS Checking place-items: first baseline normal
PASS Checking place-items: first baseline stretch
PASS Checking place-items: first baseline start
@@ -153,8 +236,16 @@
PASS Checking place-items: first baseline baseline
PASS Checking place-items: first baseline first baseline
PASS Checking place-items: first baseline last baseline
+PASS Checking place-items: first baseline safe flex-end
+PASS Checking place-items: first baseline unsafe end
+PASS Checking place-items: first baseline safe end
+PASS Checking place-items: first baseline unsafe flex-start
+PASS Checking place-items: first baseline safe center
PASS Checking place-items: last baseline left
PASS Checking place-items: last baseline right
+PASS Checking place-items: last baseline legacy left
+PASS Checking place-items: last baseline legacy center
+PASS Checking place-items: last baseline legacy right
PASS Checking place-items: last baseline normal
PASS Checking place-items: last baseline stretch
PASS Checking place-items: last baseline start
@@ -167,4 +258,119 @@
PASS Checking place-items: last baseline baseline
PASS Checking place-items: last baseline first baseline
PASS Checking place-items: last baseline last baseline
+PASS Checking place-items: last baseline safe flex-end
+PASS Checking place-items: last baseline unsafe end
+PASS Checking place-items: last baseline safe end
+PASS Checking place-items: last baseline unsafe flex-start
+PASS Checking place-items: last baseline safe center
+PASS Checking place-items: safe flex-end left
+PASS Checking place-items: safe flex-end right
+PASS Checking place-items: safe flex-end legacy left
+PASS Checking place-items: safe flex-end legacy center
+PASS Checking place-items: safe flex-end legacy right
+PASS Checking place-items: safe flex-end normal
+PASS Checking place-items: safe flex-end stretch
+PASS Checking place-items: safe flex-end start
+PASS Checking place-items: safe flex-end end
+PASS Checking place-items: safe flex-end self-start
+PASS Checking place-items: safe flex-end self-end
+PASS Checking place-items: safe flex-end center
+PASS Checking place-items: safe flex-end flex-start
+PASS Checking place-items: safe flex-end flex-end
+PASS Checking place-items: safe flex-end baseline
+PASS Checking place-items: safe flex-end first baseline
+PASS Checking place-items: safe flex-end last baseline
+PASS Checking place-items: safe flex-end safe flex-end
+PASS Checking place-items: safe flex-end unsafe end
+PASS Checking place-items: safe flex-end safe end
+PASS Checking place-items: safe flex-end unsafe flex-start
+PASS Checking place-items: safe flex-end safe center
+PASS Checking place-items: unsafe end left
+PASS Checking place-items: unsafe end right
+PASS Checking place-items: unsafe end legacy left
+PASS Checking place-items: unsafe end legacy center
+PASS Checking place-items: unsafe end legacy right
+PASS Checking place-items: unsafe end normal
+PASS Checking place-items: unsafe end stretch
+PASS Checking place-items: unsafe end start
+PASS Checking place-items: unsafe end end
+PASS Checking place-items: unsafe end self-start
+PASS Checking place-items: unsafe end self-end
+PASS Checking place-items: unsafe end center
+PASS Checking place-items: unsafe end flex-start
+PASS Checking place-items: unsafe end flex-end
+PASS Checking place-items: unsafe end baseline
+PASS Checking place-items: unsafe end first baseline
+PASS Checking place-items: unsafe end last baseline
+PASS Checking place-items: unsafe end safe flex-end
+PASS Checking place-items: unsafe end unsafe end
+PASS Checking place-items: unsafe end safe end
+PASS Checking place-items: unsafe end unsafe flex-start
+PASS Checking place-items: unsafe end safe center
+PASS Checking place-items: safe end left
+PASS Checking place-items: safe end right
+PASS Checking place-items: safe end legacy left
+PASS Checking place-items: safe end legacy center
+PASS Checking place-items: safe end legacy right
+PASS Checking place-items: safe end normal
+PASS Checking place-items: safe end stretch
+PASS Checking place-items: safe end start
+PASS Checking place-items: safe end end
+PASS Checking place-items: safe end self-start
+PASS Checking place-items: safe end self-end
+PASS Checking place-items: safe end center
+PASS Checking place-items: safe end flex-start
+PASS Checking place-items: safe end flex-end
+PASS Checking place-items: safe end baseline
+PASS Checking place-items: safe end first baseline
+PASS Checking place-items: safe end last baseline
+PASS Checking place-items: safe end safe flex-end
+PASS Checking place-items: safe end unsafe end
+PASS Checking place-items: safe end safe end
+PASS Checking place-items: safe end unsafe flex-start
+PASS Checking place-items: safe end safe center
+PASS Checking place-items: unsafe flex-start left
+PASS Checking place-items: unsafe flex-start right
+PASS Checking place-items: unsafe flex-start legacy left
+PASS Checking place-items: unsafe flex-start legacy center
+PASS Checking place-items: unsafe flex-start legacy right
+PASS Checking place-items: unsafe flex-start normal
+PASS Checking place-items: unsafe flex-start stretch
+PASS Checking place-items: unsafe flex-start start
+PASS Checking place-items: unsafe flex-start end
+PASS Checking place-items: unsafe flex-start self-start
+PASS Checking place-items: unsafe flex-start self-end
+PASS Checking place-items: unsafe flex-start center
+PASS Checking place-items: unsafe flex-start flex-start
+PASS Checking place-items: unsafe flex-start flex-end
+PASS Checking place-items: unsafe flex-start baseline
+PASS Checking place-items: unsafe flex-start first baseline
+PASS Checking place-items: unsafe flex-start last baseline
+PASS Checking place-items: unsafe flex-start safe flex-end
+PASS Checking place-items: unsafe flex-start unsafe end
+PASS Checking place-items: unsafe flex-start safe end
+PASS Checking place-items: unsafe flex-start unsafe flex-start
+PASS Checking place-items: unsafe flex-start safe center
+PASS Checking place-items: safe center left
+PASS Checking place-items: safe center right
+PASS Checking place-items: safe center legacy left
+PASS Checking place-items: safe center legacy center
+PASS Checking place-items: safe center legacy right
+PASS Checking place-items: safe center normal
+PASS Checking place-items: safe center stretch
+PASS Checking place-items: safe center start
+PASS Checking place-items: safe center end
+PASS Checking place-items: safe center self-start
+PASS Checking place-items: safe center self-end
+PASS Checking place-items: safe center center
+PASS Checking place-items: safe center flex-start
+PASS Checking place-items: safe center flex-end
+PASS Checking place-items: safe center baseline
+PASS Checking place-items: safe center first baseline
+PASS Checking place-items: safe center last baseline
+PASS Checking place-items: safe center safe flex-end
+PASS Checking place-items: safe center unsafe end
+PASS Checking place-items: safe center safe end
+PASS Checking place-items: safe center unsafe flex-start
+PASS Checking place-items: safe center safe center
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-002.html (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-002.html 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-002.html 2018-04-20 20:06:53 UTC (rev 230848)
@@ -8,10 +8,11 @@
<script src=""
<div id="log"></div>
<script>
- let classes = Object.assign({"Normal":"normal", "Stretch":"stretch"}, selfPositionClasses, baselineClasses);
+ let classes = Object.assign({"Normal":"normal", "Stretch":"stretch"}, selfPositionClasses, baselineClasses,
+ overflowClasses);
for (var key1 in classes) {
let alignValue = classes[key1];
- let classes2 = Object.assign({"Left":"left", "Right":"right"}, classes);
+ let classes2 = Object.assign({"Left":"left", "Right":"right"}, legacyClasses, classes);
for (var key2 in classes2) {
let justifyValue = classes2[key2];
test(function() {
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-004-expected.txt (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-004-expected.txt 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-004-expected.txt 2018-04-20 20:06:53 UTC (rev 230848)
@@ -1,9 +1,6 @@
-PASS Verify overflow keywords are invalid
PASS Verify fallback values are invalid
PASS Verify 'left' and 'right' values are invalid for block/cross axis alignment
PASS Verify numeric values are invalid
-PASS Verify 'auto' value is invalid.
-PASS Verify 'legacy' value is invalid.
PASS Verify empty declaration is invalid
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-004.html (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-004.html 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-004.html 2018-04-20 20:06:53 UTC (rev 230848)
@@ -14,12 +14,7 @@
}
test(function() {
- checkInvalidValues("safe center")
- checkInvalidValues("unsafe center")
- }, "Verify overflow keywords are invalid");
-
- test(function() {
- checkInvalidValues("center space-between start")
+ checkInvalidValues("center end start")
}, "Verify fallback values are invalid");
test(function() {
@@ -34,23 +29,6 @@
}, "Verify numeric values are invalid");
test(function() {
- checkInvalidValues("auto")
- checkInvalidValues("auto right")
- checkInvalidValues("auto auto")
- checkInvalidValues("center auto")
- }, "Verify 'auto' value is invalid.");
-
- test(function() {
- checkInvalidValues("legacy")
- checkInvalidValues("legacy start")
- checkInvalidValues("end legacy")
- checkInvalidValues("legacy left")
- checkInvalidValues("center legacy")
- checkInvalidValues("start legacy center")
- }, "Verify 'legacy' value is invalid.");
-
-
- test(function() {
checkInvalidValues("")
}, "Verify empty declaration is invalid");
</script>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/shorthand-serialization-001-expected.txt (0 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/shorthand-serialization-001-expected.txt (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/shorthand-serialization-001-expected.txt 2018-04-20 20:06:53 UTC (rev 230848)
@@ -0,0 +1,19 @@
+
+PASS test shorthand serialization {"alignContent":"center","shorthand":"center normal"}
+PASS test shorthand serialization {"alignContent":"baseline safe right","shorthand":""}
+PASS test shorthand serialization {"justifyContent":"safe start","shorthand":"normal safe start"}
+PASS test shorthand serialization {"justifyContent":"unsafe start","shorthand":["normal start","normal unsafe start"]}
+PASS test shorthand serialization {"justifyContent":"space-evenly start","shorthand":""}
+PASS test shorthand serialization {"alignContent":"start","justifyContent":"end","shorthand":"start end"}
+PASS test shorthand serialization {"alignItems":"center","shorthand":"center legacy"}
+PASS test shorthand serialization {"alignItems":"baseline","shorthand":"baseline legacy"}
+PASS test shorthand serialization {"justifyItems":"safe start","shorthand":"normal safe start"}
+PASS test shorthand serialization {"justifyItems":"unsafe start","shorthand":["normal start","normal unsafe start"]}
+PASS test shorthand serialization {"justifyItems":"stretch","shorthand":"normal stretch"}
+PASS test shorthand serialization {"justifyItems":"left legacy","shorthand":"normal legacy left"}
+PASS test shorthand serialization {"alignItems":"stretch","justifyItems":"end","shorthand":"stretch end"}
+PASS test shorthand serialization {"alignSelf":"self-end safe","shorthand":""}
+PASS test shorthand serialization {"justifySelf":"unsafe start","shorthand":["auto start","auto unsafe start"]}
+PASS test shorthand serialization {"justifySelf":"last baseline start","shorthand":""}
+PASS test shorthand serialization {"alignSelf":"baseline","justifySelf":"last baseline","shorthand":"baseline last baseline"}
+
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/shorthand-serialization-001.html (0 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/shorthand-serialization-001.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/shorthand-serialization-001.html 2018-04-20 20:06:53 UTC (rev 230848)
@@ -0,0 +1,131 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset=utf-8>
+ <title>Test serialization of CSS Align shorthand properties</title>
+ <link rel="author" title="Mats Palmgren" href=""
+ <link rel="help" href=""
+ <script src=""
+ <script src=""
+</head>
+<body>
+
+<script>
+
+var initial_values = {
+ alignContent: "normal",
+ alignItems: "normal",
+ alignSelf: "auto",
+ justifyContent: "normal",
+ justifyItems: "legacy",
+ justifySelf: "auto",
+};
+
+var place_content_test_cases = [
+ {
+ alignContent: "center",
+ shorthand: "center normal",
+ },
+ {
+ alignContent: "baseline safe right",
+ shorthand: "",
+ },
+ {
+ justifyContent: "safe start",
+ shorthand: "normal safe start",
+ },
+ {
+ justifyContent: "unsafe start",
+ shorthand: ["normal start", "normal unsafe start"],
+ },
+ {
+ justifyContent: "space-evenly start",
+ shorthand: "",
+ },
+ {
+ alignContent: "start",
+ justifyContent: "end",
+ shorthand: "start end",
+ },
+];
+
+var place_items_test_cases = [
+ {
+ alignItems: "center",
+ shorthand: "center legacy",
+ },
+ {
+ alignItems: "baseline",
+ shorthand: "baseline legacy",
+ },
+ {
+ justifyItems: "safe start",
+ shorthand: "normal safe start",
+ },
+ {
+ justifyItems: "unsafe start",
+ shorthand: ["normal start", "normal unsafe start"],
+ },
+ {
+ justifyItems: "stretch",
+ shorthand: "normal stretch",
+ },
+ {
+ justifyItems: "left legacy",
+ shorthand: "normal legacy left",
+ },
+ {
+ alignItems: "stretch",
+ justifyItems: "end",
+ shorthand: "stretch end",
+ },
+];
+
+var place_self_test_cases = [
+ {
+ alignSelf: "self-end safe",
+ shorthand: "",
+ },
+ {
+ justifySelf: "unsafe start",
+ shorthand: ["auto start", "auto unsafe start"],
+ },
+ {
+ justifySelf: "last baseline start",
+ shorthand: "",
+ },
+ {
+ alignSelf: "baseline",
+ justifySelf: "last baseline",
+ shorthand: "baseline last baseline",
+ },
+];
+
+function run_tests(test_cases, shorthand, subproperties) {
+ test_cases.forEach(function(test_case) {
+ test(function() {
+ var element = document.createElement('div');
+ document.body.appendChild(element);
+ subproperties.forEach(function(longhand) {
+ element.style[longhand] = test_case[longhand] ||
+ initial_values[longhand];
+ });
+ if (Array.isArray(test_case.shorthand)) {
+ assert_in_array(element.style[shorthand], test_case.shorthand);
+ } else {
+ assert_equals(element.style[shorthand], test_case.shorthand);
+ }
+ }, "test shorthand serialization " + JSON.stringify(test_case));
+ });
+}
+
+run_tests(place_content_test_cases, "placeContent", [
+ "alignContent", "justifyContent"]);
+run_tests(place_items_test_cases, "placeItems", [
+ "alignItems", "justifyItems"]);
+run_tests(place_self_test_cases, "placeSelf", [
+ "alignSelf", "justifySelf"]);
+
+</script>
+</body>
+</html>
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/w3c-import.log (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/w3c-import.log 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/w3c-import.log 2018-04-20 20:06:53 UTC (rev 230848)
@@ -32,3 +32,4 @@
/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-004.html
/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-005.html
/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/place-items-shorthand-006.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-align/default-alignment/shorthand-serialization-001.html
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-computed-001-expected.txt (0 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-computed-001-expected.txt (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-computed-001-expected.txt 2018-04-20 20:06:53 UTC (rev 230848)
@@ -0,0 +1,8 @@
+
+PASS colum-gap:normal computes to normal on multicol elements
+PASS row-gap:normal computes to normal on multicol elements
+PASS colum-gap:normal computes to normal on grid
+PASS row-gap:normal computes to normal on grid
+PASS colum-gap:normal (main axis) computes to normal on flexbox
+PASS row-gap:normal (cross axis) computes to normal on flexbox
+
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-computed-001.html (0 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-computed-001.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-computed-001.html 2018-04-20 20:06:53 UTC (rev 230848)
@@ -0,0 +1,72 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Box Alignment Test: computed value of normal on *-gap properties</title>
+<link rel="author" title="Florian Rivoal" href=""
+<link rel="help" href=""
+<meta assert="The computed value of [row-|column-]?gap is normal for all elements it applies to. Checking explicitely because earlier version of the spec called for 0px in some cases.">
+<script src=""
+<script src=""
+<style>
+#col,
+#grid,
+#flex {
+ /* Not using the shorthand because that's not what we're interested in,
+ and there are implementations that support column-gap without supporting the shorthand */
+ colum-gap: normal;
+ row-gap: normal;
+ float: right; /* for shrinkwrap*/
+}
+#col {
+ column-count: 2;
+ column-width: 50px;
+}
+#grid {
+ display: grid;
+ grid-template-columns: 50px 50px;
+ grid-template-rows: 50px 50px;
+}
+#flex {
+ display: flex;
+}
+#flex * { width: 50px; height: 50px;}
+</style>
+<body>
+ <div id="log"></div>
+
+ <div id=col></div>
+ <div id=grid></div>
+ <div id=flex><span></span><span></span></div>
+
+ <script>
+ test(
+ function(){
+ var target = document.getElementById("col");
+ assert_equals(getComputedStyle(target).columnGap, "normal");
+ }, "colum-gap:normal computes to normal on multicol elements");
+ test(
+ function(){
+ var target = document.getElementById("col");
+ assert_equals(getComputedStyle(target).rowGap, "normal");
+ }, "row-gap:normal computes to normal on multicol elements");
+ test(
+ function(){
+ var target = document.getElementById("grid");
+ assert_equals(getComputedStyle(target).columnGap, "normal");
+ }, "colum-gap:normal computes to normal on grid");
+ test(
+ function(){
+ var target = document.getElementById("grid");
+ assert_equals(getComputedStyle(target).rowGap, "normal");
+ }, "row-gap:normal computes to normal on grid");
+ test(
+ function(){
+ var target = document.getElementById("flex");
+ assert_equals(getComputedStyle(target).columnGap, "normal");
+ }, "colum-gap:normal (main axis) computes to normal on flexbox");
+ test(
+ function(){
+ var target = document.getElementById("flex");
+ assert_equals(getComputedStyle(target).rowGap, "normal");
+ }, "row-gap:normal (cross axis) computes to normal on flexbox");
+ </script>
+</body>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-used-001-expected.xht (0 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-used-001-expected.xht (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-used-001-expected.xht 2018-04-20 20:06:53 UTC (rev 230848)
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>CSS Reftest Reference</title>
+ <link rel="author" title="Gérard Talbot" href="" />
+ <style type="text/css"><![CDATA[
+ div
+ {
+ background-color: green;
+ height: 100px;
+ width: 100px;
+ }
+ ]]></style>
+ </head>
+ <body>
+ <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+ <div></div>
+ </body>
+</html>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-used-001.html (0 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-used-001.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-used-001.html 2018-04-20 20:06:53 UTC (rev 230848)
@@ -0,0 +1,29 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Box Alignment Test: used value of *-gap:normal on grid</title>
+<link rel="author" title="Florian Rivoal" href=""
+<link rel="help" href=""
+<meta assert="The used value of row-gap and column-gap normal for grids is 0">
+<link rel="match" href="" />
+<style>
+#grid {
+ colum-gap: normal;
+ row-gap: normal;
+ display: grid;
+ grid-template-columns: 50px 50px;
+ grid-template-rows: 50px 50px;
+
+ position: absolute;
+}
+#grid * { background: green; }
+#red {
+ width: 100px;
+ height: 100px;
+ background: red;
+}
+</style>
+
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id=grid><span></span><span></span><span></span><span></span></div>
+<div id=red></div>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-used-002-expected.xht (0 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-used-002-expected.xht (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-used-002-expected.xht 2018-04-20 20:06:53 UTC (rev 230848)
@@ -0,0 +1,19 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+ <head>
+ <title>CSS Reftest Reference</title>
+ <link rel="author" title="Gérard Talbot" href="" />
+ <style type="text/css"><![CDATA[
+ div
+ {
+ background-color: green;
+ height: 100px;
+ width: 100px;
+ }
+ ]]></style>
+ </head>
+ <body>
+ <p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+ <div></div>
+ </body>
+</html>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-used-002.html (0 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-used-002.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-used-002.html 2018-04-20 20:06:53 UTC (rev 230848)
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Box Alignment Test: used value of *-gap:normal on flexbox</title>
+<link rel="author" title="Florian Rivoal" href=""
+<link rel="help" href=""
+<meta assert="The used value row-gap:normal and column:normal normal is 0px in flexbox">
+<link rel="match" href="" />
+<style>
+#flex {
+ colum-gap: normal;
+ row-gap: normal;
+ display: flex;
+ flex-flow: wrap;
+ max-width: 145px; /* more than 100, less than 150, to force wrapping and get 2 items per line*/
+
+ position: absolute;
+}
+#flex * {
+ width: 50px;
+ height: 50px;
+ background: green
+}
+#red {
+ width: 100px;
+ height: 100px;
+ background: red;
+}
+</style>
+
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id=flex><span></span><span></span><span></span><span></span></div>
+<div id=red></div>
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/w3c-import.log (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/w3c-import.log 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/w3c-import.log 2018-04-20 20:06:53 UTC (rev 230848)
@@ -22,6 +22,11 @@
/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-animation-002.html
/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-animation-003.html
/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-animation-004.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-computed-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-used-001-expected.xht
+/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-used-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-used-002-expected.xht
+/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-used-002.html
/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/gap-parsing-001.html
/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/grid-column-gap-parsing-001.html
/LayoutTests/imported/w3c/web-platform-tests/css/css-align/gaps/grid-gap-parsing-001.html
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/resources/alignment-parsing-utils.js (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/resources/alignment-parsing-utils.js 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/resources/alignment-parsing-utils.js 2018-04-20 20:06:53 UTC (rev 230848)
@@ -3,7 +3,7 @@
var distributionClasses = {"Stretch":"stretch", "SpaceAround":"space-around", "SpaceBetween":"space-between", "SpaceEvenly":"space-evenly"};
var baselineClasses = {"Baseline":"baseline", "FirstBaseline":"first baseline", "LastBaseline":"last baseline"};
var overflowClasses = {"SafeFlexEnd":"safe flex-end", "UnsafeEnd":"unsafe end", "SafeEnd":"safe end", "UnsafeFlexStart":"unsafe flex-start", "SafeCenter":"safe center"};
-var legacyClasses = {"LegacyLeft":"legacy left", "LegacyCenter":"legacy center", "LegacyRight":"legacy right", "LeftLegacy":"left legacy", "CenterLegacy":"center legacy", "RightLegacy":"right legacy", "Legacy":"legacy"};
+var legacyClasses = {"LegacyLeft":"legacy left", "LegacyCenter":"legacy center", "LegacyRight":"legacy right"};
var invalidPositionValues = ["auto safe", "auto left", "normal unsafe", "normal stretch", "baseline normal",
"baseline center", "first baseline center", "last baseline center", "baseline last",
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-001-expected.txt (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-001-expected.txt 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-001-expected.txt 2018-04-20 20:06:53 UTC (rev 230848)
@@ -12,4 +12,9 @@
PASS Checking place-self: baseline
PASS Checking place-self: first baseline
PASS Checking place-self: last baseline
+PASS Checking place-self: safe flex-end
+PASS Checking place-self: unsafe end
+PASS Checking place-self: safe end
+PASS Checking place-self: unsafe flex-start
+PASS Checking place-self: safe center
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-001.html (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-001.html 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-001.html 2018-04-20 20:06:53 UTC (rev 230848)
@@ -9,7 +9,7 @@
<div id="log"></div>
<script>
let classes = Object.assign({"Auto":"auto", "Normal":"normal", "Stretch":"stretch"}, selfPositionClasses,
- baselineClasses);
+ baselineClasses, overflowClasses);
for (var key in classes) {
let value = classes[key];
test(function() {
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-002-expected.txt (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-002-expected.txt 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-002-expected.txt 2018-04-20 20:06:53 UTC (rev 230848)
@@ -14,6 +14,11 @@
PASS Checking place-self: auto baseline
PASS Checking place-self: auto first baseline
PASS Checking place-self: auto last baseline
+PASS Checking place-self: auto safe flex-end
+PASS Checking place-self: auto unsafe end
+PASS Checking place-self: auto safe end
+PASS Checking place-self: auto unsafe flex-start
+PASS Checking place-self: auto safe center
PASS Checking place-self: normal left
PASS Checking place-self: normal right
PASS Checking place-self: normal auto
@@ -29,6 +34,11 @@
PASS Checking place-self: normal baseline
PASS Checking place-self: normal first baseline
PASS Checking place-self: normal last baseline
+PASS Checking place-self: normal safe flex-end
+PASS Checking place-self: normal unsafe end
+PASS Checking place-self: normal safe end
+PASS Checking place-self: normal unsafe flex-start
+PASS Checking place-self: normal safe center
PASS Checking place-self: stretch left
PASS Checking place-self: stretch right
PASS Checking place-self: stretch auto
@@ -44,6 +54,11 @@
PASS Checking place-self: stretch baseline
PASS Checking place-self: stretch first baseline
PASS Checking place-self: stretch last baseline
+PASS Checking place-self: stretch safe flex-end
+PASS Checking place-self: stretch unsafe end
+PASS Checking place-self: stretch safe end
+PASS Checking place-self: stretch unsafe flex-start
+PASS Checking place-self: stretch safe center
PASS Checking place-self: start left
PASS Checking place-self: start right
PASS Checking place-self: start auto
@@ -59,6 +74,11 @@
PASS Checking place-self: start baseline
PASS Checking place-self: start first baseline
PASS Checking place-self: start last baseline
+PASS Checking place-self: start safe flex-end
+PASS Checking place-self: start unsafe end
+PASS Checking place-self: start safe end
+PASS Checking place-self: start unsafe flex-start
+PASS Checking place-self: start safe center
PASS Checking place-self: end left
PASS Checking place-self: end right
PASS Checking place-self: end auto
@@ -74,6 +94,11 @@
PASS Checking place-self: end baseline
PASS Checking place-self: end first baseline
PASS Checking place-self: end last baseline
+PASS Checking place-self: end safe flex-end
+PASS Checking place-self: end unsafe end
+PASS Checking place-self: end safe end
+PASS Checking place-self: end unsafe flex-start
+PASS Checking place-self: end safe center
PASS Checking place-self: self-start left
PASS Checking place-self: self-start right
PASS Checking place-self: self-start auto
@@ -89,6 +114,11 @@
PASS Checking place-self: self-start baseline
PASS Checking place-self: self-start first baseline
PASS Checking place-self: self-start last baseline
+PASS Checking place-self: self-start safe flex-end
+PASS Checking place-self: self-start unsafe end
+PASS Checking place-self: self-start safe end
+PASS Checking place-self: self-start unsafe flex-start
+PASS Checking place-self: self-start safe center
PASS Checking place-self: self-end left
PASS Checking place-self: self-end right
PASS Checking place-self: self-end auto
@@ -104,6 +134,11 @@
PASS Checking place-self: self-end baseline
PASS Checking place-self: self-end first baseline
PASS Checking place-self: self-end last baseline
+PASS Checking place-self: self-end safe flex-end
+PASS Checking place-self: self-end unsafe end
+PASS Checking place-self: self-end safe end
+PASS Checking place-self: self-end unsafe flex-start
+PASS Checking place-self: self-end safe center
PASS Checking place-self: center left
PASS Checking place-self: center right
PASS Checking place-self: center auto
@@ -119,6 +154,11 @@
PASS Checking place-self: center baseline
PASS Checking place-self: center first baseline
PASS Checking place-self: center last baseline
+PASS Checking place-self: center safe flex-end
+PASS Checking place-self: center unsafe end
+PASS Checking place-self: center safe end
+PASS Checking place-self: center unsafe flex-start
+PASS Checking place-self: center safe center
PASS Checking place-self: flex-start left
PASS Checking place-self: flex-start right
PASS Checking place-self: flex-start auto
@@ -134,6 +174,11 @@
PASS Checking place-self: flex-start baseline
PASS Checking place-self: flex-start first baseline
PASS Checking place-self: flex-start last baseline
+PASS Checking place-self: flex-start safe flex-end
+PASS Checking place-self: flex-start unsafe end
+PASS Checking place-self: flex-start safe end
+PASS Checking place-self: flex-start unsafe flex-start
+PASS Checking place-self: flex-start safe center
PASS Checking place-self: flex-end left
PASS Checking place-self: flex-end right
PASS Checking place-self: flex-end auto
@@ -149,6 +194,11 @@
PASS Checking place-self: flex-end baseline
PASS Checking place-self: flex-end first baseline
PASS Checking place-self: flex-end last baseline
+PASS Checking place-self: flex-end safe flex-end
+PASS Checking place-self: flex-end unsafe end
+PASS Checking place-self: flex-end safe end
+PASS Checking place-self: flex-end unsafe flex-start
+PASS Checking place-self: flex-end safe center
PASS Checking place-self: baseline left
PASS Checking place-self: baseline right
PASS Checking place-self: baseline auto
@@ -164,6 +214,11 @@
PASS Checking place-self: baseline baseline
PASS Checking place-self: baseline first baseline
PASS Checking place-self: baseline last baseline
+PASS Checking place-self: baseline safe flex-end
+PASS Checking place-self: baseline unsafe end
+PASS Checking place-self: baseline safe end
+PASS Checking place-self: baseline unsafe flex-start
+PASS Checking place-self: baseline safe center
PASS Checking place-self: first baseline left
PASS Checking place-self: first baseline right
PASS Checking place-self: first baseline auto
@@ -179,6 +234,11 @@
PASS Checking place-self: first baseline baseline
PASS Checking place-self: first baseline first baseline
PASS Checking place-self: first baseline last baseline
+PASS Checking place-self: first baseline safe flex-end
+PASS Checking place-self: first baseline unsafe end
+PASS Checking place-self: first baseline safe end
+PASS Checking place-self: first baseline unsafe flex-start
+PASS Checking place-self: first baseline safe center
PASS Checking place-self: last baseline left
PASS Checking place-self: last baseline right
PASS Checking place-self: last baseline auto
@@ -194,4 +254,109 @@
PASS Checking place-self: last baseline baseline
PASS Checking place-self: last baseline first baseline
PASS Checking place-self: last baseline last baseline
+PASS Checking place-self: last baseline safe flex-end
+PASS Checking place-self: last baseline unsafe end
+PASS Checking place-self: last baseline safe end
+PASS Checking place-self: last baseline unsafe flex-start
+PASS Checking place-self: last baseline safe center
+PASS Checking place-self: safe flex-end left
+PASS Checking place-self: safe flex-end right
+PASS Checking place-self: safe flex-end auto
+PASS Checking place-self: safe flex-end normal
+PASS Checking place-self: safe flex-end stretch
+PASS Checking place-self: safe flex-end start
+PASS Checking place-self: safe flex-end end
+PASS Checking place-self: safe flex-end self-start
+PASS Checking place-self: safe flex-end self-end
+PASS Checking place-self: safe flex-end center
+PASS Checking place-self: safe flex-end flex-start
+PASS Checking place-self: safe flex-end flex-end
+PASS Checking place-self: safe flex-end baseline
+PASS Checking place-self: safe flex-end first baseline
+PASS Checking place-self: safe flex-end last baseline
+PASS Checking place-self: safe flex-end safe flex-end
+PASS Checking place-self: safe flex-end unsafe end
+PASS Checking place-self: safe flex-end safe end
+PASS Checking place-self: safe flex-end unsafe flex-start
+PASS Checking place-self: safe flex-end safe center
+PASS Checking place-self: unsafe end left
+PASS Checking place-self: unsafe end right
+PASS Checking place-self: unsafe end auto
+PASS Checking place-self: unsafe end normal
+PASS Checking place-self: unsafe end stretch
+PASS Checking place-self: unsafe end start
+PASS Checking place-self: unsafe end end
+PASS Checking place-self: unsafe end self-start
+PASS Checking place-self: unsafe end self-end
+PASS Checking place-self: unsafe end center
+PASS Checking place-self: unsafe end flex-start
+PASS Checking place-self: unsafe end flex-end
+PASS Checking place-self: unsafe end baseline
+PASS Checking place-self: unsafe end first baseline
+PASS Checking place-self: unsafe end last baseline
+PASS Checking place-self: unsafe end safe flex-end
+PASS Checking place-self: unsafe end unsafe end
+PASS Checking place-self: unsafe end safe end
+PASS Checking place-self: unsafe end unsafe flex-start
+PASS Checking place-self: unsafe end safe center
+PASS Checking place-self: safe end left
+PASS Checking place-self: safe end right
+PASS Checking place-self: safe end auto
+PASS Checking place-self: safe end normal
+PASS Checking place-self: safe end stretch
+PASS Checking place-self: safe end start
+PASS Checking place-self: safe end end
+PASS Checking place-self: safe end self-start
+PASS Checking place-self: safe end self-end
+PASS Checking place-self: safe end center
+PASS Checking place-self: safe end flex-start
+PASS Checking place-self: safe end flex-end
+PASS Checking place-self: safe end baseline
+PASS Checking place-self: safe end first baseline
+PASS Checking place-self: safe end last baseline
+PASS Checking place-self: safe end safe flex-end
+PASS Checking place-self: safe end unsafe end
+PASS Checking place-self: safe end safe end
+PASS Checking place-self: safe end unsafe flex-start
+PASS Checking place-self: safe end safe center
+PASS Checking place-self: unsafe flex-start left
+PASS Checking place-self: unsafe flex-start right
+PASS Checking place-self: unsafe flex-start auto
+PASS Checking place-self: unsafe flex-start normal
+PASS Checking place-self: unsafe flex-start stretch
+PASS Checking place-self: unsafe flex-start start
+PASS Checking place-self: unsafe flex-start end
+PASS Checking place-self: unsafe flex-start self-start
+PASS Checking place-self: unsafe flex-start self-end
+PASS Checking place-self: unsafe flex-start center
+PASS Checking place-self: unsafe flex-start flex-start
+PASS Checking place-self: unsafe flex-start flex-end
+PASS Checking place-self: unsafe flex-start baseline
+PASS Checking place-self: unsafe flex-start first baseline
+PASS Checking place-self: unsafe flex-start last baseline
+PASS Checking place-self: unsafe flex-start safe flex-end
+PASS Checking place-self: unsafe flex-start unsafe end
+PASS Checking place-self: unsafe flex-start safe end
+PASS Checking place-self: unsafe flex-start unsafe flex-start
+PASS Checking place-self: unsafe flex-start safe center
+PASS Checking place-self: safe center left
+PASS Checking place-self: safe center right
+PASS Checking place-self: safe center auto
+PASS Checking place-self: safe center normal
+PASS Checking place-self: safe center stretch
+PASS Checking place-self: safe center start
+PASS Checking place-self: safe center end
+PASS Checking place-self: safe center self-start
+PASS Checking place-self: safe center self-end
+PASS Checking place-self: safe center center
+PASS Checking place-self: safe center flex-start
+PASS Checking place-self: safe center flex-end
+PASS Checking place-self: safe center baseline
+PASS Checking place-self: safe center first baseline
+PASS Checking place-self: safe center last baseline
+PASS Checking place-self: safe center safe flex-end
+PASS Checking place-self: safe center unsafe end
+PASS Checking place-self: safe center safe end
+PASS Checking place-self: safe center unsafe flex-start
+PASS Checking place-self: safe center safe center
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-002.html (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-002.html 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-002.html 2018-04-20 20:06:53 UTC (rev 230848)
@@ -9,7 +9,7 @@
<div id="log"></div>
<script>
let classes = Object.assign({"Auto":"auto", "Normal":"normal", "Stretch":"stretch"}, selfPositionClasses,
- baselineClasses);
+ baselineClasses, overflowClasses);
for (var key1 in classes) {
let alignValue = classes[key1];
let classes2 = Object.assign({"Left":"left", "Right":"right"}, classes);
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-004-expected.txt (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-004-expected.txt 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-004-expected.txt 2018-04-20 20:06:53 UTC (rev 230848)
@@ -1,5 +1,4 @@
-PASS Verify overflow keywords are invalid
PASS Verify fallback values are invalid
PASS Verify 'left' and 'right' values are invalid for block/cross axis alignment
PASS Verify numeric values are invalid
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-004.html (230847 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-004.html 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/self-alignment/place-self-shorthand-004.html 2018-04-20 20:06:53 UTC (rev 230848)
@@ -14,12 +14,7 @@
}
test(function() {
- checkInvalidValues("safe center")
- checkInvalidValues("unsafe center")
- }, "Verify overflow keywords are invalid");
-
- test(function() {
- checkInvalidValues("center space-between start")
+ checkInvalidValues("center end start")
}, "Verify fallback values are invalid");
test(function() {
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/w3c-import.log (0 => 230848)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/w3c-import.log (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/css-align/w3c-import.log 2018-04-20 20:06:53 UTC (rev 230848)
@@ -0,0 +1,17 @@
+The tests in this directory were imported from the W3C repository.
+Do NOT modify these tests directly in WebKit.
+Instead, create a pull request on the WPT github:
+ https://github.com/w3c/web-platform-tests
+
+Then run the Tools/Scripts/import-w3c-tests in WebKit to reimport
+
+Do NOT modify or remove this file.
+
+------------------------------------------------------------------------
+Properties requiring vendor prefixes:
+None
+Property values requiring vendor prefixes:
+None
+------------------------------------------------------------------------
+List of files:
+/LayoutTests/imported/w3c/web-platform-tests/css/css-align/OWNERS
Modified: trunk/Source/WebCore/ChangeLog (230847 => 230848)
--- trunk/Source/WebCore/ChangeLog 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/Source/WebCore/ChangeLog 2018-04-20 20:06:53 UTC (rev 230848)
@@ -1,3 +1,34 @@
+2018-04-20 Javier Fernandez <jfernan...@igalia.com>
+
+ Update Alignment shorthands to the spec now that they are not ambiguous
+ https://bugs.webkit.org/show_bug.cgi?id=184812
+
+ Reviewed by Antti Koivisto.
+
+ Now that the issue [1] about the syntax ambiguity has been resolved we
+ don't need to use the custom syntax anymore. The Alignment shorthands
+ use now the simple syntax, defined based on the longhands' syntax.
+
+ Since we allow all the values valid for each longhand, we'll update
+ in this CL the corresponding web platform tests. Additionally, this CL
+ updates also the shorthand serialization tests [2], which didn't
+ consider the new value 'legacy' for justify-items (and place-items) due
+ to the bug [3] Firefox still has pending to be fixed.
+
+ [1] https://github.com/w3c/csswg-drafts/issues/1001
+ [2] css/css-align/default-alignment/shorthand-serialization-001.html
+ [3] https://bugzilla.mozilla.org/show_bug.cgi?id=1363875
+
+ Tests: imported/w3c/web-platform-tests/css/css-align/default-alignment/shorthand-serialization-001.html
+ imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-computed-001.html
+ imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-used-001.html
+ imported/w3c/web-platform-tests/css/css-align/gaps/gap-normal-used-002.html
+
+ * css/parser/CSSPropertyParser.cpp:
+ (WebCore::CSSPropertyParser::consumePlaceContentShorthand): Using the justify-content and align-content parsing logic to parse the shorthand.
+ (WebCore::CSSPropertyParser::consumePlaceItemsShorthand): Using the justify-items and align-items parsing logic to parse the shorthand.
+ (WebCore::CSSPropertyParser::consumePlaceSelfShorthand): Using the justify-self and align-self parsing logic to parse the shorthand.
+
2018-04-20 Daniel Bates <daba...@apple.com>
Unreviewed, rolling out r230117.
Modified: trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp (230847 => 230848)
--- trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp 2018-04-20 19:39:52 UTC (rev 230847)
+++ trunk/Source/WebCore/css/parser/CSSPropertyParser.cpp 2018-04-20 20:06:53 UTC (rev 230848)
@@ -5514,23 +5514,6 @@
return true;
}
-static RefPtr<CSSValue> consumeSimplifiedContentPosition(CSSParserTokenRange& range, IsPositionKeyword isPositionKeyword)
-{
- ASSERT(isPositionKeyword);
- CSSValueID id = range.peek().id();
- if (identMatches<CSSValueNormal>(id) || isPositionKeyword(id))
- return CSSContentDistributionValue::create(CSSValueInvalid, range.consumeIncludingWhitespace().id(), CSSValueInvalid);
- if (isBaselineKeyword(id)) {
- RefPtr<CSSValue> baseline = consumeBaselineKeyword(range);
- if (!baseline)
- return nullptr;
- return CSSContentDistributionValue::create(CSSValueInvalid, getBaselineKeyword(baseline.releaseNonNull()), CSSValueInvalid);
- }
- if (isContentDistributionKeyword(id))
- return CSSContentDistributionValue::create(range.consumeIncludingWhitespace().id(), CSSValueInvalid, CSSValueInvalid);
- return nullptr;
-}
-
bool CSSPropertyParser::consumePlaceContentShorthand(bool important)
{
ASSERT(shorthandForProperty(CSSPropertyPlaceContent).length() == 2);
@@ -5538,8 +5521,9 @@
if (m_range.atEnd())
return false;
+ CSSParserTokenRange rangeCopy = m_range;
bool isBaseline = isBaselineKeyword(m_range.peek().id());
- RefPtr<CSSValue> alignContentValue = consumeSimplifiedContentPosition(m_range, isContentPositionKeyword);
+ RefPtr<CSSValue> alignContentValue = consumeContentDistributionOverflowPosition(m_range, isContentPositionKeyword);
if (!alignContentValue)
return false;
@@ -5549,7 +5533,9 @@
if (isBaselineKeyword(m_range.peek().id()))
return false;
- RefPtr<CSSValue> justifyContentValue = m_range.atEnd() ? alignContentValue : consumeSimplifiedContentPosition(m_range, isContentPositionOrLeftOrRightKeyword);
+ if (m_range.atEnd())
+ m_range = rangeCopy;
+ RefPtr<CSSValue> justifyContentValue = consumeContentDistributionOverflowPosition(m_range, isContentPositionOrLeftOrRightKeyword);
if (!justifyContentValue)
return false;
if (!m_range.atEnd())
@@ -5560,35 +5546,18 @@
return true;
}
-static RefPtr<CSSValue> consumeSimplifiedDefaultPosition(CSSParserTokenRange& range, IsPositionKeyword isPositionKeyword)
-{
- ASSERT(isPositionKeyword);
- CSSValueID id = range.peek().id();
- if (isNormalOrStretch(id) || isPositionKeyword(id))
- return consumeIdent(range);
-
- if (isBaselineKeyword(id))
- return consumeBaselineKeyword(range);
-
- return nullptr;
-}
-
-static RefPtr<CSSValue> consumeSimplifiedSelfPosition(CSSParserTokenRange& range, IsPositionKeyword isPositionKeyword)
-{
- ASSERT(isPositionKeyword);
- if (isAuto(range.peek().id()))
- return consumeIdent(range);
- return consumeSimplifiedDefaultPosition(range, isPositionKeyword);
-}
-
bool CSSPropertyParser::consumePlaceItemsShorthand(bool important)
{
ASSERT(shorthandForProperty(CSSPropertyPlaceItems).length() == 2);
- RefPtr<CSSValue> alignItemsValue = consumeSimplifiedDefaultPosition(m_range, isSelfPositionKeyword);
+ CSSParserTokenRange rangeCopy = m_range;
+ RefPtr<CSSValue> alignItemsValue = consumeAlignItems(m_range);
if (!alignItemsValue)
return false;
- RefPtr<CSSValue> justifyItemsValue = m_range.atEnd() ? alignItemsValue : consumeSimplifiedDefaultPosition(m_range, isSelfPositionOrLeftOrRightKeyword);
+
+ if (m_range.atEnd())
+ m_range = rangeCopy;
+ RefPtr<CSSValue> justifyItemsValue = consumeJustifyItems(m_range);
if (!justifyItemsValue)
return false;
@@ -5604,10 +5573,14 @@
{
ASSERT(shorthandForProperty(CSSPropertyPlaceSelf).length() == 2);
- RefPtr<CSSValue> alignSelfValue = consumeSimplifiedSelfPosition(m_range, isSelfPositionKeyword);
+ CSSParserTokenRange rangeCopy = m_range;
+ RefPtr<CSSValue> alignSelfValue = consumeSelfPositionOverflowPosition(m_range, isSelfPositionKeyword);
if (!alignSelfValue)
return false;
- RefPtr<CSSValue> justifySelfValue = m_range.atEnd() ? alignSelfValue : consumeSimplifiedSelfPosition(m_range, isSelfPositionOrLeftOrRightKeyword);
+
+ if (m_range.atEnd())
+ m_range = rangeCopy;
+ RefPtr<CSSValue> justifySelfValue = consumeSelfPositionOverflowPosition(m_range, isSelfPositionOrLeftOrRightKeyword);
if (!justifySelfValue)
return false;