style: Part 10: Make source and scroll-offsets accept only default value

Based on our previous patches, we only support default behavior for
source and scroll-offsets:
1. source:auto
2. scroll-offsets: none
3. scroll-offsets: auto, auto, ...

So update the parser for them. We expect to remove whole
@scroll-timeline in Bug 1733260, so now only do a tiny update in parser.

Differential Revision: https://phabricator.services.mozilla.com/D132417
This commit is contained in:
Boris Chiou 2023-06-06 15:27:39 +02:00 committed by Oriol Brufau
parent e66bcf2cc5
commit 9430287183

View file

@ -157,15 +157,19 @@ impl<'a, 'b, 'i> DeclarationParser<'i> for ScrollTimelineDescriptorsParser<'a, '
/// The scroll-timeline source. /// The scroll-timeline source.
/// ///
/// https://drafts.csswg.org/scroll-animations/#descdef-scroll-timeline-source /// https://drafts.csswg.org/scroll-animations/#descdef-scroll-timeline-source
// FIXME: Bug 1733260 may drop the entire @scroll-timeline, and now we don't support source other
// than the default value (so use #[css(skip)]).
#[derive(Clone, Debug, Parse, PartialEq, ToCss, ToShmem)] #[derive(Clone, Debug, Parse, PartialEq, ToCss, ToShmem)]
pub enum Source { pub enum Source {
/// The scroll container. /// The scroll container.
#[css(skip)]
Selector(ScrollTimelineSelector), Selector(ScrollTimelineSelector),
/// The initial value. The scrollingElement of the Document associated with the Window that is /// The initial value. The scrollingElement of the Document associated with the Window that is
/// the current global object. /// the current global object.
Auto, Auto,
/// Null. However, it's not clear what is the expected behavior of this. See the spec issue: /// Null. However, it's not clear what is the expected behavior of this. See the spec issue:
/// https://drafts.csswg.org/scroll-animations/#issue-0d1e73bd /// https://drafts.csswg.org/scroll-animations/#issue-0d1e73bd
#[css(skip)]
None, None,
} }
@ -215,7 +219,7 @@ pub struct ScrollOffsets(#[css(if_empty = "none", iterable)] Box<[ScrollTimeline
impl Parse for ScrollOffsets { impl Parse for ScrollOffsets {
fn parse<'i, 't>( fn parse<'i, 't>(
context: &ParserContext, _context: &ParserContext,
input: &mut Parser<'i, 't>, input: &mut Parser<'i, 't>,
) -> Result<Self, ParseError<'i>> { ) -> Result<Self, ParseError<'i>> {
if input.try_parse(|i| i.expect_ident_matching("none")).is_ok() { if input.try_parse(|i| i.expect_ident_matching("none")).is_ok() {
@ -224,7 +228,7 @@ impl Parse for ScrollOffsets {
Ok(ScrollOffsets( Ok(ScrollOffsets(
input input
.parse_comma_separated(|i| ScrollTimelineOffset::parse(context, i))? .parse_comma_separated(|i| ScrollTimelineOffset::parse(i))?
.into_boxed_slice(), .into_boxed_slice(),
)) ))
} }
@ -234,14 +238,18 @@ impl Parse for ScrollOffsets {
/// value: auto | <length-percentage> | <element-offset> /// value: auto | <length-percentage> | <element-offset>
/// ///
/// https://drafts.csswg.org/scroll-animations/#typedef-scroll-timeline-offset /// https://drafts.csswg.org/scroll-animations/#typedef-scroll-timeline-offset
// FIXME: Bug 1733260 may drop the entire @scroll-timeline, and now we don't support
// <scroll-timeline-offset> other than the default value (so use #[css(skip)]).
#[derive(Clone, Debug, Parse, PartialEq, ToCss, ToShmem)] #[derive(Clone, Debug, Parse, PartialEq, ToCss, ToShmem)]
pub enum ScrollTimelineOffset { pub enum ScrollTimelineOffset {
/// The initial value. A container-based offset. /// The initial value. A container-based offset.
Auto, Auto,
/// A container-based offset with the distance indicated by the value along source's scroll /// A container-based offset with the distance indicated by the value along source's scroll
/// range in orientation. /// range in orientation.
#[css(skip)]
LengthPercentage(LengthPercentage), LengthPercentage(LengthPercentage),
/// An element-based offset. /// An element-based offset.
#[css(skip)]
ElementOffset(ElementOffset), ElementOffset(ElementOffset),
} }