[webkit-reviews] review denied: [Bug 65643] Repaint issues with -webkit-svg-shadow used on a container : [Attachment 104597] last patch plus image results that I missed

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Sat Aug 20 00:05:07 PDT 2011


Nikolas Zimmermann <zimmermann at kde.org> has denied  review:
Bug 65643: Repaint issues with -webkit-svg-shadow used on a container
https://bugs.webkit.org/show_bug.cgi?id=65643

Attachment 104597: last patch plus image results that I missed
https://bugs.webkit.org/attachment.cgi?id=104597&action=review

------- Additional Comments from Nikolas Zimmermann <zimmermann at kde.org>
View in context: https://bugs.webkit.org/attachment.cgi?id=104597&action=review


It's getting better! Still some questions/suggestions.

> Source/WebCore/platform/graphics/mac/FontMac.mm:225
> +    bool hasSimpleShadow = context->textDrawingMode() == TextModeFill &&
shadowColor.isValid() && !shadowBlur && !platformData.isColorBitmapFont() &&
(!context->shadowsIgnoreTransforms() ||
context->getCTM().isIdentityOrTranslationOrFlipped()) &&
!context->inTransparencyLayer();

Aren't other platforms affected by this as well?
Why is this needed? Can you explain a bit more?

> Source/WebCore/rendering/RenderObject.cpp:1789
> +	   setHasSVGShadow(TRUE);

s/TRUE/true/

> Source/WebCore/rendering/RenderObject.h:919
> +#if ENABLE(SVG)
> +    bool m_hasSVGShadow;
> +#endif

This bit of information is needed by all renderers which use
intersectRepaintRectWithResources: RenderSVG(Container|Image|Path|Root|Text).

RenderSVG(Container|Image|Path) all inherit from RenderSVGModelObject.
RenderSVGRoot inherits from RenderBox, RenderSVGText from RenderSVGBlock, and
thus from RenderBlock.

I'd rather store m_hasSVGShadow in RenderSVGModelObject, RenderSVGRoot and
RenderSVGText, to avoid consuming more memory for HTML use cases.
hasSVGShadow could still be a virtual method in RenderObject, just like it's
done for eg. nodeAtFloatPoint, and we'd override the getters/setters in
RenderSVGModelObject/Root/Text.

What do you think?

> Source/WebCore/rendering/svg/SVGRenderSupport.cpp:287
> +
> +	   if (!style)
> +	       continue;

IIRC neither style nor svgStyle can be null, please double-check.

> Source/WebCore/rendering/svg/SVGRenderSupport.cpp:301
> +	   if (!currentObject->hasSVGShadow())
> +	       return;
> +    } while (currentObject);

while (currentObject && currentObject->hasSVGShadow() ?


More information about the webkit-reviews mailing list