Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[css-lists] Fix 'content: counter(list-item)' in pseudo-elements #24365

Merged
merged 1 commit into from Jun 29, 2020

Conversation

chromium-wpt-export-bot
Copy link
Collaborator

@chromium-wpt-export-bot chromium-wpt-export-bot commented Jun 26, 2020

::before, ::after and ::marker pseudo-elements can use the counter()
function in the 'content' property in order to retrieve the value of a
counter. This was already working well, except for the automatic
'list-item' counter.

The problem was that in <ol> elements, the counter was set to the start
value. For example, in '<ol start="3"><li></li></ol>', the counter was 3
in ol::before, but <li> increments it, so it became 4 in li::before.
This patch sets it to the start value minus 1, according to the spec
https://drafts.csswg.org/css-lists/#ua-stylesheet

There was also the problem that list items would increment the value,
even in reversed lists. E.g. in '<ol reversed><li></li><li></li></ol>',
the counter used to be 2 in ol::before, 3 in li:first-child::before,
and 4 in li:last-child::before. This patch checks whether the list item
is in a reversed list in order to decide if the value should be
incremented or decremented.

Bug: 796961

TEST=external/wpt/css/css-lists/counter-list-item.html
TEST=external/wpt/css/css-pseudo/marker-content-002.html
TEST=external/wpt/css/css-pseudo/marker-content-005.html

The former test is imported from WebKit.

Change-Id: I011499095379df547820eb6417f68ab61cf5a23d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2270305
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Oriol Brufau <obrufau@igalia.com>
Cr-Commit-Position: refs/heads/master@{#783493}

Copy link
Collaborator

@wpt-pr-bot wpt-pr-bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The review process for this patch is being conducted in the Chromium project.

::before, ::after and ::marker pseudo-elements can use the counter()
function in the 'content' property in order to retrieve the value of a
counter. This was already working well, except for the automatic
'list-item' counter.

The problem was that in <ol> elements, the counter was set to the start
value. For example, in '<ol start="3"><li></li></ol>', the counter was 3
in ol::before, but <li> increments it, so it became 4 in li::before.
This patch sets it to the start value minus 1, according to the spec
https://drafts.csswg.org/css-lists/#ua-stylesheet

There was also the problem that list items would increment the value,
even in reversed lists. E.g. in '<ol reversed><li></li><li></li></ol>',
the counter used to be 2 in ol::before, 3 in li:first-child::before,
and 4 in li:last-child::before. This patch checks whether the list item
is in a reversed list in order to decide if the value should be
incremented or decremented.

Bug: 796961

TEST=external/wpt/css/css-lists/counter-list-item.html
TEST=external/wpt/css/css-pseudo/marker-content-002.html
TEST=external/wpt/css/css-pseudo/marker-content-005.html

The former test is imported from WebKit.

Change-Id: I011499095379df547820eb6417f68ab61cf5a23d
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2270305
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Oriol Brufau <obrufau@igalia.com>
Cr-Commit-Position: refs/heads/master@{#783493}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants