diff --git a/Libraries/LibWeb/CSS/StyleComputer.cpp b/Libraries/LibWeb/CSS/StyleComputer.cpp index 68b355e579b..0b25e519557 100644 --- a/Libraries/LibWeb/CSS/StyleComputer.cpp +++ b/Libraries/LibWeb/CSS/StyleComputer.cpp @@ -3225,6 +3225,8 @@ NonnullRefPtr StyleComputer::compute_value_of_property(Propert case PropertyID::StopOpacity: case PropertyID::StrokeOpacity: return compute_opacity(specified_value, computation_context); + case PropertyID::PositionArea: + return compute_position_area(specified_value); case PropertyID::TextUnderlineOffset: return compute_text_underline_offset(specified_value, computation_context); default: @@ -3567,6 +3569,105 @@ NonnullRefPtr StyleComputer::compute_opacity(NonnullRefPtr StyleComputer::compute_position_area(NonnullRefPtr const& specified_value) +{ + // The computed value of a value is the two keywords indicating the selected tracks in each axis, + // with the long (block-start) and short (start) logical keywords treated as equivalent. It serializes in the order + // given in the grammar (above), with the logical keywords serialized in their short forms (e.g. start start + // instead of block-start inline-start). + if (specified_value->is_keyword()) + return specified_value; + + auto to_short_keyword = [](NonnullRefPtr const& keyword_value) -> NonnullRefPtr { + switch (keyword_value->keyword()) { + case Keyword::BlockStart: + case Keyword::InlineStart: + return KeywordStyleValue::create(Keyword::Start); + case Keyword::BlockEnd: + case Keyword::InlineEnd: + return KeywordStyleValue::create(Keyword::End); + case Keyword::SelfBlockStart: + case Keyword::SelfInlineStart: + return KeywordStyleValue::create(Keyword::SelfStart); + case Keyword::SelfBlockEnd: + case Keyword::SelfInlineEnd: + return KeywordStyleValue::create(Keyword::SelfEnd); + case Keyword::SpanBlockStart: + case Keyword::SpanInlineStart: + return KeywordStyleValue::create(Keyword::SpanStart); + case Keyword::SpanBlockEnd: + case Keyword::SpanInlineEnd: + return KeywordStyleValue::create(Keyword::SpanEnd); + case Keyword::SpanSelfBlockStart: + case Keyword::SpanSelfInlineStart: + return KeywordStyleValue::create(Keyword::SpanSelfStart); + case Keyword::SpanSelfBlockEnd: + case Keyword::SpanSelfInlineEnd: + return KeywordStyleValue::create(Keyword::SpanSelfEnd); + default: + break; + } + return keyword_value; + }; + + auto const& value_list = specified_value->as_value_list(); + VERIFY(value_list.size() == 2); + + auto const& block_value = value_list.values().at(0); + auto const& inline_value = value_list.values().at(1); + if (block_value->as_keyword().keyword() == Keyword::SpanAll) { + switch (inline_value->as_keyword().keyword()) { + case Keyword::Start: + return KeywordStyleValue::create(Keyword::InlineStart); + case Keyword::End: + return KeywordStyleValue::create(Keyword::InlineEnd); + case Keyword::SelfStart: + return KeywordStyleValue::create(Keyword::SelfInlineStart); + case Keyword::SelfEnd: + return KeywordStyleValue::create(Keyword::SelfInlineEnd); + case Keyword::SpanStart: + return KeywordStyleValue::create(Keyword::SpanInlineStart); + case Keyword::SpanEnd: + return KeywordStyleValue::create(Keyword::SpanInlineEnd); + case Keyword::SpanSelfStart: + return KeywordStyleValue::create(Keyword::SpanSelfInlineStart); + case Keyword::SpanSelfEnd: + return KeywordStyleValue::create(Keyword::SpanSelfInlineEnd); + default: + return specified_value; + } + } + if (inline_value->as_keyword().keyword() == Keyword::SpanAll) { + switch (block_value->as_keyword().keyword()) { + case Keyword::Start: + return KeywordStyleValue::create(Keyword::BlockStart); + case Keyword::End: + return KeywordStyleValue::create(Keyword::BlockEnd); + case Keyword::SelfStart: + return KeywordStyleValue::create(Keyword::SelfBlockStart); + case Keyword::SelfEnd: + return KeywordStyleValue::create(Keyword::SelfBlockEnd); + case Keyword::SpanStart: + return KeywordStyleValue::create(Keyword::SpanBlockStart); + case Keyword::SpanEnd: + return KeywordStyleValue::create(Keyword::SpanBlockEnd); + case Keyword::SpanSelfStart: + return KeywordStyleValue::create(Keyword::SpanSelfBlockStart); + case Keyword::SpanSelfEnd: + return KeywordStyleValue::create(Keyword::SpanSelfBlockEnd); + default: + return specified_value; + } + } + auto short_block_value = to_short_keyword(block_value->as_keyword()); + auto short_inline_value = to_short_keyword(inline_value->as_keyword()); + if (*block_value != short_block_value || *inline_value != short_inline_value) + return StyleValueList::create({ short_block_value, short_inline_value }, StyleValueList::Separator::Space); + + return specified_value; +} + NonnullRefPtr StyleComputer::compute_text_underline_offset(NonnullRefPtr const& specified_value, PropertyValueComputationContext const& computation_context) { // https://drafts.csswg.org/css-text-decor-4/#underline-offset diff --git a/Libraries/LibWeb/CSS/StyleComputer.h b/Libraries/LibWeb/CSS/StyleComputer.h index 5bba08dc0db..46f9402415c 100644 --- a/Libraries/LibWeb/CSS/StyleComputer.h +++ b/Libraries/LibWeb/CSS/StyleComputer.h @@ -212,6 +212,7 @@ public: static NonnullRefPtr compute_font_variation_settings(NonnullRefPtr const& specified_value); static NonnullRefPtr compute_line_height(NonnullRefPtr const& specified_value, Length::ResolutionContext const&); static NonnullRefPtr compute_opacity(NonnullRefPtr const& specified_value, PropertyValueComputationContext const&); + static NonnullRefPtr compute_position_area(NonnullRefPtr const& specified_value); static NonnullRefPtr compute_text_underline_offset(NonnullRefPtr const& specified_value, PropertyValueComputationContext const&); private: diff --git a/Tests/LibWeb/Text/expected/wpt-import/css/css-anchor-position/position-area-computed.txt b/Tests/LibWeb/Text/expected/wpt-import/css/css-anchor-position/position-area-computed.txt new file mode 100644 index 00000000000..08229a3aaed --- /dev/null +++ b/Tests/LibWeb/Text/expected/wpt-import/css/css-anchor-position/position-area-computed.txt @@ -0,0 +1,638 @@ +Harness status: OK + +Found 633 tests + +633 Pass +Pass Property position-area value 'none' +Pass Property position-area value 'span-all' +Pass Property position-area value 'center' +Pass Property position-area value 'left' +Pass Property position-area value 'right' +Pass Property position-area value 'span-left' +Pass Property position-area value 'span-right' +Pass Property position-area value 'x-start' +Pass Property position-area value 'x-end' +Pass Property position-area value 'span-x-start' +Pass Property position-area value 'span-x-end' +Pass Property position-area value 'x-self-start' +Pass Property position-area value 'x-self-end' +Pass Property position-area value 'span-x-self-start' +Pass Property position-area value 'span-x-self-end' +Pass Property position-area value 'top' +Pass Property position-area value 'bottom' +Pass Property position-area value 'span-top' +Pass Property position-area value 'span-bottom' +Pass Property position-area value 'y-start' +Pass Property position-area value 'y-end' +Pass Property position-area value 'span-y-start' +Pass Property position-area value 'span-y-end' +Pass Property position-area value 'y-self-start' +Pass Property position-area value 'y-self-end' +Pass Property position-area value 'span-y-self-start' +Pass Property position-area value 'span-y-self-end' +Pass Property position-area value 'inline-start' +Pass Property position-area value 'inline-end' +Pass Property position-area value 'span-inline-start' +Pass Property position-area value 'span-inline-end' +Pass Property position-area value 'block-start' +Pass Property position-area value 'block-end' +Pass Property position-area value 'span-block-start' +Pass Property position-area value 'span-block-end' +Pass Property position-area value 'self-inline-start' +Pass Property position-area value 'self-inline-end' +Pass Property position-area value 'span-self-inline-start' +Pass Property position-area value 'span-self-inline-end' +Pass Property position-area value 'self-block-start' +Pass Property position-area value 'self-block-end' +Pass Property position-area value 'span-self-block-start' +Pass Property position-area value 'span-self-block-end' +Pass Property position-area value 'start' +Pass Property position-area value 'end' +Pass Property position-area value 'span-start' +Pass Property position-area value 'span-end' +Pass Property position-area value 'self-start' +Pass Property position-area value 'self-end' +Pass Property position-area value 'span-self-start' +Pass Property position-area value 'span-self-end' +Pass Property position-area value 'left top' +Pass Property position-area value 'top left' +Pass Property position-area value 'left bottom' +Pass Property position-area value 'bottom left' +Pass Property position-area value 'left span-top' +Pass Property position-area value 'span-top left' +Pass Property position-area value 'left span-bottom' +Pass Property position-area value 'span-bottom left' +Pass Property position-area value 'left y-start' +Pass Property position-area value 'y-start left' +Pass Property position-area value 'left y-end' +Pass Property position-area value 'y-end left' +Pass Property position-area value 'left span-y-start' +Pass Property position-area value 'span-y-start left' +Pass Property position-area value 'left span-y-end' +Pass Property position-area value 'span-y-end left' +Pass Property position-area value 'left y-self-start' +Pass Property position-area value 'y-self-start left' +Pass Property position-area value 'left y-self-end' +Pass Property position-area value 'y-self-end left' +Pass Property position-area value 'left span-y-self-start' +Pass Property position-area value 'span-y-self-start left' +Pass Property position-area value 'left span-y-self-end' +Pass Property position-area value 'span-y-self-end left' +Pass Property position-area value 'right top' +Pass Property position-area value 'top right' +Pass Property position-area value 'right bottom' +Pass Property position-area value 'bottom right' +Pass Property position-area value 'right span-top' +Pass Property position-area value 'span-top right' +Pass Property position-area value 'right span-bottom' +Pass Property position-area value 'span-bottom right' +Pass Property position-area value 'right y-start' +Pass Property position-area value 'y-start right' +Pass Property position-area value 'right y-end' +Pass Property position-area value 'y-end right' +Pass Property position-area value 'right span-y-start' +Pass Property position-area value 'span-y-start right' +Pass Property position-area value 'right span-y-end' +Pass Property position-area value 'span-y-end right' +Pass Property position-area value 'right y-self-start' +Pass Property position-area value 'y-self-start right' +Pass Property position-area value 'right y-self-end' +Pass Property position-area value 'y-self-end right' +Pass Property position-area value 'right span-y-self-start' +Pass Property position-area value 'span-y-self-start right' +Pass Property position-area value 'right span-y-self-end' +Pass Property position-area value 'span-y-self-end right' +Pass Property position-area value 'span-left top' +Pass Property position-area value 'top span-left' +Pass Property position-area value 'span-left bottom' +Pass Property position-area value 'bottom span-left' +Pass Property position-area value 'span-left span-top' +Pass Property position-area value 'span-top span-left' +Pass Property position-area value 'span-left span-bottom' +Pass Property position-area value 'span-bottom span-left' +Pass Property position-area value 'span-left y-start' +Pass Property position-area value 'y-start span-left' +Pass Property position-area value 'span-left y-end' +Pass Property position-area value 'y-end span-left' +Pass Property position-area value 'span-left span-y-start' +Pass Property position-area value 'span-y-start span-left' +Pass Property position-area value 'span-left span-y-end' +Pass Property position-area value 'span-y-end span-left' +Pass Property position-area value 'span-left y-self-start' +Pass Property position-area value 'y-self-start span-left' +Pass Property position-area value 'span-left y-self-end' +Pass Property position-area value 'y-self-end span-left' +Pass Property position-area value 'span-left span-y-self-start' +Pass Property position-area value 'span-y-self-start span-left' +Pass Property position-area value 'span-left span-y-self-end' +Pass Property position-area value 'span-y-self-end span-left' +Pass Property position-area value 'span-right top' +Pass Property position-area value 'top span-right' +Pass Property position-area value 'span-right bottom' +Pass Property position-area value 'bottom span-right' +Pass Property position-area value 'span-right span-top' +Pass Property position-area value 'span-top span-right' +Pass Property position-area value 'span-right span-bottom' +Pass Property position-area value 'span-bottom span-right' +Pass Property position-area value 'span-right y-start' +Pass Property position-area value 'y-start span-right' +Pass Property position-area value 'span-right y-end' +Pass Property position-area value 'y-end span-right' +Pass Property position-area value 'span-right span-y-start' +Pass Property position-area value 'span-y-start span-right' +Pass Property position-area value 'span-right span-y-end' +Pass Property position-area value 'span-y-end span-right' +Pass Property position-area value 'span-right y-self-start' +Pass Property position-area value 'y-self-start span-right' +Pass Property position-area value 'span-right y-self-end' +Pass Property position-area value 'y-self-end span-right' +Pass Property position-area value 'span-right span-y-self-start' +Pass Property position-area value 'span-y-self-start span-right' +Pass Property position-area value 'span-right span-y-self-end' +Pass Property position-area value 'span-y-self-end span-right' +Pass Property position-area value 'x-start top' +Pass Property position-area value 'top x-start' +Pass Property position-area value 'x-start bottom' +Pass Property position-area value 'bottom x-start' +Pass Property position-area value 'x-start span-top' +Pass Property position-area value 'span-top x-start' +Pass Property position-area value 'x-start span-bottom' +Pass Property position-area value 'span-bottom x-start' +Pass Property position-area value 'x-start y-start' +Pass Property position-area value 'y-start x-start' +Pass Property position-area value 'x-start y-end' +Pass Property position-area value 'y-end x-start' +Pass Property position-area value 'x-start span-y-start' +Pass Property position-area value 'span-y-start x-start' +Pass Property position-area value 'x-start span-y-end' +Pass Property position-area value 'span-y-end x-start' +Pass Property position-area value 'x-start y-self-start' +Pass Property position-area value 'y-self-start x-start' +Pass Property position-area value 'x-start y-self-end' +Pass Property position-area value 'y-self-end x-start' +Pass Property position-area value 'x-start span-y-self-start' +Pass Property position-area value 'span-y-self-start x-start' +Pass Property position-area value 'x-start span-y-self-end' +Pass Property position-area value 'span-y-self-end x-start' +Pass Property position-area value 'x-end top' +Pass Property position-area value 'top x-end' +Pass Property position-area value 'x-end bottom' +Pass Property position-area value 'bottom x-end' +Pass Property position-area value 'x-end span-top' +Pass Property position-area value 'span-top x-end' +Pass Property position-area value 'x-end span-bottom' +Pass Property position-area value 'span-bottom x-end' +Pass Property position-area value 'x-end y-start' +Pass Property position-area value 'y-start x-end' +Pass Property position-area value 'x-end y-end' +Pass Property position-area value 'y-end x-end' +Pass Property position-area value 'x-end span-y-start' +Pass Property position-area value 'span-y-start x-end' +Pass Property position-area value 'x-end span-y-end' +Pass Property position-area value 'span-y-end x-end' +Pass Property position-area value 'x-end y-self-start' +Pass Property position-area value 'y-self-start x-end' +Pass Property position-area value 'x-end y-self-end' +Pass Property position-area value 'y-self-end x-end' +Pass Property position-area value 'x-end span-y-self-start' +Pass Property position-area value 'span-y-self-start x-end' +Pass Property position-area value 'x-end span-y-self-end' +Pass Property position-area value 'span-y-self-end x-end' +Pass Property position-area value 'span-x-start top' +Pass Property position-area value 'top span-x-start' +Pass Property position-area value 'span-x-start bottom' +Pass Property position-area value 'bottom span-x-start' +Pass Property position-area value 'span-x-start span-top' +Pass Property position-area value 'span-top span-x-start' +Pass Property position-area value 'span-x-start span-bottom' +Pass Property position-area value 'span-bottom span-x-start' +Pass Property position-area value 'span-x-start y-start' +Pass Property position-area value 'y-start span-x-start' +Pass Property position-area value 'span-x-start y-end' +Pass Property position-area value 'y-end span-x-start' +Pass Property position-area value 'span-x-start span-y-start' +Pass Property position-area value 'span-y-start span-x-start' +Pass Property position-area value 'span-x-start span-y-end' +Pass Property position-area value 'span-y-end span-x-start' +Pass Property position-area value 'span-x-start y-self-start' +Pass Property position-area value 'y-self-start span-x-start' +Pass Property position-area value 'span-x-start y-self-end' +Pass Property position-area value 'y-self-end span-x-start' +Pass Property position-area value 'span-x-start span-y-self-start' +Pass Property position-area value 'span-y-self-start span-x-start' +Pass Property position-area value 'span-x-start span-y-self-end' +Pass Property position-area value 'span-y-self-end span-x-start' +Pass Property position-area value 'span-x-end top' +Pass Property position-area value 'top span-x-end' +Pass Property position-area value 'span-x-end bottom' +Pass Property position-area value 'bottom span-x-end' +Pass Property position-area value 'span-x-end span-top' +Pass Property position-area value 'span-top span-x-end' +Pass Property position-area value 'span-x-end span-bottom' +Pass Property position-area value 'span-bottom span-x-end' +Pass Property position-area value 'span-x-end y-start' +Pass Property position-area value 'y-start span-x-end' +Pass Property position-area value 'span-x-end y-end' +Pass Property position-area value 'y-end span-x-end' +Pass Property position-area value 'span-x-end span-y-start' +Pass Property position-area value 'span-y-start span-x-end' +Pass Property position-area value 'span-x-end span-y-end' +Pass Property position-area value 'span-y-end span-x-end' +Pass Property position-area value 'span-x-end y-self-start' +Pass Property position-area value 'y-self-start span-x-end' +Pass Property position-area value 'span-x-end y-self-end' +Pass Property position-area value 'y-self-end span-x-end' +Pass Property position-area value 'span-x-end span-y-self-start' +Pass Property position-area value 'span-y-self-start span-x-end' +Pass Property position-area value 'span-x-end span-y-self-end' +Pass Property position-area value 'span-y-self-end span-x-end' +Pass Property position-area value 'x-self-start top' +Pass Property position-area value 'top x-self-start' +Pass Property position-area value 'x-self-start bottom' +Pass Property position-area value 'bottom x-self-start' +Pass Property position-area value 'x-self-start span-top' +Pass Property position-area value 'span-top x-self-start' +Pass Property position-area value 'x-self-start span-bottom' +Pass Property position-area value 'span-bottom x-self-start' +Pass Property position-area value 'x-self-start y-start' +Pass Property position-area value 'y-start x-self-start' +Pass Property position-area value 'x-self-start y-end' +Pass Property position-area value 'y-end x-self-start' +Pass Property position-area value 'x-self-start span-y-start' +Pass Property position-area value 'span-y-start x-self-start' +Pass Property position-area value 'x-self-start span-y-end' +Pass Property position-area value 'span-y-end x-self-start' +Pass Property position-area value 'x-self-start y-self-start' +Pass Property position-area value 'y-self-start x-self-start' +Pass Property position-area value 'x-self-start y-self-end' +Pass Property position-area value 'y-self-end x-self-start' +Pass Property position-area value 'x-self-start span-y-self-start' +Pass Property position-area value 'span-y-self-start x-self-start' +Pass Property position-area value 'x-self-start span-y-self-end' +Pass Property position-area value 'span-y-self-end x-self-start' +Pass Property position-area value 'x-self-end top' +Pass Property position-area value 'top x-self-end' +Pass Property position-area value 'x-self-end bottom' +Pass Property position-area value 'bottom x-self-end' +Pass Property position-area value 'x-self-end span-top' +Pass Property position-area value 'span-top x-self-end' +Pass Property position-area value 'x-self-end span-bottom' +Pass Property position-area value 'span-bottom x-self-end' +Pass Property position-area value 'x-self-end y-start' +Pass Property position-area value 'y-start x-self-end' +Pass Property position-area value 'x-self-end y-end' +Pass Property position-area value 'y-end x-self-end' +Pass Property position-area value 'x-self-end span-y-start' +Pass Property position-area value 'span-y-start x-self-end' +Pass Property position-area value 'x-self-end span-y-end' +Pass Property position-area value 'span-y-end x-self-end' +Pass Property position-area value 'x-self-end y-self-start' +Pass Property position-area value 'y-self-start x-self-end' +Pass Property position-area value 'x-self-end y-self-end' +Pass Property position-area value 'y-self-end x-self-end' +Pass Property position-area value 'x-self-end span-y-self-start' +Pass Property position-area value 'span-y-self-start x-self-end' +Pass Property position-area value 'x-self-end span-y-self-end' +Pass Property position-area value 'span-y-self-end x-self-end' +Pass Property position-area value 'span-x-self-start top' +Pass Property position-area value 'top span-x-self-start' +Pass Property position-area value 'span-x-self-start bottom' +Pass Property position-area value 'bottom span-x-self-start' +Pass Property position-area value 'span-x-self-start span-top' +Pass Property position-area value 'span-top span-x-self-start' +Pass Property position-area value 'span-x-self-start span-bottom' +Pass Property position-area value 'span-bottom span-x-self-start' +Pass Property position-area value 'span-x-self-start y-start' +Pass Property position-area value 'y-start span-x-self-start' +Pass Property position-area value 'span-x-self-start y-end' +Pass Property position-area value 'y-end span-x-self-start' +Pass Property position-area value 'span-x-self-start span-y-start' +Pass Property position-area value 'span-y-start span-x-self-start' +Pass Property position-area value 'span-x-self-start span-y-end' +Pass Property position-area value 'span-y-end span-x-self-start' +Pass Property position-area value 'span-x-self-start y-self-start' +Pass Property position-area value 'y-self-start span-x-self-start' +Pass Property position-area value 'span-x-self-start y-self-end' +Pass Property position-area value 'y-self-end span-x-self-start' +Pass Property position-area value 'span-x-self-start span-y-self-start' +Pass Property position-area value 'span-y-self-start span-x-self-start' +Pass Property position-area value 'span-x-self-start span-y-self-end' +Pass Property position-area value 'span-y-self-end span-x-self-start' +Pass Property position-area value 'span-x-self-end top' +Pass Property position-area value 'top span-x-self-end' +Pass Property position-area value 'span-x-self-end bottom' +Pass Property position-area value 'bottom span-x-self-end' +Pass Property position-area value 'span-x-self-end span-top' +Pass Property position-area value 'span-top span-x-self-end' +Pass Property position-area value 'span-x-self-end span-bottom' +Pass Property position-area value 'span-bottom span-x-self-end' +Pass Property position-area value 'span-x-self-end y-start' +Pass Property position-area value 'y-start span-x-self-end' +Pass Property position-area value 'span-x-self-end y-end' +Pass Property position-area value 'y-end span-x-self-end' +Pass Property position-area value 'span-x-self-end span-y-start' +Pass Property position-area value 'span-y-start span-x-self-end' +Pass Property position-area value 'span-x-self-end span-y-end' +Pass Property position-area value 'span-y-end span-x-self-end' +Pass Property position-area value 'span-x-self-end y-self-start' +Pass Property position-area value 'y-self-start span-x-self-end' +Pass Property position-area value 'span-x-self-end y-self-end' +Pass Property position-area value 'y-self-end span-x-self-end' +Pass Property position-area value 'span-x-self-end span-y-self-start' +Pass Property position-area value 'span-y-self-start span-x-self-end' +Pass Property position-area value 'span-x-self-end span-y-self-end' +Pass Property position-area value 'span-y-self-end span-x-self-end' +Pass Property position-area value 'left span-all' +Pass Property position-area value 'span-all left' +Pass Property position-area value 'left center' +Pass Property position-area value 'center left' +Pass Property position-area value 'right span-all' +Pass Property position-area value 'span-all right' +Pass Property position-area value 'right center' +Pass Property position-area value 'center right' +Pass Property position-area value 'span-left span-all' +Pass Property position-area value 'span-all span-left' +Pass Property position-area value 'span-left center' +Pass Property position-area value 'center span-left' +Pass Property position-area value 'span-right span-all' +Pass Property position-area value 'span-all span-right' +Pass Property position-area value 'span-right center' +Pass Property position-area value 'center span-right' +Pass Property position-area value 'x-start span-all' +Pass Property position-area value 'span-all x-start' +Pass Property position-area value 'x-start center' +Pass Property position-area value 'center x-start' +Pass Property position-area value 'x-end span-all' +Pass Property position-area value 'span-all x-end' +Pass Property position-area value 'x-end center' +Pass Property position-area value 'center x-end' +Pass Property position-area value 'span-x-start span-all' +Pass Property position-area value 'span-all span-x-start' +Pass Property position-area value 'span-x-start center' +Pass Property position-area value 'center span-x-start' +Pass Property position-area value 'span-x-end span-all' +Pass Property position-area value 'span-all span-x-end' +Pass Property position-area value 'span-x-end center' +Pass Property position-area value 'center span-x-end' +Pass Property position-area value 'x-self-start span-all' +Pass Property position-area value 'span-all x-self-start' +Pass Property position-area value 'x-self-start center' +Pass Property position-area value 'center x-self-start' +Pass Property position-area value 'x-self-end span-all' +Pass Property position-area value 'span-all x-self-end' +Pass Property position-area value 'x-self-end center' +Pass Property position-area value 'center x-self-end' +Pass Property position-area value 'span-x-self-start span-all' +Pass Property position-area value 'span-all span-x-self-start' +Pass Property position-area value 'span-x-self-start center' +Pass Property position-area value 'center span-x-self-start' +Pass Property position-area value 'span-x-self-end span-all' +Pass Property position-area value 'span-all span-x-self-end' +Pass Property position-area value 'span-x-self-end center' +Pass Property position-area value 'center span-x-self-end' +Pass Property position-area value 'span-all top' +Pass Property position-area value 'top span-all' +Pass Property position-area value 'center top' +Pass Property position-area value 'top center' +Pass Property position-area value 'span-all bottom' +Pass Property position-area value 'bottom span-all' +Pass Property position-area value 'center bottom' +Pass Property position-area value 'bottom center' +Pass Property position-area value 'span-all span-top' +Pass Property position-area value 'span-top span-all' +Pass Property position-area value 'center span-top' +Pass Property position-area value 'span-top center' +Pass Property position-area value 'span-all span-bottom' +Pass Property position-area value 'span-bottom span-all' +Pass Property position-area value 'center span-bottom' +Pass Property position-area value 'span-bottom center' +Pass Property position-area value 'span-all y-start' +Pass Property position-area value 'y-start span-all' +Pass Property position-area value 'center y-start' +Pass Property position-area value 'y-start center' +Pass Property position-area value 'span-all y-end' +Pass Property position-area value 'y-end span-all' +Pass Property position-area value 'center y-end' +Pass Property position-area value 'y-end center' +Pass Property position-area value 'span-all span-y-start' +Pass Property position-area value 'span-y-start span-all' +Pass Property position-area value 'center span-y-start' +Pass Property position-area value 'span-y-start center' +Pass Property position-area value 'span-all span-y-end' +Pass Property position-area value 'span-y-end span-all' +Pass Property position-area value 'center span-y-end' +Pass Property position-area value 'span-y-end center' +Pass Property position-area value 'span-all y-self-start' +Pass Property position-area value 'y-self-start span-all' +Pass Property position-area value 'center y-self-start' +Pass Property position-area value 'y-self-start center' +Pass Property position-area value 'span-all y-self-end' +Pass Property position-area value 'y-self-end span-all' +Pass Property position-area value 'center y-self-end' +Pass Property position-area value 'y-self-end center' +Pass Property position-area value 'span-all span-y-self-start' +Pass Property position-area value 'span-y-self-start span-all' +Pass Property position-area value 'center span-y-self-start' +Pass Property position-area value 'span-y-self-start center' +Pass Property position-area value 'span-all span-y-self-end' +Pass Property position-area value 'span-y-self-end span-all' +Pass Property position-area value 'center span-y-self-end' +Pass Property position-area value 'span-y-self-end center' +Pass Property position-area value 'block-start inline-start' +Pass Property position-area value 'inline-start block-start' +Pass Property position-area value 'block-start inline-end' +Pass Property position-area value 'inline-end block-start' +Pass Property position-area value 'block-start span-inline-start' +Pass Property position-area value 'span-inline-start block-start' +Pass Property position-area value 'block-start span-inline-end' +Pass Property position-area value 'span-inline-end block-start' +Pass Property position-area value 'block-end inline-start' +Pass Property position-area value 'inline-start block-end' +Pass Property position-area value 'block-end inline-end' +Pass Property position-area value 'inline-end block-end' +Pass Property position-area value 'block-end span-inline-start' +Pass Property position-area value 'span-inline-start block-end' +Pass Property position-area value 'block-end span-inline-end' +Pass Property position-area value 'span-inline-end block-end' +Pass Property position-area value 'span-block-start inline-start' +Pass Property position-area value 'inline-start span-block-start' +Pass Property position-area value 'span-block-start inline-end' +Pass Property position-area value 'inline-end span-block-start' +Pass Property position-area value 'span-block-start span-inline-start' +Pass Property position-area value 'span-inline-start span-block-start' +Pass Property position-area value 'span-block-start span-inline-end' +Pass Property position-area value 'span-inline-end span-block-start' +Pass Property position-area value 'span-block-end inline-start' +Pass Property position-area value 'inline-start span-block-end' +Pass Property position-area value 'span-block-end inline-end' +Pass Property position-area value 'inline-end span-block-end' +Pass Property position-area value 'span-block-end span-inline-start' +Pass Property position-area value 'span-inline-start span-block-end' +Pass Property position-area value 'span-block-end span-inline-end' +Pass Property position-area value 'span-inline-end span-block-end' +Pass Property position-area value 'block-start span-all' +Pass Property position-area value 'span-all block-start' +Pass Property position-area value 'block-start center' +Pass Property position-area value 'center block-start' +Pass Property position-area value 'block-end span-all' +Pass Property position-area value 'span-all block-end' +Pass Property position-area value 'block-end center' +Pass Property position-area value 'center block-end' +Pass Property position-area value 'span-block-start span-all' +Pass Property position-area value 'span-all span-block-start' +Pass Property position-area value 'span-block-start center' +Pass Property position-area value 'center span-block-start' +Pass Property position-area value 'span-block-end span-all' +Pass Property position-area value 'span-all span-block-end' +Pass Property position-area value 'span-block-end center' +Pass Property position-area value 'center span-block-end' +Pass Property position-area value 'inline-start span-all' +Pass Property position-area value 'span-all inline-start' +Pass Property position-area value 'inline-start center' +Pass Property position-area value 'center inline-start' +Pass Property position-area value 'inline-end span-all' +Pass Property position-area value 'span-all inline-end' +Pass Property position-area value 'inline-end center' +Pass Property position-area value 'center inline-end' +Pass Property position-area value 'span-inline-start span-all' +Pass Property position-area value 'span-all span-inline-start' +Pass Property position-area value 'span-inline-start center' +Pass Property position-area value 'center span-inline-start' +Pass Property position-area value 'span-inline-end span-all' +Pass Property position-area value 'span-all span-inline-end' +Pass Property position-area value 'span-inline-end center' +Pass Property position-area value 'center span-inline-end' +Pass Property position-area value 'self-block-start self-inline-start' +Pass Property position-area value 'self-inline-start self-block-start' +Pass Property position-area value 'self-block-start self-inline-end' +Pass Property position-area value 'self-inline-end self-block-start' +Pass Property position-area value 'self-block-start span-self-inline-start' +Pass Property position-area value 'span-self-inline-start self-block-start' +Pass Property position-area value 'self-block-start span-self-inline-end' +Pass Property position-area value 'span-self-inline-end self-block-start' +Pass Property position-area value 'self-block-end self-inline-start' +Pass Property position-area value 'self-inline-start self-block-end' +Pass Property position-area value 'self-block-end self-inline-end' +Pass Property position-area value 'self-inline-end self-block-end' +Pass Property position-area value 'self-block-end span-self-inline-start' +Pass Property position-area value 'span-self-inline-start self-block-end' +Pass Property position-area value 'self-block-end span-self-inline-end' +Pass Property position-area value 'span-self-inline-end self-block-end' +Pass Property position-area value 'span-self-block-start self-inline-start' +Pass Property position-area value 'self-inline-start span-self-block-start' +Pass Property position-area value 'span-self-block-start self-inline-end' +Pass Property position-area value 'self-inline-end span-self-block-start' +Pass Property position-area value 'span-self-block-start span-self-inline-start' +Pass Property position-area value 'span-self-inline-start span-self-block-start' +Pass Property position-area value 'span-self-block-start span-self-inline-end' +Pass Property position-area value 'span-self-inline-end span-self-block-start' +Pass Property position-area value 'span-self-block-end self-inline-start' +Pass Property position-area value 'self-inline-start span-self-block-end' +Pass Property position-area value 'span-self-block-end self-inline-end' +Pass Property position-area value 'self-inline-end span-self-block-end' +Pass Property position-area value 'span-self-block-end span-self-inline-start' +Pass Property position-area value 'span-self-inline-start span-self-block-end' +Pass Property position-area value 'span-self-block-end span-self-inline-end' +Pass Property position-area value 'span-self-inline-end span-self-block-end' +Pass Property position-area value 'self-block-start span-all' +Pass Property position-area value 'span-all self-block-start' +Pass Property position-area value 'self-block-start center' +Pass Property position-area value 'center self-block-start' +Pass Property position-area value 'self-block-end span-all' +Pass Property position-area value 'span-all self-block-end' +Pass Property position-area value 'self-block-end center' +Pass Property position-area value 'center self-block-end' +Pass Property position-area value 'span-self-block-start span-all' +Pass Property position-area value 'span-all span-self-block-start' +Pass Property position-area value 'span-self-block-start center' +Pass Property position-area value 'center span-self-block-start' +Pass Property position-area value 'span-self-block-end span-all' +Pass Property position-area value 'span-all span-self-block-end' +Pass Property position-area value 'span-self-block-end center' +Pass Property position-area value 'center span-self-block-end' +Pass Property position-area value 'self-inline-start span-all' +Pass Property position-area value 'span-all self-inline-start' +Pass Property position-area value 'self-inline-start center' +Pass Property position-area value 'center self-inline-start' +Pass Property position-area value 'self-inline-end span-all' +Pass Property position-area value 'span-all self-inline-end' +Pass Property position-area value 'self-inline-end center' +Pass Property position-area value 'center self-inline-end' +Pass Property position-area value 'span-self-inline-start span-all' +Pass Property position-area value 'span-all span-self-inline-start' +Pass Property position-area value 'span-self-inline-start center' +Pass Property position-area value 'center span-self-inline-start' +Pass Property position-area value 'span-self-inline-end span-all' +Pass Property position-area value 'span-all span-self-inline-end' +Pass Property position-area value 'span-self-inline-end center' +Pass Property position-area value 'center span-self-inline-end' +Pass Property position-area value 'start start' +Pass Property position-area value 'start end' +Pass Property position-area value 'start span-start' +Pass Property position-area value 'start span-end' +Pass Property position-area value 'end start' +Pass Property position-area value 'end end' +Pass Property position-area value 'end span-start' +Pass Property position-area value 'end span-end' +Pass Property position-area value 'span-start start' +Pass Property position-area value 'span-start end' +Pass Property position-area value 'span-start span-start' +Pass Property position-area value 'span-start span-end' +Pass Property position-area value 'span-end start' +Pass Property position-area value 'span-end end' +Pass Property position-area value 'span-end span-start' +Pass Property position-area value 'span-end span-end' +Pass Property position-area value 'start span-all' +Pass Property position-area value 'span-all start' +Pass Property position-area value 'start center' +Pass Property position-area value 'center start' +Pass Property position-area value 'end span-all' +Pass Property position-area value 'span-all end' +Pass Property position-area value 'end center' +Pass Property position-area value 'center end' +Pass Property position-area value 'span-start span-all' +Pass Property position-area value 'span-all span-start' +Pass Property position-area value 'span-start center' +Pass Property position-area value 'center span-start' +Pass Property position-area value 'span-end span-all' +Pass Property position-area value 'span-all span-end' +Pass Property position-area value 'span-end center' +Pass Property position-area value 'center span-end' +Pass Property position-area value 'self-start self-start' +Pass Property position-area value 'self-start self-end' +Pass Property position-area value 'self-start span-self-start' +Pass Property position-area value 'self-start span-self-end' +Pass Property position-area value 'self-end self-start' +Pass Property position-area value 'self-end self-end' +Pass Property position-area value 'self-end span-self-start' +Pass Property position-area value 'self-end span-self-end' +Pass Property position-area value 'span-self-start self-start' +Pass Property position-area value 'span-self-start self-end' +Pass Property position-area value 'span-self-start span-self-start' +Pass Property position-area value 'span-self-start span-self-end' +Pass Property position-area value 'span-self-end self-start' +Pass Property position-area value 'span-self-end self-end' +Pass Property position-area value 'span-self-end span-self-start' +Pass Property position-area value 'span-self-end span-self-end' +Pass Property position-area value 'self-start span-all' +Pass Property position-area value 'span-all self-start' +Pass Property position-area value 'self-start center' +Pass Property position-area value 'center self-start' +Pass Property position-area value 'self-end span-all' +Pass Property position-area value 'span-all self-end' +Pass Property position-area value 'self-end center' +Pass Property position-area value 'center self-end' +Pass Property position-area value 'span-self-start span-all' +Pass Property position-area value 'span-all span-self-start' +Pass Property position-area value 'span-self-start center' +Pass Property position-area value 'center span-self-start' +Pass Property position-area value 'span-self-end span-all' +Pass Property position-area value 'span-all span-self-end' +Pass Property position-area value 'span-self-end center' +Pass Property position-area value 'center span-self-end' +Pass Property position-area value 'span-all span-all' +Pass Property position-area value 'span-all center' +Pass Property position-area value 'center span-all' +Pass Property position-area value 'center center' +Pass Property position-area has initial value none +Pass Property position-area does not inherit \ No newline at end of file diff --git a/Tests/LibWeb/Text/input/wpt-import/css/css-anchor-position/position-area-computed.html b/Tests/LibWeb/Text/input/wpt-import/css/css-anchor-position/position-area-computed.html new file mode 100644 index 00000000000..d9fc5d81a71 --- /dev/null +++ b/Tests/LibWeb/Text/input/wpt-import/css/css-anchor-position/position-area-computed.html @@ -0,0 +1,197 @@ + +CSS Anchor Positioning: position-area getComputedStyle() + + + + + +
+
+
+ \ No newline at end of file