diff --git a/devtools/shared/css/generated/properties-db.js b/devtools/shared/css/generated/properties-db.js index e3ec51466..994dd9348 100644 --- a/devtools/shared/css/generated/properties-db.js +++ b/devtools/shared/css/generated/properties-db.js @@ -6994,6 +6994,26 @@ exports.CSS_PROPERTIES = { "unset" ] }, + "inset-block": { + "isInherited": false, + "subproperties": [ + "inset-block-start", + "inset-block-end" + ], + "supports": [ + 6, + 8 + ], + "values": [ + "-moz-calc", + "auto", + "calc", + "inherit", + "initial", + "revert", + "unset" + ] + }, "inset-block-end": { "isInherited": false, "subproperties": [ @@ -7032,6 +7052,26 @@ exports.CSS_PROPERTIES = { "unset" ] }, + "inset-inline": { + "isInherited": false, + "subproperties": [ + "inset-inline-start", + "inset-inline-end" + ], + "supports": [ + 6, + 8 + ], + "values": [ + "-moz-calc", + "auto", + "calc", + "inherit", + "initial", + "revert", + "unset" + ] + }, "inset-inline-end": { "isInherited": false, "subproperties": [ diff --git a/layout/style/Declaration.cpp b/layout/style/Declaration.cpp index a1634fccb..8c89ee3b4 100644 --- a/layout/style/Declaration.cpp +++ b/layout/style/Declaration.cpp @@ -1559,6 +1559,8 @@ Declaration::GetPropertyValueInternal( } MOZ_FALLTHROUGH; } + case eCSSProperty_inset_block: + case eCSSProperty_inset_inline: case eCSSProperty_margin_block: case eCSSProperty_margin_inline: case eCSSProperty_padding_block: diff --git a/layout/style/nsCSSParser.cpp b/layout/style/nsCSSParser.cpp index 559934869..7dd8f0041 100644 --- a/layout/style/nsCSSParser.cpp +++ b/layout/style/nsCSSParser.cpp @@ -1077,6 +1077,8 @@ protected: bool ParseFontSrcFormat(InfallibleTArray& values); bool ParseFontRanges(nsCSSValue& aValue); bool ParseInset(); + bool ParseInsetBlock(); + bool ParseInsetInline(); bool ParseListStyle(); bool ParseListStyleType(nsCSSValue& aValue); bool ParseMargin(); @@ -12673,6 +12675,10 @@ CSSParserImpl::ParsePropertyByFunction(nsCSSPropertyID aPropID) return ParseJustifyItems(); case eCSSProperty_inset: return ParseInset(); + case eCSSProperty_inset_block: + return ParseInsetBlock(); + case eCSSProperty_inset_inline: + return ParseInsetInline(); case eCSSProperty_list_style: return ParseListStyle(); case eCSSProperty_margin: @@ -16202,6 +16208,24 @@ CSSParserImpl::ParseInset() return ParseBoxProperties(kInsetSideIDs); } +bool +CSSParserImpl::ParseInsetBlock() +{ + return ParseBoxPairProperties(VARIANT_AUTO | VARIANT_INHERIT, + VARIANT_AUTO | VARIANT_LPCALC, + eCSSProperty_inset_block_start, + eCSSProperty_inset_block_end); +} + +bool +CSSParserImpl::ParseInsetInline() +{ + return ParseBoxPairProperties(VARIANT_AUTO | VARIANT_INHERIT, + VARIANT_AUTO | VARIANT_LPCALC, + eCSSProperty_inset_inline_start, + eCSSProperty_inset_inline_end); +} + bool CSSParserImpl::ParseListStyleType(nsCSSValue& aValue) { diff --git a/layout/style/nsCSSPropList.h b/layout/style/nsCSSPropList.h index d58d3f2e9..5306462e2 100644 --- a/layout/style/nsCSSPropList.h +++ b/layout/style/nsCSSPropList.h @@ -2999,6 +2999,12 @@ CSS_PROP_POSITION( kImageLayerPositionKTable, offsetof(nsStylePosition, mObjectPosition), eStyleAnimType_Custom) +CSS_PROP_SHORTHAND( + inset-block, + inset_block, + InsetBlock, + CSS_PROPERTY_PARSE_FUNCTION, + "") CSS_PROP_LOGICAL( inset-block-end, inset_block_end, @@ -3032,6 +3038,12 @@ CSS_PROP_LOGICAL( Position, CSS_PROP_NO_OFFSET, eStyleAnimType_None) +CSS_PROP_SHORTHAND( + inset-inline, + inset_inline, + InsetInline, + CSS_PROPERTY_PARSE_FUNCTION, + "") CSS_PROP_LOGICAL( inset-inline-end, inset_inline_end, diff --git a/layout/style/nsCSSProps.cpp b/layout/style/nsCSSProps.cpp index 35fdcbc60..49f0b4c41 100644 --- a/layout/style/nsCSSProps.cpp +++ b/layout/style/nsCSSProps.cpp @@ -2866,6 +2866,18 @@ static const nsCSSPropertyID gInsetSubpropTable[] = { eCSSProperty_UNKNOWN }; +static const nsCSSPropertyID gInsetBlockSubpropTable[] = { + eCSSProperty_inset_block_start, + eCSSProperty_inset_block_end, + eCSSProperty_UNKNOWN +}; + +static const nsCSSPropertyID gInsetInlineSubpropTable[] = { + eCSSProperty_inset_inline_start, + eCSSProperty_inset_inline_end, + eCSSProperty_UNKNOWN +}; + static const nsCSSPropertyID gListStyleSubpropTable[] = { eCSSProperty_list_style_type, eCSSProperty_list_style_image,