diff options
Diffstat (limited to 'WebCore/rendering/RenderSVGImage.cpp')
-rw-r--r-- | WebCore/rendering/RenderSVGImage.cpp | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/WebCore/rendering/RenderSVGImage.cpp b/WebCore/rendering/RenderSVGImage.cpp index 1fb7c0f..006142c 100644 --- a/WebCore/rendering/RenderSVGImage.cpp +++ b/WebCore/rendering/RenderSVGImage.cpp @@ -33,6 +33,8 @@ #include "GraphicsContext.h" #include "PointerEventsHitRules.h" #include "RenderLayer.h" +#include "RenderSVGResourceContainer.h" +#include "RenderSVGResourceFilter.h" #include "SVGImageElement.h" #include "SVGLength.h" #include "SVGPreserveAspectRatio.h" @@ -174,6 +176,12 @@ FloatRect RenderSVGImage::repaintRectInLocalCoordinates() const void RenderSVGImage::imageChanged(WrappedImagePtr image, const IntRect* rect) { RenderImage::imageChanged(image, rect); +#if ENABLE(FILTERS) + // The image resource defaults to nullImage until the resource arrives. + // This empty image may be cached by SVG filter effects which must be invalidated. + if (RenderSVGResourceFilter* filter = getRenderSVGResourceById<RenderSVGResourceFilter>(document(), style()->svgStyle()->filterResource())) + filter->invalidateClient(this); +#endif repaint(); } |