diff options
author | yami <34216515+kn-yami@users.noreply.github.com> | 2018-12-16 16:17:20 +0100 |
---|---|---|
committer | yami <34216515+kn-yami@users.noreply.github.com> | 2019-02-02 18:06:10 +0100 |
commit | b241a84d884293e1ce49a79c75e362c02c0899f9 (patch) | |
tree | 4d1df04790cc8c785141e8dd8ffea9e6da5a0c02 /layout/style/nsComputedDOMStyle.cpp | |
parent | fa311a4cae5ea526e848adc4f49c6aa0b700702c (diff) | |
download | UXP-b241a84d884293e1ce49a79c75e362c02c0899f9.tar UXP-b241a84d884293e1ce49a79c75e362c02c0899f9.tar.gz UXP-b241a84d884293e1ce49a79c75e362c02c0899f9.tar.lz UXP-b241a84d884293e1ce49a79c75e362c02c0899f9.tar.xz UXP-b241a84d884293e1ce49a79c75e362c02c0899f9.zip |
issue #908 - implement missing parts of CSS mask
Diffstat (limited to 'layout/style/nsComputedDOMStyle.cpp')
-rw-r--r-- | layout/style/nsComputedDOMStyle.cpp | 60 |
1 files changed, 29 insertions, 31 deletions
diff --git a/layout/style/nsComputedDOMStyle.cpp b/layout/style/nsComputedDOMStyle.cpp index 4f8d3edf6..36c3a6385 100644 --- a/layout/style/nsComputedDOMStyle.cpp +++ b/layout/style/nsComputedDOMStyle.cpp @@ -74,6 +74,30 @@ NS_NewComputedDOMStyle(dom::Element* aElement, const nsAString& aPseudoElt, return computedStyle.forget(); } +static nsDOMCSSValueList* +GetROCSSValueList(bool aCommaDelimited) +{ + return new nsDOMCSSValueList(aCommaDelimited, true); +} + +template<typename T> +already_AddRefed<CSSValue> +GetBackgroundList(T nsStyleImageLayers::Layer::* aMember, + uint32_t nsStyleImageLayers::* aCount, + const nsStyleImageLayers& aLayers, + const KTableEntry aTable[]) +{ + RefPtr<nsDOMCSSValueList> valueList = GetROCSSValueList(true); + + for (uint32_t i = 0, i_end = aLayers.*aCount; i < i_end; ++i) { + RefPtr<nsROCSSPrimitiveValue> val = new nsROCSSPrimitiveValue; + val->SetIdent(nsCSSProps::ValueToKeywordEnum(aLayers.mLayers[i].*aMember, aTable)); + valueList->AppendCSSValue(val.forget()); + } + + return valueList.forget(); +} + /** * An object that represents the ordered set of properties that are exposed on * an nsComputedDOMStyle object and how their computed values can be obtained. @@ -1803,24 +1827,6 @@ nsComputedDOMStyle::DoGetFontVariantPosition() } already_AddRefed<CSSValue> -nsComputedDOMStyle::GetBackgroundList(uint8_t nsStyleImageLayers::Layer::* aMember, - uint32_t nsStyleImageLayers::* aCount, - const nsStyleImageLayers& aLayers, - const KTableEntry aTable[]) -{ - RefPtr<nsDOMCSSValueList> valueList = GetROCSSValueList(true); - - for (uint32_t i = 0, i_end = aLayers.*aCount; i < i_end; ++i) { - RefPtr<nsROCSSPrimitiveValue> val = new nsROCSSPrimitiveValue; - val->SetIdent(nsCSSProps::ValueToKeywordEnum(aLayers.mLayers[i].*aMember, - aTable)); - valueList->AppendCSSValue(val.forget()); - } - - return valueList.forget(); -} - -already_AddRefed<CSSValue> nsComputedDOMStyle::DoGetBackgroundAttachment() { return GetBackgroundList(&nsStyleImageLayers::Layer::mAttachment, @@ -2367,7 +2373,7 @@ nsComputedDOMStyle::DoGetBackgroundOrigin() return GetBackgroundList(&nsStyleImageLayers::Layer::mOrigin, &nsStyleImageLayers::mOriginCount, StyleBackground()->mImage, - nsCSSProps::kImageLayerOriginKTable); + nsCSSProps::kBackgroundOriginKTable); } void @@ -5013,12 +5019,6 @@ nsComputedDOMStyle::DoGetTop() return GetOffsetWidthFor(NS_SIDE_TOP); } -nsDOMCSSValueList* -nsComputedDOMStyle::GetROCSSValueList(bool aCommaDelimited) -{ - return new nsDOMCSSValueList(aCommaDelimited, true); -} - already_AddRefed<CSSValue> nsComputedDOMStyle::GetOffsetWidthFor(mozilla::css::Side aSide) { @@ -6180,8 +6180,8 @@ nsComputedDOMStyle::DoGetMask() // need to support computed style for the cases where it used to be // a longhand. if (svg->mMask.mImageCount > 1 || - firstLayer.mClip != NS_STYLE_IMAGELAYER_CLIP_BORDER || - firstLayer.mOrigin != NS_STYLE_IMAGELAYER_ORIGIN_BORDER || + firstLayer.mClip != StyleGeometryBox::Border || + firstLayer.mOrigin != StyleGeometryBox::Border || firstLayer.mComposite != NS_STYLE_MASK_COMPOSITE_ADD || firstLayer.mMaskMode != NS_STYLE_MASK_MODE_MATCH_SOURCE || !nsStyleImageLayers::IsInitialPositionForLayerType( @@ -6200,14 +6200,13 @@ nsComputedDOMStyle::DoGetMask() return val.forget(); } -#ifdef MOZ_ENABLE_MASK_AS_SHORTHAND already_AddRefed<CSSValue> nsComputedDOMStyle::DoGetMaskClip() { return GetBackgroundList(&nsStyleImageLayers::Layer::mClip, &nsStyleImageLayers::mClipCount, StyleSVGReset()->mMask, - nsCSSProps::kImageLayerOriginKTable); + nsCSSProps::kMaskClipKTable); } already_AddRefed<CSSValue> @@ -6241,7 +6240,7 @@ nsComputedDOMStyle::DoGetMaskOrigin() return GetBackgroundList(&nsStyleImageLayers::Layer::mOrigin, &nsStyleImageLayers::mOriginCount, StyleSVGReset()->mMask, - nsCSSProps::kImageLayerOriginKTable); + nsCSSProps::kMaskOriginKTable); } already_AddRefed<CSSValue> @@ -6278,7 +6277,6 @@ nsComputedDOMStyle::DoGetMaskSize() const nsStyleImageLayers& layers = StyleSVGReset()->mMask; return DoGetImageLayerSize(layers); } -#endif already_AddRefed<CSSValue> nsComputedDOMStyle::DoGetMaskType() |