Reserve the default keyword from <custom-ident> CSS values.

This disallows the 'default' keyword in all CSS values based on the
<custom-ident> production.  (It was previously disallowed as a one-off
for a few of them.)  This matches the behavior of Gecko and WebKit.

Chromestatus: https://chromestatus.com/feature/5096490737860608
Intent to deprecate and remove: https://groups.google.com/a/chromium.org/d/msgid/blink-dev/CAG0MU3gf2ifuNT64OM7nHvo0jnXxkbZ4BmAh%2BYw0UUSq_iG%3D_g%40mail.gmail.com

This also cleans up the various one-off fixes that were fixing this in
specific cases, and substantially improves test coverage.

Fixed: 882285
Change-Id: I12be30bba8676de02be0370248ac869ac0ce56d9
Co-authored-by: Amos Lim <eui-sang.lim@samsung.com>
Co-authored-by: L. David Baron <dbaron@chromium.org>
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/3759778
Commit-Queue: David Baron <dbaron@chromium.org>
Reviewed-by: Xiaocheng Hu <xiaochengh@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1024016}
diff --git a/css/css-animations/parsing/animation-name-invalid.html b/css/css-animations/parsing/animation-name-invalid.html
index 77d53f9..739641a 100644
--- a/css/css-animations/parsing/animation-name-invalid.html
+++ b/css/css-animations/parsing/animation-name-invalid.html
@@ -18,6 +18,8 @@
 test_invalid_value("animation-name", 'one, inherit');
 test_invalid_value("animation-name", 'one, unset');
 test_invalid_value("animation-name", 'default, two');
+test_invalid_value("animation-name", 'revert, three');
+test_invalid_value("animation-name", 'revert-layer, four');
 </script>
 </body>
 </html>
diff --git a/css/css-color-adjust/parsing/color-scheme-invalid.html b/css/css-color-adjust/parsing/color-scheme-invalid.html
index 89c17e3..e2eb009 100644
--- a/css/css-color-adjust/parsing/color-scheme-invalid.html
+++ b/css/css-color-adjust/parsing/color-scheme-invalid.html
@@ -14,6 +14,7 @@
   test_invalid_value("color-scheme", "light initial");
   test_invalid_value("color-scheme", "light unset");
   test_invalid_value("color-scheme", "light revert");
+  test_invalid_value("color-scheme", "light revert-layer");
   test_invalid_value("color-scheme", "default");
   test_invalid_value("color-scheme", "light default");
   test_invalid_value("color-scheme", "only");
diff --git a/css/css-counter-styles/counter-style-at-rule/symbols-syntax.html b/css/css-counter-styles/counter-style-at-rule/symbols-syntax.html
index 240ce8a..df0824d 100644
--- a/css/css-counter-styles/counter-style-at-rule/symbols-syntax.html
+++ b/css/css-counter-styles/counter-style-at-rule/symbols-syntax.html
@@ -24,4 +24,7 @@
 test_invalid_symbols('initial "X" "X"');
 test_invalid_symbols('inherit "X" "X"');
 test_invalid_symbols('unset "X" "X"');
+test_invalid_symbols('default "X"');
+test_invalid_symbols('revert "X"');
+test_invalid_symbols('revert-layer "X"');
 </script>
diff --git a/css/css-lists/parsing/counter-increment-invalid.html b/css/css-lists/parsing/counter-increment-invalid.html
index 2138584..b893d53 100644
--- a/css/css-lists/parsing/counter-increment-invalid.html
+++ b/css/css-lists/parsing/counter-increment-invalid.html
@@ -18,6 +18,12 @@
 test_invalid_value('counter-increment', '99 imagenum');
 test_invalid_value('counter-increment', 'section -1, imagenum 99');
 test_invalid_value('counter-increment', 'section 3.14');
+test_invalid_value('counter-increment', 'inherit 1');
+test_invalid_value('counter-increment', 'initial 1');
+test_invalid_value('counter-increment', 'unset 1');
+test_invalid_value('counter-increment', 'default 1');
+test_invalid_value('counter-increment', 'revert 1');
+test_invalid_value('counter-increment', 'revert-layer 1');
 </script>
 </body>
 </html>
diff --git a/css/css-lists/parsing/counter-reset-invalid.html b/css/css-lists/parsing/counter-reset-invalid.html
index d797360..18e406b 100644
--- a/css/css-lists/parsing/counter-reset-invalid.html
+++ b/css/css-lists/parsing/counter-reset-invalid.html
@@ -20,6 +20,12 @@
 test_invalid_value('counter-reset', '99 reversed(imagenum)');
 test_invalid_value('counter-reset', 'section -1, imagenum 99');
 test_invalid_value('counter-reset', 'section 3.14');
