[Webkit-unassigned] [Bug 119614] [CSS Masking]Add -webkit-mask-type property, with alpha and luminance values

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Mon Aug 12 05:41:29 PDT 2013


https://bugs.webkit.org/show_bug.cgi?id=119614


Dirk Schulze <krit at webkit.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
 Attachment #208398|review?                     |review-
               Flag|                            |




--- Comment #4 from Dirk Schulze <krit at webkit.org>  2013-08-12 05:41:04 PST ---
(From update of attachment 208398)
View in context: https://bugs.webkit.org/attachment.cgi?id=208398&action=review

Great patch! Still some snippets.

> Source/WebCore/ChangeLog:4
> +        [CSS Masking]Add -webkit-mask-type property, with alpha and luminance values
> +        Added the -webkit-mask-type property, which can have a value of alpha or

First title, then in a new line the link to the bug report, a newline and then the description.

> Source/WebCore/ChangeLog:13
> +        * css/CSSComputedStyleDeclaration.cpp: Added case for CSSPropertyWebkitMaskType

Sentences please. You miss the period.

> Source/WebCore/ChangeLog:15
> +        * css/CSSParser.cpp: Parsed the values for CSSPropertyWebkitMaskType

Ditto, in the other sentences as well. Stop here.

> Source/WebCore/ChangeLog:39
> +        * rendering/style/RenderStyleConstants.h: Added EMaskType
> +        * rendering/style/SVGRenderStyleDefs.h: Removed EMaskType

s/Added EMaskType/Moved EMaskType from SVGRenderStyleDefs.h./

> Source/WebCore/css/CSSComputedStyleDeclaration.cpp:1789
> +        case CSSPropertyWebkitMaskType: {
> +            const FillLayer* layers = style->maskLayers();
> +
> +            if (!layers)
> +                return cssValuePool().createIdentifierValue(CSSValueNone);
> +
> +            if (!layers->next()) {
> +                if (layers->maskType() == MT_ALPHA)
> +                    return cssValuePool().createIdentifierValue(CSSValueAlpha);
> +                return cssValuePool().createIdentifierValue(CSSValueLuminance);
> +            }
> +
> +            RefPtr<CSSValueList> list = CSSValueList::createCommaSeparated();
> +            for (const FillLayer* currLayer = layers; currLayer; currLayer = currLayer->next()) {
> +                if (currLayer->maskType() == MT_ALPHA)
> +                    list->append(cssValuePool().createIdentifierValue(CSSValueAlpha));
> +                else
> +                    list->append(cssValuePool().createIdentifierValue(CSSValueLuminance));
> +            }
> +            return list.release();
> +        }

This needs testing. If you want to, you can add it to a new patch, since we do not compute the style for -webkit-mask yet. Or you need to add the code for testing as we do for the background property.

> Source/WebCore/css/CSSParser.cpp:4438
> +                case CSSPropertyWebkitMaskType: {
> +                    if (val->id == CSSValueAlpha || val->id == CSSValueLuminance) {
> +                        currValue = cssValuePool().createIdentifierValue(val->id);
> +                        m_valueList->next();
> +                    } else
> +                        currValue = 0;
> +                    break;
> +                }

Hm, so the -webkit-mask property does not support parsing of luminance and alpha yet. Can you open a separate bug report and state that in the ChangeLog explicitly please?

> Source/WebCore/css/CSSToStyleMap.cpp:313
> +    CSSPrimitiveValue* primitiveValue = static_cast<CSSPrimitiveValue*>(value);
> +    layer->setMaskType(*primitiveValue);

I think you want to set the enumeration and not pass the CSSPrimtiveValue.

> Source/WebCore/rendering/style/FillLayer.cpp:57
> +    , m_maskType(MT_ALPHA)

For consistency add a initialFillMaskType function that returns the enumeration.

> Source/WebCore/rendering/style/FillLayer.h:191
> +    static EMaskType initialMaskType(EFillLayerType) { return MT_ALPHA; }

So you already have the initial function here. Why didn't you use it?

> LayoutTests/ChangeLog:10
> +        * fast/masking/parsing-mask-type-expected.txt: Added.
> +        * fast/masking/parsing-mask-type.html: Added.

You can reuse the existing parsing-mask.html test. Just add your -webkit-mask-type tests there.

-- 
Configure bugmail: https://bugs.webkit.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the webkit-unassigned mailing list