[css-pseudo] Don't inherit text-indent to ::marker
The CSSWG resolved in https://github.com/w3c/csswg-drafts/issues/4568
that properties like 'text-indent' that don't apply to ::marker, should
not be able to affect the ::marker via inheritance when set to an
ancestor.
Therefore, this patch sets 'text-indent: 0 !important' in UA origin.
Bug: 1031667
TEST=external/wpt/css/css-pseudo/marker-content-023.html
TEST=external/wpt/css/css-pseudo/marker-default-styles.html
TEST=http/tests/devtools/elements/styles-2/pseudo-elements.js
Change-Id: I4dd9e8afd448bd5fe237c084d3c0215e91560dd1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2382750
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Reviewed-by: Koji Ishii <kojii@chromium.org>
Commit-Queue: Oriol Brufau <obrufau@igalia.com>
Cr-Commit-Position: refs/heads/master@{#803126}
diff --git a/third_party/blink/renderer/core/css/marker.css b/third_party/blink/renderer/core/css/marker.css
index 1d1b030..7319e2f 100644
--- a/third_party/blink/renderer/core/css/marker.css
+++ b/third_party/blink/renderer/core/css/marker.css
@@ -2,4 +2,5 @@
unicode-bidi: isolate;
font-variant-numeric: tabular-nums;
text-transform: none;
+ text-indent: 0 !important;
}
diff --git a/third_party/blink/web_tests/external/wpt/css/css-pseudo/marker-content-023-ref.html b/third_party/blink/web_tests/external/wpt/css/css-pseudo/marker-content-023-ref.html
new file mode 100644
index 0000000..d0ce5c1
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-pseudo/marker-content-023-ref.html
@@ -0,0 +1,33 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Reference: ::marker pseudo elements styled with 'content' property</title>
+<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com">
+<style>
+.disc {
+ list-style-type: disc;
+}
+.decimal {
+ list-style-type: decimal;
+}
+.string {
+ list-style-type: "3. ";
+}
+.content::marker {
+ content: "4. ";
+}
+.rtl-marker ::marker {
+ direction: rtl;
+}
+</style>
+<ol>
+ <li class="disc"><div>disc</div></li>
+ <li class="decimal"><div>decimal</div></li>
+ <li class="string"><div>string</div></li>
+ <li class="content"><div>content</div></li>
+</ol>
+<ol class="rtl-marker">
+ <li class="disc"><div>disc</div></li>
+ <li class="decimal"><div>decimal</div></li>
+ <li class="string"><div>string</div></li>
+ <li class="content"><div>content</div></li>
+</ol>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-pseudo/marker-content-023.html b/third_party/blink/web_tests/external/wpt/css/css-pseudo/marker-content-023.html
new file mode 100644
index 0000000..9ec0ca4
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-pseudo/marker-content-023.html
@@ -0,0 +1,46 @@
+<!DOCTYPE html>
+<meta charset="utf-8">
+<title>CSS Test: ::marker pseudo elements styled with 'content' property</title>
+<link rel="author" title="Oriol Brufau" href="mailto:obrufau@igalia.com">
+<link rel="match" href="marker-content-023-ref.html">
+<link rel="help" href="https://drafts.csswg.org/css-pseudo-4/#marker-pseudo">
+<link rel="help" href="https://drafts.csswg.org/css-text/#text-indent-property">
+<meta name="assert" content="Checks that 'text-indent' doesn't apply nor inherit to ::marker.">
+<style>
+li {
+ text-indent: 100px; /* Should not be inherited by ::marker */
+}
+::marker {
+ text-indent: 100px; /* Should have no effect */
+}
+li > div {
+ text-indent: 0;
+}
+.disc {
+ list-style-type: disc;
+}
+.decimal {
+ list-style-type: decimal;
+}
+.string {
+ list-style-type: "3. ";
+}
+.content::marker {
+ content: "4. ";
+}
+.rtl-marker ::marker {
+ direction: rtl;
+}
+</style>
+<ol>
+ <li class="disc"><div>disc</div></li>
+ <li class="decimal"><div>decimal</div></li>
+ <li class="string"><div>string</div></li>
+ <li class="content"><div>content</div></li>
+</ol>
+<ol class="rtl-marker">
+ <li class="disc"><div>disc</div></li>
+ <li class="decimal"><div>decimal</div></li>
+ <li class="string"><div>string</div></li>
+ <li class="content"><div>content</div></li>
+</ol>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-pseudo/marker-default-styles.html b/third_party/blink/web_tests/external/wpt/css/css-pseudo/marker-default-styles.html
index 865a2d0..0f988d8 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-pseudo/marker-default-styles.html
+++ b/third_party/blink/web_tests/external/wpt/css/css-pseudo/marker-default-styles.html
@@ -11,7 +11,11 @@
.decimal { list-style-type: decimal }
.string { list-style-type: "string" }
.marker::marker { content: "marker" }
-li { text-transform: lowercase }
+li {
+ /* These inheritable properties should not be inherited by ::marker */
+ text-transform: lowercase;
+ text-indent: 1px;
+}
</style>
<div id="log"></div>
<ul>
@@ -32,6 +36,7 @@
["unicode-bidi", "isolate"],
["font-variant-numeric", "tabular-nums"],
["text-transform", "none"],
+ ["text-indent", "0px"],
];
for (const target of document.querySelectorAll("li")) {
const cs = getComputedStyle(target, "::marker");
diff --git a/third_party/blink/web_tests/http/tests/devtools/elements/styles-2/pseudo-elements-expected.txt b/third_party/blink/web_tests/http/tests/devtools/elements/styles-2/pseudo-elements-expected.txt
index 524eb23..fe5d53a 100644
--- a/third_party/blink/web_tests/http/tests/devtools/elements/styles-2/pseudo-elements-expected.txt
+++ b/third_party/blink/web_tests/http/tests/devtools/elements/styles-2/pseudo-elements-expected.txt
@@ -49,6 +49,7 @@
unicode-bidi: isolate;
font-variant-numeric: tabular-nums;
text-transform: none;
+ text-indent: 0px !important;
Running: dumpBeforeStyles
@@ -73,6 +74,7 @@
unicode-bidi: isolate;
font-variant-numeric: tabular-nums;
text-transform: none;
+ text-indent: 0px !important;
Running: removeAfter