SVG Filters allow invalid elements as children
authorschenney@chromium.org <schenney@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 10 May 2012 15:22:04 +0000 (15:22 +0000)
committerschenney@chromium.org <schenney@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 10 May 2012 15:22:04 +0000 (15:22 +0000)
commit17dec8eedfb8542e44747961631d1dd1a82ff540
treeef8f54e119e1d1c2da2f0c599620b9ff16b0efe9
parentf68459caf9d5150776a5a4d86c533f3b034aa58e
SVG Filters allow invalid elements as children
https://bugs.webkit.org/show_bug.cgi?id=83979

Reviewed by Nikolas Zimmermann.

.:

This test will crash upon load in Chromium, unless the associated fix is in.

* ManualTests/bugzilla-83979.svg: Added.

Source/WebCore:

According to the SVG spec, there are numerous restrictions on the
content of nodes (that is, their children). Specific to this problem,
SVGFilter elements may only contain SVGFilterPrimitive elements, and
those may only contain animation related elements. This patch enforces
the restriction on filters in the render tree, thus preventing us from
having (for instance) content that is inside a filter yet filtered by
the filter.

Manual test: ManualTests/bugzilla-83979.svg

* svg/SVGFilterElement.cpp:
(WebCore::SVGFilterElement::childShouldCreateRenderer): Added to only allow renderers for fe* children
(WebCore):
* svg/SVGFilterElement.h:
(SVGFilterElement):
* svg/SVGFilterPrimitiveStandardAttributes.h: Do not allow any children at all for fe* elements.
(SVGFilterPrimitiveStandardAttributes):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@116647 268f45cc-cd09-0410-ab3c-d52691b4dbfc
ChangeLog
ManualTests/bugzilla-83979.svg [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/svg/SVGFilterElement.cpp
Source/WebCore/svg/SVGFilterElement.h
Source/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h