Closed Bug 1610226 Opened 6 years ago Closed 6 years ago

[wpt-sync] Sync PR 21254 - [css-pseudo] Move marker code to LayoutNGListMarkerInterface

Categories

(Core :: Layout: Generated Content, Lists, and Counters, task, P4)

task

Tracking

()

RESOLVED INVALID

People

(Reporter: wpt-sync, Unassigned)

References

()

Details

(Whiteboard: [wptsync downstream])

Sync web-platform-tests PR 21254 into mozilla-central (this bug is closed when the sync is complete).

PR: https://github.com/web-platform-tests/wpt/pull/21254
Details from upstream follow.

Oriol Brufau <obrufau@igalia.com> wrote:

[css-pseudo] Move marker code to LayoutNGListMarkerInterface

The LayoutNGListItem used to hold some information about the marker:
the kind of marker, whether the marker text was up-to-date, etc.

With the addition of the ::marker pseudo-element, markers have become
independent and are no longer created and destroyed by LayoutNGListItem.
However, this made it more difficult to keep the information in sync.

For example, dynamically applying 'content: none' to a symbol marker
destroys it, but LayoutNGListItem didn't notice that marker_type_ was
supposed to change from kSymbolValue to kStatic. This caused a DCHECK
failure and a null deref in SymbolMarkerLayoutText().

To avoid these problems, this patch moves all the code regarding markers
from LayoutNGListItem to LayoutNGListMarkerInterface. This is a new
abstract interface from which the LayoutNG markers (LayoutNGListMarker
and LayoutNGInsideListMarker) inherit.

BUG=1043478, 457718

TEST=external/wpt/css/css-pseudo/marker-content-020.html

The test fails in legacy since 'content' is not properly supported yet.

Change-Id: I2d7b424bbaf2487a8fbc49303d5114187d8c1fb6
Reviewed-on: https://chromium-review.googlesource.com/2007754
WPT-Export-Revision: 068e4e44aa4508ba9469e5bf88b19c0aeb7c911a

Component: web-platform-tests → Layout: Generated Content, Lists, and Counters
Product: Testing → Core
Status: NEW → RESOLVED
Closed: 6 years ago
Resolution: --- → INVALID
You need to log in before you can comment on or make changes to this bug.