+test_invalid_value('counter-reset', 'inherit 0');
+test_invalid_value('counter-reset', 'initial 0');
+test_invalid_value('counter-reset', 'unset 0');
+test_invalid_value('counter-reset', 'default 0');
+test_invalid_value('counter-reset', 'revert 0');
+test_invalid_value('counter-reset', 'revert-layer 0');
 </script>
 </body>
 </html>
diff --git a/css/css-lists/parsing/counter-set-invalid.html b/css/css-lists/parsing/counter-set-invalid.html
index e955049..7b2f500 100644
--- a/css/css-lists/parsing/counter-set-invalid.html
+++ b/css/css-lists/parsing/counter-set-invalid.html
@@ -18,6 +18,12 @@
 test_invalid_value('counter-set', '99 imagenum');
 test_invalid_value('counter-set', 'section -1, imagenum 99');
 test_invalid_value('counter-set', 'section 3.14');
+test_invalid_value('counter-set', 'inherit 2');
+test_invalid_value('counter-set', 'initial 2');
+test_invalid_value('counter-set', 'unset 2');
+test_invalid_value('counter-set', 'default 2');
+test_invalid_value('counter-set', 'revert 2');
+test_invalid_value('counter-set', 'revert-layer 2');
 </script>
 </body>
 </html>
diff --git a/css/css-page/parsing/page-invalid.html b/css/css-page/parsing/page-invalid.html
index 7af7ccb..2c373a7 100644
--- a/css/css-page/parsing/page-invalid.html
+++ b/css/css-page/parsing/page-invalid.html
@@ -9,4 +9,5 @@
   test_invalid_value("page", "not,valid");
   test_invalid_value("page", "123px");
   test_invalid_value("page", "calc(10%+1px)");
+  test_invalid_value("page", "default");
 </script>
diff --git a/css/css-properties-values-api/register-property-syntax-parsing.html b/css/css-properties-values-api/register-property-syntax-parsing.html
index ee3ebc8..f902276 100644
--- a/css/css-properties-values-api/register-property-syntax-parsing.html
+++ b/css/css-properties-values-api/register-property-syntax-parsing.html
@@ -145,6 +145,7 @@
 assert_invalid("inherit", "inherit");
 assert_invalid("unset", "unset");
 assert_invalid("revert", "revert");
+assert_invalid("revert-layer", "revert-layer");
 assert_invalid("default", "default");
 assert_invalid("<length>|initial", "10px");
 assert_invalid("<length>|INHERIT", "10px");
@@ -153,12 +154,17 @@
 assert_invalid("<integer>|deFAUlt", "1");
 
 // Invalid initialValue
+// The 6 tests that follow are not clearly backed by the specification,
+// but (at least other than the one for 'default') they're probably a
+// good idea and we should change the spec.  See
+// https://github.com/w3c/css-houdini-drafts/issues/1076 .
 assert_invalid("*", "initial");
 assert_invalid("*", "inherit");
 assert_invalid("*", "unset");
 assert_invalid("*", "revert");
 assert_invalid("*", "revert-layer");
 assert_invalid("*", "default");
+// ... end possibly-invalid tests.
 assert_invalid("<custom-ident>", "initial");
 assert_invalid("<custom-ident>", "inherit");
 assert_invalid("<custom-ident>", "unset");
diff --git a/css/css-transitions/parsing/transition-property-invalid.html b/css/css-transitions/parsing/transition-property-invalid.html
index 715e13d..f71963f 100644
--- a/css/css-transitions/parsing/transition-property-invalid.html
+++ b/css/css-transitions/parsing/transition-property-invalid.html
@@ -17,6 +17,16 @@
 
 test_invalid_value("transition-property", 'initial, top');
 test_invalid_value("transition-property", 'top, initial');
+test_invalid_value("transition-property", 'inherit, top');
+test_invalid_value("transition-property", 'top, inherit');
+test_invalid_value("transition-property", 'unset, top');
+test_invalid_value("transition-property", 'top, unset');
+test_invalid_value("transition-property", 'default, top');
+test_invalid_value("transition-property", 'top, default');
+test_invalid_value("transition-property", 'revert, top');
+test_invalid_value("transition-property", 'top, revert');
+test_invalid_value("transition-property", 'revert-layer, top');
+test_invalid_value("transition-property", 'top, revert-layer');
 </script>
 </body>
 </html>