Issue #2477 - Part 2: Implement shorthand properties for [margin/padding][block/inline]

This commit is contained in:
FranklinDM 2024-03-29 20:34:58 +08:00 committed by roytam1
commit bfe76f65db
5 changed files with 157 additions and 0 deletions

View file

@ -1084,12 +1084,16 @@ protected:
bool ParseListStyle();
bool ParseListStyleType(nsCSSValue& aValue);
bool ParseMargin();
bool ParseMarginBlock();
bool ParseMarginInline();
bool ParseClipPath(nsCSSValue& aValue);
bool ParseTransform(bool aIsPrefixed, bool aDisallowRelativeValues = false);
bool ParseObjectPosition();
bool ParseOutline();
bool ParseOverflow();
bool ParsePadding();
bool ParsePaddingBlock();
bool ParsePaddingInline();
bool ParseQuotes();
bool ParseTextAlign(nsCSSValue& aValue,
const KTableEntry aTable[]);
@ -12053,6 +12057,10 @@ CSSParserImpl::ParsePropertyByFunction(nsCSSPropertyID aPropID)
return ParseListStyle();
case eCSSProperty_margin:
return ParseMargin();
case eCSSProperty_margin_block:
return ParseMarginBlock();
case eCSSProperty_margin_inline:
return ParseMarginInline();
case eCSSProperty_object_position:
return ParseObjectPosition();
case eCSSProperty_outline:
@ -12061,6 +12069,10 @@ CSSParserImpl::ParsePropertyByFunction(nsCSSPropertyID aPropID)
return ParseOverflow();
case eCSSProperty_padding:
return ParsePadding();
case eCSSProperty_padding_block:
return ParsePaddingBlock();
case eCSSProperty_padding_inline:
return ParsePaddingInline();
case eCSSProperty_quotes:
return ParseQuotes();
case eCSSProperty_text_decoration:
@ -15511,6 +15523,20 @@ CSSParserImpl::ParseMargin()
return ParseBoxProperties(kMarginSideIDs);
}
bool
CSSParserImpl::ParseMarginBlock()
{
return ParseBoxPairProperties(eCSSProperty_margin_block_start,
eCSSProperty_margin_block_end);
}
bool
CSSParserImpl::ParseMarginInline()
{
return ParseBoxPairProperties(eCSSProperty_margin_inline_start,
eCSSProperty_margin_inline_end);
}
bool
CSSParserImpl::ParseObjectPosition()
{
@ -15597,6 +15623,20 @@ CSSParserImpl::ParsePadding()
return ParseBoxProperties(kPaddingSideIDs);
}
bool
CSSParserImpl::ParsePaddingBlock()
{
return ParseBoxPairProperties(eCSSProperty_padding_block_start,
eCSSProperty_padding_block_end);
}
bool
CSSParserImpl::ParsePaddingInline()
{
return ParseBoxPairProperties(eCSSProperty_padding_inline_start,
eCSSProperty_padding_inline_end);
}
bool
CSSParserImpl::ParseQuotes()
{