diff --git a/layout/style/StyleAnimationValue.cpp b/layout/style/StyleAnimationValue.cpp index be062cc49a5d..0673707d56a4 100644 --- a/layout/style/StyleAnimationValue.cpp +++ b/layout/style/StyleAnimationValue.cpp @@ -4221,6 +4221,12 @@ StyleAnimationValue::ExtractComputedValue(nsCSSProperty aProperty, return true; } case eStyleAnimType_Discrete: { + if (aProperty == eCSSProperty_visibility) { + aComputedValue.SetIntValue( + static_cast(styleStruct)->mVisible, + eUnit_Visibility); + return true; + } auto cssValue = MakeUnique(eCSSUnit_Unset); aStyleContext->RuleNode()->GetDiscretelyAnimatedCSSValue(aProperty, cssValue.get()); diff --git a/layout/style/nsCSSPropList.h b/layout/style/nsCSSPropList.h index 26edead97568..8795dd44d0c2 100644 --- a/layout/style/nsCSSPropList.h +++ b/layout/style/nsCSSPropList.h @@ -1434,8 +1434,8 @@ CSS_PROP_SVG( "", VARIANT_HK, kFillRuleKTable, - offsetof(nsStyleSVG, mClipRule), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) CSS_PROP_COLOR( color, color, @@ -1468,8 +1468,8 @@ CSS_PROP_SVG( "", VARIANT_HK, kColorInterpolationKTable, - offsetof(nsStyleSVG, mColorInterpolation), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) CSS_PROP_SVG( color-interpolation-filters, color_interpolation_filters, @@ -1478,8 +1478,8 @@ CSS_PROP_SVG( "", VARIANT_HK, kColorInterpolationKTable, - offsetof(nsStyleSVG, mColorInterpolationFilters), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) CSS_PROP_COLUMN( -moz-column-count, _moz_column_count, @@ -1673,8 +1673,8 @@ CSS_PROP_SVGRESET( "", VARIANT_HK, kDominantBaselineKTable, - offsetof(nsStyleSVGReset, mDominantBaseline), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) CSS_PROP_TABLEBORDER( empty-cells, empty_cells, @@ -1713,8 +1713,8 @@ CSS_PROP_SVG( "", VARIANT_HK, kFillRuleKTable, - offsetof(nsStyleSVG, mFillRule), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) CSS_PROP_EFFECTS( filter, filter, @@ -1756,8 +1756,8 @@ CSS_PROP_POSITION( "", VARIANT_HK, kFlexDirectionKTable, - offsetof(nsStylePosition, mFlexDirection), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) CSS_PROP_SHORTHAND( flex-flow, flex_flow, @@ -1800,8 +1800,8 @@ CSS_PROP_POSITION( "", VARIANT_HK, kFlexWrapKTable, - offsetof(nsStylePosition, mFlexWrap), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) CSS_PROP_DISPLAY( float, float, @@ -1950,8 +1950,8 @@ CSS_PROP_FONT( "", VARIANT_HK | VARIANT_SYSFONT, kFontStyleKTable, - offsetof(nsStyleFont, mFont.style), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) CSS_PROP_FONT( font-synthesis, font_synthesis, @@ -2308,8 +2308,8 @@ CSS_PROP_VISIBILITY( "", VARIANT_HK, kImageRenderingKTable, - offsetof(nsStyleVisibility, mImageRendering), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) CSS_PROP_UIRESET( ime-mode, ime_mode, @@ -2809,8 +2809,8 @@ CSS_PROP_SVGRESET( "layout.css.masking.enabled", VARIANT_HK, kMaskTypeKTable, - offsetof(nsStyleSVGReset, mMaskType), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) #ifndef CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL CSS_PROP_FONT( @@ -3508,8 +3508,8 @@ CSS_PROP_USERINTERFACE( "", VARIANT_HK, kPointerEventsKTable, - offsetof(nsStyleUserInterface, mPointerEvents), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) CSS_PROP_DISPLAY( position, position, @@ -3568,8 +3568,8 @@ CSS_PROP_TEXT( "", VARIANT_HK, kRubyAlignKTable, - offsetof(nsStyleText, mRubyAlign), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) CSS_PROP_TEXT( ruby-position, ruby_position, @@ -3578,8 +3578,8 @@ CSS_PROP_TEXT( "", VARIANT_HK, kRubyPositionKTable, - offsetof(nsStyleText, mRubyPosition), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) #ifndef CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL CSS_PROP_FONT( @@ -3729,8 +3729,8 @@ CSS_PROP_SVG( "", VARIANT_HK, kShapeRenderingKTable, - offsetof(nsStyleSVG, mShapeRendering), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) #ifndef CSS_PROP_LIST_ONLY_COMPONENTS_OF_ALL_SHORTHAND #ifndef CSS_PROP_LIST_EXCLUDE_INTERNAL CSS_PROP_TABLE( @@ -3818,8 +3818,8 @@ CSS_PROP_SVG( "", VARIANT_HK, kStrokeLinecapKTable, - offsetof(nsStyleSVG, mStrokeLinecap), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) CSS_PROP_SVG( stroke-linejoin, stroke_linejoin, @@ -3828,8 +3828,8 @@ CSS_PROP_SVG( "", VARIANT_HK, kStrokeLinejoinKTable, - offsetof(nsStyleSVG, mStrokeLinejoin), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) CSS_PROP_SVG( stroke-miterlimit, stroke_miterlimit, @@ -3930,8 +3930,8 @@ CSS_PROP_SVG( "", VARIANT_HK, kTextAnchorKTable, - offsetof(nsStyleSVG, mTextAnchor), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) CSS_PROP_TEXT( text-combine-upright, text_combine_upright, @@ -3941,8 +3941,8 @@ CSS_PROP_TEXT( "layout.css.text-combine-upright.enabled", 0, kTextCombineUprightKTable, - offsetof(nsStyleText, mTextCombineUpright), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) CSS_PROP_SHORTHAND( text-decoration, text_decoration, @@ -3973,8 +3973,8 @@ CSS_PROP_TEXTRESET( "", 0, kTextDecorationLineKTable, - offsetof(nsStyleTextReset, mTextDecorationLine), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) CSS_PROP_TEXTRESET( text-decoration-style, text_decoration_style, @@ -4061,8 +4061,8 @@ CSS_PROP_VISIBILITY( "layout.css.vertical-text.enabled", VARIANT_HK, kTextOrientationKTable, - offsetof(nsStyleVisibility, mTextOrientation), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) CSS_PROP_TEXTRESET( text-overflow, text_overflow, @@ -4083,8 +4083,8 @@ CSS_PROP_TEXT( "", VARIANT_HK, kTextRenderingKTable, - offsetof(nsStyleText, mTextRendering), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) CSS_PROP_TEXT( text-shadow, text_shadow, @@ -4374,8 +4374,8 @@ CSS_PROP_SVGRESET( "", VARIANT_HK, kVectorEffectKTable, - offsetof(nsStyleSVGReset, mVectorEffect), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) // NOTE: vertical-align is only supposed to apply to :first-letter when // 'float' is 'none', but we don't worry about that since it has no // effect otherwise @@ -4402,8 +4402,8 @@ CSS_PROP_VISIBILITY( "", VARIANT_HK, kVisibilityKTable, - offsetof(nsStyleVisibility, mVisible), - eStyleAnimType_EnumU8) // reflow for collapse + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) // reflow for collapse CSS_PROP_TEXT( white-space, white_space, @@ -4473,8 +4473,8 @@ CSS_PROP_TEXT( "", VARIANT_HK, kWordBreakKTable, - offsetof(nsStyleText, mWordBreak), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) CSS_PROP_TEXT( word-spacing, word_spacing, @@ -4508,8 +4508,8 @@ CSS_PROP_VISIBILITY( "layout.css.vertical-text.enabled", VARIANT_HK, kWritingModeKTable, - offsetof(nsStyleVisibility, mWritingMode), - eStyleAnimType_EnumU8) + CSS_PROP_NO_OFFSET, + eStyleAnimType_Discrete) CSS_PROP_POSITION( z-index, z_index,