[css-pseudo] Support 'content: none' for LayoutNG ::marker

Unlike ::before and ::after, in ::marker 'content: normal' and 'none'
should behave differently: the former should display it normally, the
latter should prevent it from generating a box.

Before this patch, 'normal' and 'none' were both stored as nullptr, so
they were indistinguishable. This patch makes 'none' be stored as a
NoneContentData instead.

However, 'none' keeps behaving as 'normal' for anything different than
::marker. In getComputedStyle, 'none' keeps resolving to 'normal' for
anything different than ::marker, ::before and ::after, and 'normal'
keeps resolving to 'none' for ::before and ::after.

Inheritance is not affected either since the 'content' property can't
be inherited in Chromium.

BUG=457718

TEST=external/wpt/css/css-pseudo/marker-computed-content.html
TEST=external/wpt/css/css-pseudo/marker-computed-size.html
TEST=external/wpt/css/css-pseudo/marker-content-019.html

marker-content-019.html fails in legacy.

Change-Id: Ib71ef18dfb7f7c98e76888bffb408a17fa458235
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2002517
Reviewed-by: Dominic Mazzoni <dmazzoni@chromium.org>
Reviewed-by: Rune Lillesveen <futhark@chromium.org>
Commit-Queue: Oriol Brufau <obrufau@igalia.com>
Cr-Commit-Position: refs/heads/master@{#732549}
18 files changed