Invalidation of some SVG filter attributes on HTML content doesn't work
authorsenorblanco@chromium.org <senorblanco@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 4 Jan 2013 20:40:25 +0000 (20:40 +0000)
committersenorblanco@chromium.org <senorblanco@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Fri, 4 Jan 2013 20:40:25 +0000 (20:40 +0000)
commitb3a1a8f6fdc6d4fc4a1ae73a29185508cd91c404
tree8c01aab92b2fa0509a7e60aa3d5ff592f089f857
parentf423eba34d0f94cc846ee1f2ce9031533bf1a9ad
Invalidation of some SVG filter attributes on HTML content doesn't work
https://bugs.webkit.org/show_bug.cgi?id=105635

Reviewed by Dirk Schulze.

Source/WebCore:

Since HTML elements with filters are only added to m_clientLayers, not
m_clients, and do not use the FilterInfo used by SVG filters on SVG
elements, they must be invalidated separately.  Some filter attribute
invalidations call markAllClientsForInvalidation(), but some call
markClientForInvalidation() directly.  These invaldations must also
invalidate m_clientLayers.

Test: css3/filters/reference-filter-update-on-attribute-change.html

* rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation):
(WebCore::RenderSVGResourceContainer::markAllClientLayersForInvalidation):
* rendering/svg/RenderSVGResourceContainer.h:
Refactor client layer invalidation out into its own function.
* rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
Mark all client layers for invalidation when a filter primitve attribute is
changed.

LayoutTests:

New reftest to verify filter attribute change invalidations.

* css3/filters/reference-filter-update-on-attribute-change-expected.html: Added.
* css3/filters/reference-filter-update-on-attribute-change.html: Added.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@138835 268f45cc-cd09-0410-ab3c-d52691b4dbfc
LayoutTests/ChangeLog
LayoutTests/css3/filters/reference-filter-update-on-attribute-change-expected.html [new file with mode: 0644]
LayoutTests/css3/filters/reference-filter-update-on-attribute-change.html [new file with mode: 0644]
Source/WebCore/ChangeLog
Source/WebCore/rendering/svg/RenderSVGResourceContainer.cpp
Source/WebCore/rendering/svg/RenderSVGResourceContainer.h
Source/WebCore/rendering/svg/RenderSVGResourceFilter.cpp