Skip to content
  • senorblanco@chromium.org's avatar
    Invalidation of some SVG filter attributes on HTML content doesn't work · 3c3d7bcf
    senorblanco@chromium.org authored
    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: http://svn.webkit.org/repository/webkit/trunk@138835 268f45cc-cd09-0410-ab3c-d52691b4dbfc
    3c3d7bcf