Diff
Modified: trunk/LayoutTests/ChangeLog (277070 => 277071)
--- trunk/LayoutTests/ChangeLog 2021-05-06 07:14:59 UTC (rev 277070)
+++ trunk/LayoutTests/ChangeLog 2021-05-06 07:36:29 UTC (rev 277071)
@@ -1,3 +1,22 @@
+2021-05-06 Tim Nguyen <[email protected]>
+
+ [mediaqueries] Remove "on-demand" value for any-hover/hover & "forced" value for prefers-contrast
+ https://bugs.webkit.org/show_bug.cgi?id=225400
+
+ Reviewed by Antti Koivisto.
+
+ These were both removed from the spec and currently never evaluate to true. They also won't eval to true after this change.
+ Only change is serialization, since the values will become invalid.
+
+ Also:
+ - Re-synced css/mediaqueries WPTs
+ - Adjusted any-hover/hover parsing tests accordingly.
+
+ * fast/media/mq-any-hover-cssom.html:
+ * fast/media/mq-any-hover-cssom-expected.txt:
+ * fast/media/mq-hover-cssom.html:
+ * fast/media/mq-hover-cssom-expected.txt:
+
2021-05-05 Robert Jenner <[email protected]>
[ BigSur wk2 arm64 ] http/tests/inspector/network/resource-sizes-network.html is a flakey text failure
Modified: trunk/LayoutTests/fast/media/mq-any-hover-cssom-expected.txt (277070 => 277071)
--- trunk/LayoutTests/fast/media/mq-any-hover-cssom-expected.txt 2021-05-06 07:14:59 UTC (rev 277070)
+++ trunk/LayoutTests/fast/media/mq-any-hover-cssom-expected.txt 2021-05-06 07:36:29 UTC (rev 277071)
@@ -13,8 +13,6 @@
PASS document.styleSheets[1].cssRules[0].media.mediaText is "(any-hover: hover)"
PASS document.styleSheets[1].cssRules[0].media.mediaText is "(any-hover: hover)"
PASS document.styleSheets[1].cssRules[0].media.mediaText is "(any-hover: hover)"
-PASS document.styleSheets[1].cssRules[0].media.mediaText is "(any-hover: on-demand)"
-PASS document.styleSheets[1].cssRules[0].media.mediaText is "(any-hover: on-demand)"
PASS document.styleSheets[1].cssRules[0].media.mediaText is "(any-hover: none)"
PASS document.styleSheets[1].cssRules[0].media.mediaText is "(any-hover: none)"
PASS document.styleSheets[1].cssRules[0].media.mediaText is "(any-hover: hover)"
@@ -23,6 +21,8 @@
PASS document.styleSheets[1].cssRules[0].media.mediaText is "(any-hover: hover)"
PASS document.styleSheets[1].cssRules[0].media.mediaText is "(any-hover: hover)"
PASS document.styleSheets[1].cssRules[0].media.mediaText is "(any-hover: hover)"
+PASS document.styleSheets[1].cssRules[0].media.mediaText is "not all"
+PASS document.styleSheets[1].cssRules[0].media.mediaText is "not all"
PASS successfullyParsed is true
TEST COMPLETE
Modified: trunk/LayoutTests/fast/media/mq-any-hover-cssom.html (277070 => 277071)
--- trunk/LayoutTests/fast/media/mq-any-hover-cssom.html 2021-05-06 07:14:59 UTC (rev 277070)
+++ trunk/LayoutTests/fast/media/mq-any-hover-cssom.html 2021-05-06 07:36:29 UTC (rev 277071)
@@ -19,8 +19,6 @@
["(Any-Hover: hover)", "(any-hover: hover)"],
["(ANY-HOVER: hover)", "(any-hover: hover)"],
["(Any-Hover: Hover)", "(any-hover: hover)"],
- ["(any-hover: ON-DEMAND)", "(any-hover: on-demand)"],
- ["(Any-Hover: On-demand)", "(any-hover: on-demand)"],
["(any-hover: NONE)", "(any-hover: none)"],
["(Any-Hover: None)", "(any-hover: none)"],
@@ -31,6 +29,10 @@
["(any-hover : hover)", "(any-hover: hover)"],
["( any-hover : hover )", "(any-hover: hover)"],
["(any-hover\t:\thover)", "(any-hover: hover)"],
+
+ // Obsolete values.
+ ["(any-hover: ON-DEMAND)", "not all"],
+ ["(Any-Hover: On-demand)", "not all"],
];
var targetStyle = document.getElementById('target-style');
Modified: trunk/LayoutTests/fast/media/mq-hover-cssom-expected.txt (277070 => 277071)
--- trunk/LayoutTests/fast/media/mq-hover-cssom-expected.txt 2021-05-06 07:14:59 UTC (rev 277070)
+++ trunk/LayoutTests/fast/media/mq-hover-cssom-expected.txt 2021-05-06 07:36:29 UTC (rev 277071)
@@ -13,8 +13,6 @@
PASS document.styleSheets[1].cssRules[0].media.mediaText is "(hover: hover)"
PASS document.styleSheets[1].cssRules[0].media.mediaText is "(hover: hover)"
PASS document.styleSheets[1].cssRules[0].media.mediaText is "(hover: hover)"
-PASS document.styleSheets[1].cssRules[0].media.mediaText is "(hover: on-demand)"
-PASS document.styleSheets[1].cssRules[0].media.mediaText is "(hover: on-demand)"
PASS document.styleSheets[1].cssRules[0].media.mediaText is "(hover: none)"
PASS document.styleSheets[1].cssRules[0].media.mediaText is "(hover: none)"
PASS document.styleSheets[1].cssRules[0].media.mediaText is "(hover: hover)"
@@ -23,6 +21,8 @@
PASS document.styleSheets[1].cssRules[0].media.mediaText is "(hover: hover)"
PASS document.styleSheets[1].cssRules[0].media.mediaText is "(hover: hover)"
PASS document.styleSheets[1].cssRules[0].media.mediaText is "(hover: hover)"
+PASS document.styleSheets[1].cssRules[0].media.mediaText is "not all"
+PASS document.styleSheets[1].cssRules[0].media.mediaText is "not all"
PASS successfullyParsed is true
TEST COMPLETE
Modified: trunk/LayoutTests/fast/media/mq-hover-cssom.html (277070 => 277071)
--- trunk/LayoutTests/fast/media/mq-hover-cssom.html 2021-05-06 07:14:59 UTC (rev 277070)
+++ trunk/LayoutTests/fast/media/mq-hover-cssom.html 2021-05-06 07:36:29 UTC (rev 277071)
@@ -19,8 +19,6 @@
["(Hover: hover)", "(hover: hover)"],
["(HOVER: hover)", "(hover: hover)"],
["(Hover: Hover)", "(hover: hover)"],
- ["(hover: ON-DEMAND)", "(hover: on-demand)"],
- ["(Hover: On-demand)", "(hover: on-demand)"],
["(hover: NONE)", "(hover: none)"],
["(Hover: None)", "(hover: none)"],
@@ -31,6 +29,10 @@
["(hover : hover)", "(hover: hover)"],
["( hover : hover )", "(hover: hover)"],
["(hover\t:\thover)", "(hover: hover)"],
+
+ // Obsolete values.
+ ["(hover: ON-DEMAND)", "not all"],
+ ["(Hover: On-demand)", "not all"],
];
var targetStyle = document.getElementById('target-style');
Modified: trunk/LayoutTests/imported/w3c/ChangeLog (277070 => 277071)
--- trunk/LayoutTests/imported/w3c/ChangeLog 2021-05-06 07:14:59 UTC (rev 277070)
+++ trunk/LayoutTests/imported/w3c/ChangeLog 2021-05-06 07:36:29 UTC (rev 277071)
@@ -1,5 +1,27 @@
2021-05-06 Tim Nguyen <[email protected]>
+ [mediaqueries] Remove "on-demand" value for any-hover/hover & "forced" value for prefers-contrast
+ https://bugs.webkit.org/show_bug.cgi?id=225400
+
+ Reviewed by Antti Koivisto.
+
+ These were both removed from the spec and currently never evaluate to true. They also won't eval to true after this change.
+ Only change is serialization, since the values will become invalid.
+
+ Also:
+ - Re-synced css/mediaqueries WPTs
+ - Adjusted any-hover/hover parsing tests accordingly.
+
+ * web-platform-tests/css/mediaqueries/mq-dynamic-empty-children-expected.txt: Added.
+ * web-platform-tests/css/mediaqueries/mq-dynamic-empty-children.html: Added.
+ * web-platform-tests/css/mediaqueries/prefers-contrast-expected.txt: Added.
+ * web-platform-tests/css/mediaqueries/prefers-contrast.html: Added.
+ * web-platform-tests/css/mediaqueries/test_media_queries-expected.txt:
+ * web-platform-tests/css/mediaqueries/test_media_queries.html:
+ * web-platform-tests/css/mediaqueries/w3c-import.log:
+
+2021-05-06 Tim Nguyen <[email protected]>
+
Re-sync css/css-box/parsing/padding-valid.html WPT
Unreviewed. Trivial WPT sync on one single test.
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/mq-dynamic-empty-children-expected.txt (0 => 277071)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/mq-dynamic-empty-children-expected.txt (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/mq-dynamic-empty-children-expected.txt 2021-05-06 07:36:29 UTC (rev 277071)
@@ -0,0 +1,4 @@
+
+
+PASS Dynamic evaluation of media queries works fine in presence of empty media rule
+
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/mq-dynamic-empty-children.html (0 => 277071)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/mq-dynamic-empty-children.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/mq-dynamic-empty-children.html 2021-05-06 07:36:29 UTC (rev 277071)
@@ -0,0 +1,40 @@
+<!doctype html>
+<title>Dynamic evaluation of media queries works fine in presence of empty media rule</title>
+<link rel="author" href="" title="Emilio Cobos Álvarez">
+<link rel="author" href="" title="Mozilla">
+<link rel="help" href=""
+<link rel="help" href=""
+<script src=""
+<script src=""
+<iframe width=500 height=300 frameborder=0></iframe>
+<script>
+let iframe = document.querySelector("iframe");
+promise_test(async function (t) {
+ await new Promise(resolve => {
+ window.addEventListener("load", resolve);
+ });
+ let frameLoaded = new Promise(resolve => {
+ iframe.addEventListener("load", resolve);
+ });
+ iframe.srcdoc = `
+ <style>
+ :root { background-color: red; }
+ /* This one should never apply */
+ @media (min-width: 1500px) {}
+ /* This one should change and start matching */
+ @media (max-width: 400px) {
+ :root { background-color: lime; }
+ }
+ </style>
+ `;
+ await frameLoaded;
+
+ function getColor() {
+ return iframe.contentWindow.getComputedStyle(iframe.contentDocument.documentElement).backgroundColor;
+ }
+
+ assert_equals(getColor(), "rgb(255, 0, 0)", "Should start red");
+ iframe.width = 400;
+ assert_equals(getColor(), "rgb(0, 255, 0)", "Should turn green");
+});
+</script>
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/prefers-contrast-expected.txt (0 => 277071)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/prefers-contrast-expected.txt (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/prefers-contrast-expected.txt 2021-05-06 07:36:29 UTC (rev 277071)
@@ -0,0 +1,31 @@
+
+PASS Should be parseable in a CSS stylesheet: '(prefers-contrast)'
+PASS Should be parseable in a CSS stylesheet: '(prefers-contrast: no-preference)'
+PASS Should be parseable in a CSS stylesheet: '(prefers-contrast: more)'
+PASS Should be parseable in a CSS stylesheet: '(prefers-contrast: less)'
+PASS Should not be parseable in a CSS stylesheet: '(prefers-contrast: increase)'
+PASS Should not be parseable in a CSS stylesheet: '(prefers-contrast: none)'
+PASS Should not be parseable in a CSS stylesheet: '(prefers-contrast: forced high)'
+PASS Should not be parseable in a CSS stylesheet: '(prefers-contrast: forced low)'
+PASS Should not be parseable in a CSS stylesheet: '(prefers-contrast > increase)'
+PASS Should not be parseable in a CSS stylesheet: '(prefers-increased-contrast)'
+PASS Should not be parseable in a CSS stylesheet: '(prefers-decreased-contrast)'
+PASS Should not be parseable in a CSS stylesheet: '(prefers-contrast: high)'
+PASS Should not be parseable in a CSS stylesheet: '(prefers-contrast: low)'
+PASS Should not be parseable in a CSS stylesheet: '(prefers-contrast: forced)'
+PASS Should be parseable in JS: '(prefers-contrast)'
+PASS Should be parseable in JS: '(prefers-contrast: no-preference)'
+PASS Should be parseable in JS: '(prefers-contrast: more)'
+PASS Should be parseable in JS: '(prefers-contrast: less)'
+PASS Should not be parseable in JS: '(prefers-contrast: increase)'
+PASS Should not be parseable in JS: '(prefers-contrast: none)'
+PASS Should not be parseable in JS: '(prefers-contrast: forced high)'
+PASS Should not be parseable in JS: '(prefers-contrast: forced low)'
+PASS Should not be parseable in JS: '(prefers-contrast > increase)'
+PASS Should not be parseable in JS: '(prefers-increased-contrast)'
+PASS Should not be parseable in JS: '(prefers-decreased-contrast)'
+PASS Should not be parseable in JS: '(prefers-contrast: high)'
+PASS Should not be parseable in JS: '(prefers-contrast: low)'
+PASS Should not be parseable in JS: '(prefers-contrast: forced)'
+PASS Check boolean context evaluation.
+
Added: trunk/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/prefers-contrast.html (0 => 277071)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/prefers-contrast.html (rev 0)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/prefers-contrast.html 2021-05-06 07:36:29 UTC (rev 277071)
@@ -0,0 +1,51 @@
+<!DOCTYPE html>
+<link rel="help" href="" />
+<script type="text/_javascript_" src=""
+<script type="text/_javascript_" src=""
+
+<script type="text/_javascript_" src=""
+<script>
+query_should_be_css_parseable("(prefers-contrast)");
+query_should_be_css_parseable("(prefers-contrast: no-preference)");
+query_should_be_css_parseable("(prefers-contrast: more)");
+query_should_be_css_parseable("(prefers-contrast: less)");
+
+query_should_not_be_css_parseable("(prefers-contrast: increase)");
+query_should_not_be_css_parseable("(prefers-contrast: none)");
+query_should_not_be_css_parseable("(prefers-contrast: forced high)");
+query_should_not_be_css_parseable("(prefers-contrast: forced low)");
+query_should_not_be_css_parseable("(prefers-contrast > increase)");
+query_should_not_be_css_parseable("(prefers-increased-contrast)");
+query_should_not_be_css_parseable("(prefers-decreased-contrast)");
+query_should_not_be_css_parseable("(prefers-contrast: high)");
+query_should_not_be_css_parseable("(prefers-contrast: low)");
+query_should_not_be_css_parseable("(prefers-contrast: forced)");
+
+query_should_be_js_parseable("(prefers-contrast)");
+query_should_be_js_parseable("(prefers-contrast: no-preference)");
+query_should_be_js_parseable("(prefers-contrast: more)");
+query_should_be_js_parseable("(prefers-contrast: less)");
+
+query_should_not_be_js_parseable("(prefers-contrast: increase)");
+query_should_not_be_js_parseable("(prefers-contrast: none)");
+query_should_not_be_js_parseable("(prefers-contrast: forced high)");
+query_should_not_be_js_parseable("(prefers-contrast: forced low)");
+query_should_not_be_js_parseable("(prefers-contrast > increase)");
+query_should_not_be_js_parseable("(prefers-increased-contrast)");
+query_should_not_be_js_parseable("(prefers-decreased-contrast)");
+query_should_not_be_js_parseable("(prefers-contrast: high)");
+query_should_not_be_js_parseable("(prefers-contrast: low)");
+query_should_not_be_js_parseable("(prefers-contrast: forced)");
+
+test(() => {
+ // no-preference is the default and all other values evaluate to
+ // true in the boolean context. If no-preference matches, then
+ // boolean context should be false. If no-preference does not match
+ // then boolean context should be true. Therefore, these two values
+ // should always be each others inverse irrespective of OS level
+ // settings.
+ let booleanContext = window.matchMedia("(prefers-contrast)");
+ let noPref = window.matchMedia("(prefers-contrast: no-preference)");
+ assert_equals(noPref.matches, !booleanContext.matches);
+}, "Check boolean context evaluation.");
+</script>
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries-expected.txt (277070 => 277071)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries-expected.txt 2021-05-06 07:14:59 UTC (rev 277070)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries-expected.txt 2021-05-06 07:36:29 UTC (rev 277071)
@@ -64,7 +64,7 @@
PASS subtest_60
PASS subtest_61
PASS subtest_62
-FAIL subtest_63 assert_true: expected true got false
+PASS subtest_63
FAIL subtest_64 assert_true: expected true got false
FAIL subtest_65 assert_true: expected true got false
FAIL subtest_66 assert_true: expected true got false
@@ -72,7 +72,7 @@
FAIL subtest_68 assert_true: expected true got false
FAIL subtest_69 assert_true: expected true got false
FAIL subtest_70 assert_true: expected true got false
-PASS subtest_71
+FAIL subtest_71 assert_true: expected true got false
PASS subtest_72
PASS subtest_73
PASS subtest_74
@@ -79,7 +79,7 @@
PASS subtest_75
PASS subtest_76
PASS subtest_77
-FAIL subtest_78 assert_true: expected true got false
+PASS subtest_78
FAIL subtest_79 assert_true: expected true got false
FAIL subtest_80 assert_true: expected true got false
FAIL subtest_81 assert_true: expected true got false
@@ -87,7 +87,7 @@
FAIL subtest_83 assert_true: expected true got false
FAIL subtest_84 assert_true: expected true got false
FAIL subtest_85 assert_true: expected true got false
-PASS subtest_86
+FAIL subtest_86 assert_true: expected true got false
PASS subtest_87
PASS subtest_88
PASS subtest_89
@@ -94,8 +94,8 @@
PASS subtest_90
PASS subtest_91
PASS subtest_92
-FAIL subtest_93 assert_true: expected true got false
-FAIL subtest_94 assert_true: expected true got false
+PASS subtest_93
+PASS subtest_94
FAIL subtest_95 assert_true: expected true got false
FAIL subtest_96 assert_true: expected true got false
FAIL subtest_97 assert_true: expected true got false
@@ -102,8 +102,8 @@
FAIL subtest_98 assert_true: expected true got false
FAIL subtest_99 assert_true: expected true got false
FAIL subtest_100 assert_true: expected true got false
-PASS subtest_101
-PASS subtest_102
+FAIL subtest_101 assert_true: expected true got false
+FAIL subtest_102 assert_true: expected true got false
PASS subtest_103
PASS subtest_104
PASS subtest_105
@@ -127,8 +127,8 @@
PASS subtest_123
PASS subtest_124
PASS subtest_125
-FAIL subtest_126 assert_true: expected true got false
-FAIL subtest_127 assert_true: expected true got false
+PASS subtest_126
+PASS subtest_127
FAIL subtest_128 assert_true: expected true got false
FAIL subtest_129 assert_true: expected true got false
FAIL subtest_130 assert_true: expected true got false
@@ -135,15 +135,15 @@
FAIL subtest_131 assert_true: expected true got false
FAIL subtest_132 assert_true: expected true got false
FAIL subtest_133 assert_true: expected true got false
-PASS subtest_134
-PASS subtest_135
+FAIL subtest_134 assert_true: expected true got false
+FAIL subtest_135 assert_true: expected true got false
PASS subtest_136
PASS subtest_137
PASS subtest_138
PASS subtest_139
PASS subtest_140
-FAIL subtest_141 assert_true: expected true got false
-FAIL subtest_142 assert_true: expected true got false
+PASS subtest_141
+PASS subtest_142
FAIL subtest_143 assert_true: expected true got false
FAIL subtest_144 assert_true: expected true got false
FAIL subtest_145 assert_true: expected true got false
@@ -150,55 +150,55 @@
FAIL subtest_146 assert_true: expected true got false
FAIL subtest_147 assert_true: expected true got false
FAIL subtest_148 assert_true: expected true got false
-PASS subtest_149
-PASS subtest_150
+FAIL subtest_149 assert_true: expected true got false
+FAIL subtest_150 assert_true: expected true got false
PASS subtest_151
PASS subtest_152
PASS subtest_153
PASS subtest_154
PASS subtest_155
-FAIL subtest_156 assert_true: expected true got false
-FAIL subtest_157 assert_true: expected true got false
-FAIL subtest_158 assert_true: expected true got false
+PASS subtest_156
+PASS subtest_157
+PASS subtest_158
FAIL subtest_159 assert_true: expected true got false
FAIL subtest_160 assert_true: expected true got false
FAIL subtest_161 assert_true: expected true got false
FAIL subtest_162 assert_true: expected true got false
FAIL subtest_163 assert_true: expected true got false
-PASS subtest_164
-PASS subtest_165
-PASS subtest_166
+FAIL subtest_164 assert_true: expected true got false
+FAIL subtest_165 assert_true: expected true got false
+FAIL subtest_166 assert_true: expected true got false
PASS subtest_167
PASS subtest_168
PASS subtest_169
PASS subtest_170
-FAIL subtest_171 assert_true: expected true got false
-FAIL subtest_172 assert_true: expected true got false
-FAIL subtest_173 assert_true: expected true got false
+PASS subtest_171
+PASS subtest_172
+PASS subtest_173
FAIL subtest_174 assert_true: expected true got false
FAIL subtest_175 assert_true: expected true got false
FAIL subtest_176 assert_true: expected true got false
FAIL subtest_177 assert_true: expected true got false
FAIL subtest_178 assert_true: expected true got false
-PASS subtest_179
-PASS subtest_180
-PASS subtest_181
+FAIL subtest_179 assert_true: expected true got false
+FAIL subtest_180 assert_true: expected true got false
+FAIL subtest_181 assert_true: expected true got false
PASS subtest_182
PASS subtest_183
PASS subtest_184
PASS subtest_185
-FAIL subtest_186 assert_true: expected true got false
-FAIL subtest_187 assert_true: expected true got false
-FAIL subtest_188 assert_true: expected true got false
-FAIL subtest_189 assert_true: expected true got false
+PASS subtest_186
+PASS subtest_187
+PASS subtest_188
+PASS subtest_189
FAIL subtest_190 assert_true: expected true got false
FAIL subtest_191 assert_true: expected true got false
FAIL subtest_192 assert_true: expected true got false
FAIL subtest_193 assert_true: expected true got false
-PASS subtest_194
-PASS subtest_195
-PASS subtest_196
-PASS subtest_197
+FAIL subtest_194 assert_true: expected true got false
+FAIL subtest_195 assert_true: expected true got false
+FAIL subtest_196 assert_true: expected true got false
+FAIL subtest_197 assert_true: expected true got false
PASS subtest_198
PASS subtest_199
PASS subtest_200
@@ -220,80 +220,80 @@
PASS subtest_216
PASS subtest_217
PASS subtest_218
-FAIL subtest_219 assert_true: expected true got false
-FAIL subtest_220 assert_true: expected true got false
-FAIL subtest_221 assert_true: expected true got false
-FAIL subtest_222 assert_true: expected true got false
+PASS subtest_219
+PASS subtest_220
+PASS subtest_221
+PASS subtest_222
FAIL subtest_223 assert_true: expected true got false
FAIL subtest_224 assert_true: expected true got false
FAIL subtest_225 assert_true: expected true got false
FAIL subtest_226 assert_true: expected true got false
-PASS subtest_227
-PASS subtest_228
-PASS subtest_229
-PASS subtest_230
+FAIL subtest_227 assert_true: expected true got false
+FAIL subtest_228 assert_true: expected true got false
+FAIL subtest_229 assert_true: expected true got false
+FAIL subtest_230 assert_true: expected true got false
PASS subtest_231
PASS subtest_232
PASS subtest_233
-FAIL subtest_234 assert_true: expected true got false
-FAIL subtest_235 assert_true: expected true got false
-FAIL subtest_236 assert_true: expected true got false
-FAIL subtest_237 assert_true: expected true got false
+PASS subtest_234
+PASS subtest_235
+PASS subtest_236
+PASS subtest_237
FAIL subtest_238 assert_true: expected true got false
FAIL subtest_239 assert_true: expected true got false
FAIL subtest_240 assert_true: expected true got false
FAIL subtest_241 assert_true: expected true got false
-PASS subtest_242
-PASS subtest_243
-PASS subtest_244
-PASS subtest_245
+FAIL subtest_242 assert_true: expected true got false
+FAIL subtest_243 assert_true: expected true got false
+FAIL subtest_244 assert_true: expected true got false
+FAIL subtest_245 assert_true: expected true got false
PASS subtest_246
PASS subtest_247
PASS subtest_248
-FAIL subtest_249 assert_true: expected true got false
-FAIL subtest_250 assert_true: expected true got false
-FAIL subtest_251 assert_true: expected true got false
-FAIL subtest_252 assert_true: expected true got false
-FAIL subtest_253 assert_true: expected true got false
+PASS subtest_249
+PASS subtest_250
+PASS subtest_251
+PASS subtest_252
+PASS subtest_253
FAIL subtest_254 assert_true: expected true got false
FAIL subtest_255 assert_true: expected true got false
FAIL subtest_256 assert_true: expected true got false
-PASS subtest_257
-PASS subtest_258
-PASS subtest_259
-PASS subtest_260
-PASS subtest_261
+FAIL subtest_257 assert_true: expected true got false
+FAIL subtest_258 assert_true: expected true got false
+FAIL subtest_259 assert_true: expected true got false
+FAIL subtest_260 assert_true: expected true got false
+FAIL subtest_261 assert_true: expected true got false
PASS subtest_262
PASS subtest_263
-FAIL subtest_264 assert_true: expected true got false
-FAIL subtest_265 assert_true: expected true got false
-FAIL subtest_266 assert_true: expected true got false
-FAIL subtest_267 assert_true: expected true got false
-FAIL subtest_268 assert_true: expected true got false
+PASS subtest_264
+PASS subtest_265
+PASS subtest_266
+PASS subtest_267
+PASS subtest_268
FAIL subtest_269 assert_true: expected true got false
FAIL subtest_270 assert_true: expected true got false
FAIL subtest_271 assert_true: expected true got false
-PASS subtest_272
-PASS subtest_273
-PASS subtest_274
-PASS subtest_275
-PASS subtest_276
+FAIL subtest_272 assert_true: expected true got false
+FAIL subtest_273 assert_true: expected true got false
+FAIL subtest_274 assert_true: expected true got false
+FAIL subtest_275 assert_true: expected true got false
+FAIL subtest_276 assert_true: expected true got false
PASS subtest_277
PASS subtest_278
-FAIL subtest_279 assert_true: expected true got false
-FAIL subtest_280 assert_true: expected true got false
-FAIL subtest_281 assert_true: expected true got false
-FAIL subtest_282 assert_true: expected true got false
-FAIL subtest_283 assert_true: expected true got false
-FAIL subtest_284 assert_true: expected true got false
+PASS subtest_279
+PASS subtest_280
+PASS subtest_281
+PASS subtest_282
+PASS subtest_283
+PASS subtest_284
FAIL subtest_285 assert_true: expected true got false
FAIL subtest_286 assert_true: expected true got false
-PASS subtest_287
-PASS subtest_288
-PASS subtest_289
-PASS subtest_290
-PASS subtest_291
-PASS subtest_292
+FAIL subtest_287 assert_true: expected true got false
+FAIL subtest_288 assert_true: expected true got false
+FAIL subtest_289 assert_true: expected true got false
+FAIL subtest_290 assert_true: expected true got false
+FAIL subtest_291 assert_true: expected true got false
+FAIL subtest_292 assert_true: expected true got false
PASS subtest_293
PASS subtest_294
PASS subtest_295
@@ -313,83 +313,83 @@
PASS subtest_309
PASS subtest_310
PASS subtest_311
-FAIL subtest_312 assert_true: expected true got false
-FAIL subtest_313 assert_true: expected true got false
-FAIL subtest_314 assert_true: expected true got false
-FAIL subtest_315 assert_true: expected true got false
-FAIL subtest_316 assert_true: expected true got false
-FAIL subtest_317 assert_true: expected true got false
+PASS subtest_312
+PASS subtest_313
+PASS subtest_314
+PASS subtest_315
+PASS subtest_316
+PASS subtest_317
FAIL subtest_318 assert_true: expected true got false
FAIL subtest_319 assert_true: expected true got false
-PASS subtest_320
-PASS subtest_321
-PASS subtest_322
-PASS subtest_323
-PASS subtest_324
-PASS subtest_325
+FAIL subtest_320 assert_true: expected true got false
+FAIL subtest_321 assert_true: expected true got false
+FAIL subtest_322 assert_true: expected true got false
+FAIL subtest_323 assert_true: expected true got false
+FAIL subtest_324 assert_true: expected true got false
+FAIL subtest_325 assert_true: expected true got false
PASS subtest_326
-FAIL subtest_327 assert_true: expected true got false
-FAIL subtest_328 assert_true: expected true got false
-FAIL subtest_329 assert_true: expected true got false
-FAIL subtest_330 assert_true: expected true got false
-FAIL subtest_331 assert_true: expected true got false
-FAIL subtest_332 assert_true: expected true got false
+PASS subtest_327
+PASS subtest_328
+PASS subtest_329
+PASS subtest_330
+PASS subtest_331
+PASS subtest_332
FAIL subtest_333 assert_true: expected true got false
FAIL subtest_334 assert_true: expected true got false
-PASS subtest_335
-PASS subtest_336
-PASS subtest_337
-PASS subtest_338
-PASS subtest_339
-PASS subtest_340
+FAIL subtest_335 assert_true: expected true got false
+FAIL subtest_336 assert_true: expected true got false
+FAIL subtest_337 assert_true: expected true got false
+FAIL subtest_338 assert_true: expected true got false
+FAIL subtest_339 assert_true: expected true got false
+FAIL subtest_340 assert_true: expected true got false
PASS subtest_341
-FAIL subtest_342 assert_true: expected true got false
-FAIL subtest_343 assert_true: expected true got false
-FAIL subtest_344 assert_true: expected true got false
-FAIL subtest_345 assert_true: expected true got false
-FAIL subtest_346 assert_true: expected true got false
-FAIL subtest_347 assert_true: expected true got false
-FAIL subtest_348 assert_true: expected true got false
+PASS subtest_342
+PASS subtest_343
+PASS subtest_344
+PASS subtest_345
+PASS subtest_346
+PASS subtest_347
+PASS subtest_348
FAIL subtest_349 assert_true: expected true got false
-PASS subtest_350
-PASS subtest_351
-PASS subtest_352
-PASS subtest_353
-PASS subtest_354
-PASS subtest_355
-PASS subtest_356
-FAIL subtest_357 assert_true: expected true got false
-FAIL subtest_358 assert_true: expected true got false
-FAIL subtest_359 assert_true: expected true got false
-FAIL subtest_360 assert_true: expected true got false
-FAIL subtest_361 assert_true: expected true got false
-FAIL subtest_362 assert_true: expected true got false
-FAIL subtest_363 assert_true: expected true got false
+FAIL subtest_350 assert_true: expected true got false
+FAIL subtest_351 assert_true: expected true got false
+FAIL subtest_352 assert_true: expected true got false
+FAIL subtest_353 assert_true: expected true got false
+FAIL subtest_354 assert_true: expected true got false
+FAIL subtest_355 assert_true: expected true got false
+FAIL subtest_356 assert_true: expected true got false
+PASS subtest_357
+PASS subtest_358
+PASS subtest_359
+PASS subtest_360
+PASS subtest_361
+PASS subtest_362
+PASS subtest_363
FAIL subtest_364 assert_true: expected true got false
-PASS subtest_365
-PASS subtest_366
-PASS subtest_367
-PASS subtest_368
-PASS subtest_369
-PASS subtest_370
-PASS subtest_371
-FAIL subtest_372 assert_true: expected true got false
-FAIL subtest_373 assert_true: expected true got false
-FAIL subtest_374 assert_true: expected true got false
-FAIL subtest_375 assert_true: expected true got false
-FAIL subtest_376 assert_true: expected true got false
-FAIL subtest_377 assert_true: expected true got false
-FAIL subtest_378 assert_true: expected true got false
-FAIL subtest_379 assert_true: expected true got false
-PASS subtest_380
-PASS subtest_381
-PASS subtest_382
-PASS subtest_383
-PASS subtest_384
-PASS subtest_385
-PASS subtest_386
-PASS subtest_387
-FAIL subtest_388 assert_true: expected true got false
+FAIL subtest_365 assert_true: expected true got false
+FAIL subtest_366 assert_true: expected true got false
+FAIL subtest_367 assert_true: expected true got false
+FAIL subtest_368 assert_true: expected true got false
+FAIL subtest_369 assert_true: expected true got false
+FAIL subtest_370 assert_true: expected true got false
+FAIL subtest_371 assert_true: expected true got false
+PASS subtest_372
+PASS subtest_373
+PASS subtest_374
+PASS subtest_375
+PASS subtest_376
+PASS subtest_377
+PASS subtest_378
+PASS subtest_379
+FAIL subtest_380 assert_true: expected true got false
+FAIL subtest_381 assert_true: expected true got false
+FAIL subtest_382 assert_true: expected true got false
+FAIL subtest_383 assert_true: expected true got false
+FAIL subtest_384 assert_true: expected true got false
+FAIL subtest_385 assert_true: expected true got false
+FAIL subtest_386 assert_true: expected true got false
+FAIL subtest_387 assert_true: expected true got false
+PASS subtest_388
PASS subtest_389
PASS subtest_390
PASS subtest_391
@@ -396,128 +396,128 @@
PASS subtest_392
PASS subtest_393
PASS subtest_394
-PASS subtest_395
-PASS subtest_396
-PASS subtest_397
-PASS subtest_398
-PASS subtest_399
-PASS subtest_400
-PASS subtest_401
-PASS subtest_402
-FAIL subtest_403 assert_true: expected true got false
-FAIL subtest_404 assert_true: expected true got false
-PASS subtest_405
-PASS subtest_406
-FAIL subtest_407 assert_true: expected true got false
-FAIL subtest_408 assert_true: expected true got false
-PASS subtest_409
-PASS subtest_410
-FAIL subtest_411 assert_true: expected true got false
-FAIL subtest_412 assert_true: expected true got false
-PASS subtest_413
-PASS subtest_414
-PASS subtest_415
-FAIL subtest_416 assert_true: expected true got false
-PASS subtest_417
-PASS subtest_418
-PASS subtest_419
-PASS subtest_420
-PASS subtest_421
-PASS subtest_422
-PASS subtest_423
-PASS subtest_424
-PASS subtest_425
-PASS subtest_426
-PASS subtest_427
-PASS subtest_428
-PASS subtest_429
-PASS subtest_430
-FAIL subtest_431 assert_true: expected true got false
-FAIL subtest_432 assert_true: expected true got false
-PASS subtest_433
-PASS subtest_434
-FAIL subtest_435 assert_true: expected true got false
-FAIL subtest_436 assert_true: expected true got false
-PASS subtest_437
-PASS subtest_438
-FAIL subtest_439 assert_true: expected true got false
-FAIL subtest_440 assert_true: expected true got false
-PASS subtest_441
-PASS subtest_442
-PASS subtest_443
-FAIL subtest_444 assert_true: expected true got false
-PASS subtest_445
-PASS subtest_446
-PASS subtest_447
-PASS subtest_448
-PASS subtest_449
-PASS subtest_450
-PASS subtest_451
-PASS subtest_452
-PASS subtest_453
-PASS subtest_454
-PASS subtest_455
-PASS subtest_456
-PASS subtest_457
-PASS subtest_458
-FAIL subtest_459 assert_true: expected true got false
-FAIL subtest_460 assert_true: expected true got false
-PASS subtest_461
-PASS subtest_462
-FAIL subtest_463 assert_true: expected true got false
-FAIL subtest_464 assert_true: expected true got false
-PASS subtest_465
-PASS subtest_466
-FAIL subtest_467 assert_true: expected true got false
-FAIL subtest_468 assert_true: expected true got false
-PASS subtest_469
-PASS subtest_470
-PASS subtest_471
-FAIL subtest_472 assert_true: expected true got false
-PASS subtest_473
-PASS subtest_474
-PASS subtest_475
-PASS subtest_476
-PASS subtest_477
-PASS subtest_478
-PASS subtest_479
-PASS subtest_480
-PASS subtest_481
-PASS subtest_482
-PASS subtest_483
-PASS subtest_484
-PASS subtest_485
-PASS subtest_486
-FAIL subtest_487 assert_true: expected true got false
-FAIL subtest_488 assert_true: expected true got false
-PASS subtest_489
-PASS subtest_490
-FAIL subtest_491 assert_true: expected true got false
-FAIL subtest_492 assert_true: expected true got false
-PASS subtest_493
-PASS subtest_494
-FAIL subtest_495 assert_true: expected true got false
-FAIL subtest_496 assert_true: expected true got false
-PASS subtest_497
-PASS subtest_498
-PASS subtest_499
-PASS subtest_500
-PASS subtest_501
-PASS subtest_502
-PASS subtest_503
-PASS subtest_504
-PASS subtest_505
-PASS subtest_506
-PASS subtest_507
-PASS subtest_508
-PASS subtest_509
-PASS subtest_510
-PASS subtest_511
-PASS subtest_512
-PASS subtest_513
-PASS subtest_514
-PASS subtest_515
-PASS subtest_516
+PASS subtest_395: all and (width: 117px) should apply
+FAIL subtest_396: all and (width = 117px) should apply assert_true: expected true got false
+PASS subtest_397: all and (width: 118px) should not apply
+PASS subtest_398: all and (width: 116px) should not apply
+PASS subtest_399: all and (width = 118px) should not apply
+PASS subtest_400: all and (width = 116px) should not apply
+PASS subtest_401: all and (min-width: 117px) should apply
+PASS subtest_402: all and (min-width: 118px) should not apply
+PASS subtest_403: all and (min-width: 116px) should apply
+PASS subtest_404: all and (max-width: 117px) should apply
+PASS subtest_405: all and (max-width: 118px) should apply
+PASS subtest_406: all and (max-width: 116px) should not apply
+PASS subtest_407: all and (min-width: 9em) should not apply
+PASS subtest_408: all and (min-width: 6em) should apply
+PASS subtest_409: all and (max-width: 9em) should apply
+PASS subtest_410: all and (max-width: 6em) should not apply
+FAIL subtest_411: (width <= 117px) should apply assert_true: expected true got false
+FAIL subtest_412: (width >= 117px) should apply assert_true: expected true got false
+PASS subtest_413: (width < 117px) should not apply
+PASS subtest_414: (width > 117px) should not apply
+FAIL subtest_415: (width < 118px) should apply assert_true: expected true got false
+FAIL subtest_416: (width <= 118px) should apply assert_true: expected true got false
+PASS subtest_417: (width > 118px) should not apply
+PASS subtest_418: (width >= 118px) should not apply
+FAIL subtest_419: (width > 116px) should apply assert_true: expected true got false
+FAIL subtest_420: (width >= 116px) should apply assert_true: expected true got false
+PASS subtest_421: (width < 116px) should not apply
+PASS subtest_422: (width <= 116px) should not apply
+PASS subtest_423: all and (height: 76px) should apply
+FAIL subtest_424: all and (height = 76px) should apply assert_true: expected true got false
+PASS subtest_425: all and (height: 77px) should not apply
+PASS subtest_426: all and (height: 75px) should not apply
+PASS subtest_427: all and (height = 77px) should not apply
+PASS subtest_428: all and (height = 75px) should not apply
+PASS subtest_429: all and (min-height: 76px) should apply
+PASS subtest_430: all and (min-height: 77px) should not apply
+PASS subtest_431: all and (min-height: 75px) should apply
+PASS subtest_432: all and (max-height: 76px) should apply
+PASS subtest_433: all and (max-height: 77px) should apply
+PASS subtest_434: all and (max-height: 75px) should not apply
+PASS subtest_435: all and (min-height: 6em) should not apply
+PASS subtest_436: all and (min-height: 3em) should apply
+PASS subtest_437: all and (max-height: 6em) should apply
+PASS subtest_438: all and (max-height: 3em) should not apply
+FAIL subtest_439: (height <= 76px) should apply assert_true: expected true got false
+FAIL subtest_440: (height >= 76px) should apply assert_true: expected true got false
+PASS subtest_441: (height < 76px) should not apply
+PASS subtest_442: (height > 76px) should not apply
+FAIL subtest_443: (height < 77px) should apply assert_true: expected true got false
+FAIL subtest_444: (height <= 77px) should apply assert_true: expected true got false
+PASS subtest_445: (height > 77px) should not apply
+PASS subtest_446: (height >= 77px) should not apply
+FAIL subtest_447: (height > 75px) should apply assert_true: expected true got false
+FAIL subtest_448: (height >= 75px) should apply assert_true: expected true got false
+PASS subtest_449: (height < 75px) should not apply
+PASS subtest_450: (height <= 75px) should not apply
+PASS subtest_451: all and (device-width: 1920px) should apply
+FAIL subtest_452: all and (device-width = 1920px) should apply assert_true: expected true got false
+PASS subtest_453: all and (device-width: 1921px) should not apply
+PASS subtest_454: all and (device-width: 1919px) should not apply
+PASS subtest_455: all and (device-width = 1921px) should not apply
+PASS subtest_456: all and (device-width = 1919px) should not apply
+PASS subtest_457: all and (min-device-width: 1920px) should apply
+PASS subtest_458: all and (min-device-width: 1921px) should not apply
+PASS subtest_459: all and (min-device-width: 1919px) should apply
+PASS subtest_460: all and (max-device-width: 1920px) should apply
+PASS subtest_461: all and (max-device-width: 1921px) should apply
+PASS subtest_462: all and (max-device-width: 1919px) should not apply
+PASS subtest_463: all and (min-device-width: 121em) should not apply
+PASS subtest_464: all and (min-device-width: 119em) should apply
+PASS subtest_465: all and (max-device-width: 121em) should apply
+PASS subtest_466: all and (max-device-width: 119em) should not apply
+FAIL subtest_467: (device-width <= 1920px) should apply assert_true: expected true got false
+FAIL subtest_468: (device-width >= 1920px) should apply assert_true: expected true got false
+PASS subtest_469: (device-width < 1920px) should not apply
+PASS subtest_470: (device-width > 1920px) should not apply
+FAIL subtest_471: (device-width < 1921px) should apply assert_true: expected true got false
+FAIL subtest_472: (device-width <= 1921px) should apply assert_true: expected true got false
+PASS subtest_473: (device-width > 1921px) should not apply
+PASS subtest_474: (device-width >= 1921px) should not apply
+FAIL subtest_475: (device-width > 1919px) should apply assert_true: expected true got false
+FAIL subtest_476: (device-width >= 1919px) should apply assert_true: expected true got false
+PASS subtest_477: (device-width < 1919px) should not apply
+PASS subtest_478: (device-width <= 1919px) should not apply
+PASS subtest_479: all and (device-height: 1080px) should apply
+FAIL subtest_480: all and (device-height = 1080px) should apply assert_true: expected true got false
+PASS subtest_481: all and (device-height: 1081px) should not apply
+PASS subtest_482: all and (device-height: 1079px) should not apply
+PASS subtest_483: all and (device-height = 1081px) should not apply
+PASS subtest_484: all and (device-height = 1079px) should not apply
+PASS subtest_485: all and (min-device-height: 1080px) should apply
+PASS subtest_486: all and (min-device-height: 1081px) should not apply
+PASS subtest_487: all and (min-device-height: 1079px) should apply
+PASS subtest_488: all and (max-device-height: 1080px) should apply
+PASS subtest_489: all and (max-device-height: 1081px) should apply
+PASS subtest_490: all and (max-device-height: 1079px) should not apply
+PASS subtest_491: all and (min-device-height: 69em) should not apply
+PASS subtest_492: all and (min-device-height: 66em) should apply
+PASS subtest_493: all and (max-device-height: 69em) should apply
+PASS subtest_494: all and (max-device-height: 66em) should not apply
+FAIL subtest_495: (device-height <= 1080px) should apply assert_true: expected true got false
+FAIL subtest_496: (device-height >= 1080px) should apply assert_true: expected true got false
+PASS subtest_497: (device-height < 1080px) should not apply
+PASS subtest_498: (device-height > 1080px) should not apply
+FAIL subtest_499: (device-height < 1081px) should apply assert_true: expected true got false
+FAIL subtest_500: (device-height <= 1081px) should apply assert_true: expected true got false
+PASS subtest_501: (device-height > 1081px) should not apply
+PASS subtest_502: (device-height >= 1081px) should not apply
+FAIL subtest_503: (device-height > 1079px) should apply assert_true: expected true got false
+FAIL subtest_504: (device-height >= 1079px) should apply assert_true: expected true got false
+PASS subtest_505: (device-height < 1079px) should not apply
+PASS subtest_506: (device-height <= 1079px) should not apply
+PASS subtest_507: all and (height) should apply
+PASS subtest_508: all and (width) should not apply
+PASS subtest_509: all and (height) should not apply
+PASS subtest_510: all and (width) should not apply
+PASS subtest_511: all and (device-height) should apply
+PASS subtest_512: all and (device-width) should apply
+PASS subtest_513: all and (height) should not apply
+PASS subtest_514: all and (width) should apply
+PASS subtest_515: all and (height) should apply
+PASS subtest_516: all and (width) should apply
PASS subtest_517
PASS subtest_518
PASS subtest_519
@@ -527,91 +527,89 @@
PASS subtest_523
PASS subtest_524
PASS subtest_525
-PASS subtest_526
-PASS subtest_527
-PASS subtest_528
-PASS subtest_529
-PASS subtest_530
-PASS subtest_531
-PASS subtest_532
-PASS subtest_533
-PASS subtest_534
-PASS subtest_535
-PASS subtest_536
-PASS subtest_537
-PASS subtest_538
-PASS subtest_539
-PASS subtest_540
-PASS subtest_541
-PASS subtest_542
-PASS subtest_543
-PASS subtest_544
-PASS subtest_545
-PASS subtest_546
-PASS subtest_547
-PASS subtest_548
-PASS subtest_549
-PASS subtest_550
-PASS subtest_551
+PASS subtest_526: (orientation) should apply
+PASS subtest_527: (orientation: landscape) should apply
+PASS subtest_528: (orientation: portrait) should not apply
+PASS subtest_529: not all and (orientation: portrait) should apply
+PASS subtest_530: (orientation) should apply
+PASS subtest_531: (orientation: landscape) should not apply
+PASS subtest_532: not all and (orientation: landscape) should apply
+PASS subtest_533: (orientation: portrait) should apply
+PASS subtest_534: (aspect-ratio: 59/80) should apply
+PASS subtest_535: (aspect-ratio: 58/80) should not apply
+PASS subtest_536: (aspect-ratio: 59/81) should not apply
+PASS subtest_537: (aspect-ratio: 60/80) should not apply
+PASS subtest_538: (aspect-ratio: 59/79) should not apply
+PASS subtest_539: (aspect-ratio: 177/240) should apply
+PASS subtest_540: (aspect-ratio: 413/560) should apply
+PASS subtest_541: (aspect-ratio: 5900/8000) should apply
+PASS subtest_542: (aspect-ratio: 5901/8000) should not apply
+PASS subtest_543: (aspect-ratio: 5899/8000) should not apply
+PASS subtest_544: (aspect-ratio: 5900/8001) should not apply
+PASS subtest_545: (aspect-ratio: 5900/7999) should not apply
+PASS subtest_546: (aspect-ratio) should apply
+PASS subtest_547: (min-aspect-ratio: 59/80) should apply
+PASS subtest_548: (min-aspect-ratio: 58/80) should apply
+PASS subtest_549: (min-aspect-ratio: 59/81) should apply
+PASS subtest_550: (min-aspect-ratio: 60/80) should not apply
+PASS subtest_551: (min-aspect-ratio: 59/79) should not apply
PASS subtest_552
-PASS subtest_553
-PASS subtest_554
-PASS subtest_555
-PASS subtest_556
-PASS subtest_557
+PASS subtest_553: (max-aspect-ratio: 59/80) should apply
+PASS subtest_554: (max-aspect-ratio: 58/80) should not apply
+PASS subtest_555: (max-aspect-ratio: 59/81) should not apply
+PASS subtest_556: (max-aspect-ratio: 60/80) should apply
+PASS subtest_557: (max-aspect-ratio: 59/79) should apply
PASS subtest_558
-PASS subtest_559
-PASS subtest_560
-PASS subtest_561
-PASS subtest_562
-PASS subtest_563
-PASS subtest_564
-PASS subtest_565
-PASS subtest_566
-PASS subtest_567
-PASS subtest_568
-PASS subtest_569
+PASS subtest_559: (device-aspect-ratio: 1920/1080) should apply
+PASS subtest_560: not all and (device-aspect-ratio: 1921/1080) should apply
+PASS subtest_561: all and (device-aspect-ratio: 1920/1079) should not apply
+PASS subtest_562: all and (device-aspect-ratio: 1919/1080) should not apply
+PASS subtest_563: not all and (device-aspect-ratio: 1920/1081) should apply
+PASS subtest_564: (device-aspect-ratio) should apply
+PASS subtest_565: (min-device-aspect-ratio: 1920/1080) should apply
+PASS subtest_566: all and (min-device-aspect-ratio: 1921/1080) should not apply
+PASS subtest_567: not all and (min-device-aspect-ratio: 1920/1079) should apply
+PASS subtest_568: not all and (min-device-aspect-ratio: 1919/1080) should not apply
+PASS subtest_569: all and (min-device-aspect-ratio: 1920/1081) should apply
PASS subtest_570
-PASS subtest_571
-PASS subtest_572
-FAIL subtest_573 assert_true: expected true got false
-FAIL subtest_574 assert_true: expected true got false
-FAIL subtest_575 assert_true: expected true got false
-FAIL subtest_576 assert_true: expected true got false
-FAIL subtest_577 assert_true: expected true got false
-FAIL subtest_578 assert_true: expected true got false
-FAIL subtest_579 assert_true: expected true got false
-FAIL subtest_580 assert_true: expected true got false
-PASS subtest_581
-PASS subtest_582
-PASS subtest_583
-PASS subtest_584
-PASS subtest_585
-PASS subtest_586
-PASS subtest_587
-PASS subtest_588
+PASS subtest_571: all and (max-device-aspect-ratio: 1920/1080) should apply
+PASS subtest_572: (max-device-aspect-ratio: 1921/1080) should apply
+PASS subtest_573: (max-device-aspect-ratio: 1920/1079) should apply
+PASS subtest_574: all and (max-device-aspect-ratio: 1919/1080) should not apply
+PASS subtest_575: not all and (max-device-aspect-ratio: 1920/1081) should apply
+PASS subtest_576
+PASS subtest_577
+PASS subtest_578
+PASS subtest_579
+PASS subtest_580
+FAIL subtest_581 assert_true: expected true got false
+FAIL subtest_582 assert_true: expected true got false
+FAIL subtest_583 assert_true: expected true got false
+FAIL subtest_584 assert_true: expected true got false
+FAIL subtest_585 assert_true: expected true got false
+FAIL subtest_586 assert_true: expected true got false
+FAIL subtest_587 assert_true: expected true got false
+FAIL subtest_588 assert_true: expected true got false
PASS subtest_589
PASS subtest_590
PASS subtest_591
PASS subtest_592
-FAIL subtest_593 assert_true: expected true got false
-FAIL subtest_594 assert_true: expected true got false
-FAIL subtest_595 assert_true: expected true got false
-FAIL subtest_596 assert_true: expected true got false
-FAIL subtest_597 assert_true: expected true got false
-FAIL subtest_598 assert_true: expected true got false
-FAIL subtest_599 assert_true: expected true got false
-FAIL subtest_600 assert_true: expected true got false
-PASS subtest_601
-PASS subtest_602
-PASS subtest_603
-PASS subtest_604
-PASS subtest_605
-PASS subtest_606
-PASS subtest_607
-PASS subtest_608
-PASS monochrome_and_color
-PASS find_depth
+PASS subtest_593
+PASS subtest_594
+PASS subtest_595
+PASS subtest_596
+PASS subtest_597
+PASS subtest_598
+PASS subtest_599
+PASS subtest_600
+FAIL subtest_601 assert_true: expected true got false
+FAIL subtest_602 assert_true: expected true got false
+FAIL subtest_603 assert_true: expected true got false
+FAIL subtest_604 assert_true: expected true got false
+FAIL subtest_605 assert_true: expected true got false
+FAIL subtest_606 assert_true: expected true got false
+FAIL subtest_607 assert_true: expected true got false
+FAIL subtest_608 assert_true: expected true got false
PASS subtest_609
PASS subtest_610
PASS subtest_611
@@ -620,22 +618,24 @@
PASS subtest_614
PASS subtest_615
PASS subtest_616
-PASS subtest_617
-PASS subtest_618
-PASS subtest_619
-PASS subtest_620
-PASS subtest_621
-PASS subtest_622
-PASS subtest_623
+PASS monochrome_and_color
+PASS find_depth
+PASS subtest_617: all and (color:8) should apply
+PASS subtest_618: all and (color:7) should not apply
+PASS subtest_619: all and (color:9) should not apply
+PASS subtest_620: all and (max-color:8) should apply
+PASS subtest_621: all and (max-color:7) should not apply
+PASS subtest_622: all and (max-color:9) should apply
+PASS subtest_623: all and (color) should apply
PASS subtest_624
PASS subtest_625
-PASS subtest_626
+PASS subtest_626: all and (monochrome) should not apply
PASS subtest_627
PASS subtest_628
-PASS subtest_629
-PASS subtest_630
-PASS subtest_631
-PASS subtest_632
+PASS subtest_629: not all and (monochrome) should apply
+PASS subtest_630: not all and (color) should not apply
+PASS subtest_631: only all and (color) should apply
+PASS subtest_632: only all and (monochrome) should not apply
PASS subtest_633
PASS subtest_634
PASS subtest_635
@@ -654,79 +654,79 @@
PASS subtest_648
PASS subtest_649
PASS subtest_650
-PASS subtest_651
-PASS subtest_652
-PASS subtest_653
-PASS subtest_654
-PASS subtest_655
-FAIL subtest_656 assert_true: expected true got false
-PASS subtest_657
-FAIL subtest_658 assert_true: expected true got false
+PASS subtest_651: (color-index: 0) should apply
+PASS subtest_652: (color-index: 1) should not apply
+PASS subtest_653: (min-color-index: 0) should apply
+PASS subtest_654: (min-color-index: 1) should not apply
+PASS subtest_655: (max-color-index: 0) should apply
+PASS subtest_656: (max-color-index: 1) should apply
+PASS subtest_657: (max-color-index: 157) should apply
+PASS subtest_658
PASS subtest_659
PASS subtest_660
PASS subtest_661
PASS subtest_662
PASS subtest_663
-PASS subtest_664
+FAIL subtest_664 assert_true: expected true got false
PASS subtest_665
-PASS subtest_666
+FAIL subtest_666 assert_true: expected true got false
PASS subtest_667
PASS subtest_668
PASS subtest_669
-FAIL subtest_670 assert_true: expected true got false
+PASS subtest_670
PASS subtest_671
-FAIL subtest_672 assert_true: expected true got false
+PASS subtest_672
PASS subtest_673
PASS subtest_674
PASS subtest_675
PASS subtest_676
PASS subtest_677
-PASS subtest_678
+FAIL subtest_678 assert_true: expected true got false
PASS subtest_679
-PASS subtest_680
+FAIL subtest_680 assert_true: expected true got false
PASS subtest_681
PASS subtest_682
PASS subtest_683
-FAIL subtest_684 assert_true: expected true got false
+PASS subtest_684
PASS subtest_685
-FAIL subtest_686 assert_true: expected true got false
+PASS subtest_686
PASS subtest_687
PASS subtest_688
PASS subtest_689
PASS subtest_690
PASS subtest_691
-FAIL find_resolution assert_false: expected false got true
-PASS subtest_692
+FAIL subtest_692 assert_true: expected true got false
PASS subtest_693
FAIL subtest_694 assert_true: expected true got false
-FAIL subtest_695 assert_false: expected false got true
+PASS subtest_695
PASS subtest_696
PASS subtest_697
-FAIL subtest_698 assert_true: expected true got false
-FAIL subtest_699 assert_true: expected true got false
-PASS subtest_700
-PASS subtest_701
-FAIL subtest_702 assert_true: expected true got false
-FAIL subtest_703 assert_true: expected true got false
-FAIL subtest_704 assert_true: expected true got false
-PASS subtest_705
-PASS subtest_706
-PASS subtest_707
-PASS subtest_708
-PASS subtest_709
-PASS subtest_710
-PASS subtest_711
+PASS subtest_698
+PASS subtest_699
+FAIL find_resolution assert_false: expected false got true
+PASS subtest_700: (resolution: 10001dpi) should not apply
+PASS subtest_701: (resolution: 10000dpi) should not apply
+FAIL subtest_702: (min-resolution: 10000dpi) should apply assert_true: expected true got false
+FAIL subtest_703: not all and (min-resolution: 10000dpi) should not apply assert_false: expected false got true
+PASS subtest_704: not all and (min-resolution: 10001dpi) should apply
+PASS subtest_705: all and (min-resolution: 10001dpi) should not apply
+FAIL subtest_706: (min-resolution: 3937dpcm) should apply assert_true: expected true got false
+FAIL subtest_707: (max-resolution: 3938dpcm) should apply assert_true: expected true got false
+PASS subtest_708: (max-resolution: 3937dpcm) should not apply
+PASS subtest_709: not all and (min-resolution: 3938dpcm) should apply
+FAIL subtest_710 assert_true: expected true got false
+FAIL subtest_711 assert_true: expected true got false
FAIL subtest_712 assert_true: expected true got false
-FAIL subtest_713 assert_true: expected true got false
-FAIL subtest_714 assert_true: expected true got false
+PASS subtest_713
+PASS subtest_714
PASS subtest_715
PASS subtest_716
-PASS subtest_717
-PASS subtest_718
-PASS subtest_719
-PASS subtest_720
-PASS subtest_721
-PASS subtest_722
+PASS subtest_717: (scan) should not apply
+PASS subtest_718: (scan: progressive) should not apply
+PASS subtest_719: (scan: interlace) should not apply
+FAIL subtest_720: not all and (scan) should apply assert_true: expected true got false
+FAIL subtest_721: not all and (scan: progressive) should apply assert_true: expected true got false
+FAIL subtest_722: not all and (scan: interlace) should apply assert_true: expected true got false
PASS subtest_723
PASS subtest_724
PASS subtest_725
@@ -733,42 +733,50 @@
PASS subtest_726
PASS subtest_727
PASS subtest_728
-FAIL subtest_729 assert_true: expected true got false
+PASS subtest_729
PASS subtest_730
PASS subtest_731
-PASS subtest_732
-PASS subtest_733
-PASS subtest_734
-PASS subtest_735
-FAIL subtest_736 assert_true: expected true got false
-PASS subtest_737
-PASS subtest_738
-PASS subtest_739
-PASS subtest_740
-PASS subtest_741
-PASS subtest_742
-PASS subtest_743
-PASS subtest_744
-PASS subtest_745
-PASS subtest_746
-PASS subtest_747
-PASS subtest_748
-PASS subtest_749
-PASS subtest_750
-PASS subtest_751
-PASS subtest_752
-PASS subtest_753
-PASS subtest_754
-PASS subtest_755
-PASS subtest_756
-PASS subtest_757
-PASS subtest_758
-PASS subtest_759
-PASS subtest_760
-FAIL subtest_761 assert_true: expected true got false
-FAIL subtest_762 assert_true: expected true got false
-FAIL subtest_763 assert_true: expected true got false
-FAIL subtest_764 assert_true: expected true got false
-FAIL subtest_765 assert_true: expected true got false
-PASS subtest_766
+PASS subtest_732: (grid) should not apply
+PASS subtest_733: (grid: 0) should apply
+PASS subtest_734: (grid: 1) should not apply
+PASS subtest_735: (grid: 2) should not apply
+PASS subtest_736: (grid: -1) should not apply
+FAIL subtest_737: (orientation should apply assert_true: expected true got false
+PASS subtest_738: not all and (orientation should not apply
+PASS subtest_739: (orientation: should not apply
+PASS subtest_740: (orientation:) should not apply
+PASS subtest_741: (orientation: ) should not apply
+PASS subtest_742: all,(orientation: should apply
+PASS subtest_743: (orientation:,all should not apply
+FAIL subtest_744: not all and (grid should apply assert_true: expected true got false
+PASS subtest_745: only all and (grid should not apply
+PASS subtest_746: (grid should not apply
+PASS subtest_747: all,(grid should apply
+PASS subtest_748: (grid,all should not apply
+PASS subtest_749: ,all should apply
+PASS subtest_750: all, should apply
+PASS subtest_751: ,all, should apply
+PASS subtest_752: all,badmedium should apply
+PASS subtest_753: badmedium,all should apply
+PASS subtest_754: ,badmedium, should not apply
+PASS subtest_755: all,(badexpression) should apply
+PASS subtest_756: (badexpression),all should apply
+PASS subtest_757: (badexpression),badmedium should not apply
+PASS subtest_758: badmedium,(badexpression) should not apply
+PASS subtest_759: all,[badsyntax] should apply
+PASS subtest_760: [badsyntax],all should apply
+PASS subtest_761: badmedium,[badsyntax] should not apply
+PASS subtest_762: [badsyntax],badmedium should not apply
+PASS subtest_763
+PASS subtest_764
+PASS subtest_765: all and min-color : 1 should not apply
+PASS subtest_766: (bogus) should not apply
+PASS subtest_767: not all and (bogus) should not apply
+PASS subtest_768: only all and (bogus) should not apply
+FAIL subtest_769 assert_true: expected true got false
+FAIL subtest_770 assert_true: expected true got false
+FAIL subtest_771 assert_true: expected true got false
+FAIL subtest_772 assert_true: expected true got false
+FAIL subtest_773 assert_true: expected true got false
+PASS subtest_774
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries.html (277070 => 277071)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries.html 2021-05-06 07:14:59 UTC (rev 277070)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/test_media_queries.html 2021-05-06 07:36:29 UTC (rev 277071)
@@ -33,13 +33,13 @@
function should_apply(q) {
test(function() {
assert_true(query_applies(q));
- }, "subtest_" + ++testNum);
+ }, "subtest_" + ++testNum + ": " + q + " should apply");
}
function should_not_apply(q) {
test(function() {
assert_false(query_applies(q));
- }, "subtest_" + ++testNum);
+ }, "subtest_" + ++testNum + ": " + q + " should not apply");
}
/*
@@ -142,6 +142,11 @@
expression_should_not_be_parseable("min-" + feature + " " + separator + " -0");
expression_should_not_be_parseable("max-" + feature + " " + separator + " -0");
}
+ if (separator == ">=") {
+ expression_should_not_be_parseable(feature + " " + "> =" + " 0px");
+ } else if (separator == "<=") {
+ expression_should_not_be_parseable(feature + " " + "< =" + " 0px");
+ }
expression_should_not_be_parseable(feature + " " + separator + " -1px");
expression_should_not_be_parseable("min-" + feature + " " + separator + " -1px");
expression_should_not_be_parseable("max-" + feature + " " + separator + " -1px");
Modified: trunk/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/w3c-import.log (277070 => 277071)
--- trunk/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/w3c-import.log 2021-05-06 07:14:59 UTC (rev 277070)
+++ trunk/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/w3c-import.log 2021-05-06 07:36:29 UTC (rev 277071)
@@ -64,6 +64,7 @@
/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/mq-case-insensitive-001.html
/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/mq-deprecated-001-expected.xht
/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/mq-deprecated-001.html
+/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/mq-dynamic-empty-children.html
/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/mq-gamut-001-expected.xht
/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/mq-gamut-001.html
/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/mq-gamut-002-expected.xht
@@ -88,6 +89,7 @@
/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/mq-range-001.html
/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/navigation-controls.tentative.html
/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/prefers-color-scheme.html
+/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/prefers-contrast.html
/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/prefers-reduced-data.html
/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/prefers-reduced-motion.html
/LayoutTests/imported/w3c/web-platform-tests/css/mediaqueries/relative-units-001-expected.xht
Modified: trunk/Source/WebCore/ChangeLog (277070 => 277071)
--- trunk/Source/WebCore/ChangeLog 2021-05-06 07:14:59 UTC (rev 277070)
+++ trunk/Source/WebCore/ChangeLog 2021-05-06 07:36:29 UTC (rev 277071)
@@ -1,3 +1,23 @@
+2021-05-06 Tim Nguyen <[email protected]>
+
+ [mediaqueries] Remove "on-demand" value for any-hover/hover & "forced" value for prefers-contrast
+ https://bugs.webkit.org/show_bug.cgi?id=225400
+
+ Reviewed by Antti Koivisto.
+
+ These were both removed from the spec and currently never evaluate to true. They also won't eval to true after this change.
+ Only change is serialization, since the values will become invalid.
+
+ Also:
+ - Re-synced css/mediaqueries WPTs
+ - Adjusted any-hover/hover parsing tests accordingly.
+
+ * css/CSSValueKeywords.in:
+ * css/MediaQueryEvaluator.cpp:
+ (WebCore::prefersContrastEvaluate):
+ * css/MediaQueryExpression.cpp:
+ (WebCore::isValidValueForIdentMediaFeature):
+
2021-05-05 Megan Gardner <[email protected]>
AppHighlight scrolls should be smooth
Modified: trunk/Source/WebCore/css/CSSValueKeywords.in (277070 => 277071)
--- trunk/Source/WebCore/css/CSSValueKeywords.in 2021-05-06 07:14:59 UTC (rev 277070)
+++ trunk/Source/WebCore/css/CSSValueKeywords.in 2021-05-06 07:36:29 UTC (rev 277071)
@@ -1176,7 +1176,6 @@
// (hover:) media feature.
// none
hover
-on-demand
// blend modes
// normal
@@ -1463,7 +1462,6 @@
no-preference
// prefers-contrast
-forced
more
less
// no-preference
@@ -1472,7 +1470,6 @@
// prefers-color-scheme
light
dark
-// no-preference
// color-scheme
only
Modified: trunk/Source/WebCore/css/MediaQueryEvaluator.cpp (277070 => 277071)
--- trunk/Source/WebCore/css/MediaQueryEvaluator.cpp 2021-05-06 07:14:59 UTC (rev 277070)
+++ trunk/Source/WebCore/css/MediaQueryEvaluator.cpp 2021-05-06 07:36:29 UTC (rev 277071)
@@ -837,7 +837,7 @@
if (!value)
return userPrefersContrast;
- // Apple platforms: less and forced are ignored and only "more" is mapped to the user's preference.
+ // Apple platforms: "less" is ignored and only "more" is mapped to the user's preference.
return downcast<CSSPrimitiveValue>(*value).valueID() == (userPrefersContrast ? CSSValueMore : CSSValueNoPreference);
}
Modified: trunk/Source/WebCore/css/MediaQueryExpression.cpp (277070 => 277071)
--- trunk/Source/WebCore/css/MediaQueryExpression.cpp 2021-05-06 07:14:59 UTC (rev 277070)
+++ trunk/Source/WebCore/css/MediaQueryExpression.cpp 2021-05-06 07:36:29 UTC (rev 277071)
@@ -46,8 +46,8 @@
return valueID == CSSValuePortrait || valueID == CSSValueLandscape;
if (feature == MediaFeatureNames::colorGamut)
return valueID == CSSValueSRGB || valueID == CSSValueP3 || valueID == CSSValueRec2020;
- if (feature == MediaFeatureNames::anyHover || feature == MediaFeatureNames::hover) // FIXME: remove `on-demand` that's no longer in the spec.
- return valueID == CSSValueOnDemand || valueID == CSSValueHover || valueID == CSSValueNone;
+ if (feature == MediaFeatureNames::anyHover || feature == MediaFeatureNames::hover)
+ return valueID == CSSValueHover || valueID == CSSValueNone;
if (feature == MediaFeatureNames::anyPointer || feature == MediaFeatureNames::pointer)
return valueID == CSSValueFine || valueID == CSSValueCoarse || valueID == CSSValueNone;
if (feature == MediaFeatureNames::invertedColors)
@@ -60,8 +60,8 @@
if (feature == MediaFeatureNames::prefersColorScheme)
return valueID == CSSValueLight || valueID == CSSValueDark;
#endif
- if (feature == MediaFeatureNames::prefersContrast) // FIXME: remove `forced` that's no longer in the spec.
- return valueID == CSSValueNoPreference || valueID == CSSValueMore || valueID == CSSValueLess || valueID == CSSValueForced;
+ if (feature == MediaFeatureNames::prefersContrast)
+ return valueID == CSSValueNoPreference || valueID == CSSValueMore || valueID == CSSValueLess;
if (feature == MediaFeatureNames::prefersReducedMotion)
return valueID == CSSValueNoPreference || valueID == CSSValueReduce;
if (feature == MediaFeatureNames::prefersDarkInterface)