From 5bd1c1482c73f3bd1b83d72c921a75ecfffcf15b Mon Sep 17 00:00:00 2001 From: "timothy_horton@apple.com" Date: Tue, 27 Sep 2011 00:36:19 +0000 Subject: [PATCH] applied to filtered ellipse does not update https://bugs.webkit.org/show_bug.cgi?id=68457 Reviewed by Darin Adler. Invalidate the filter's cache when style changes take place so that style changes are respected. Test: svg/filters/animate-fill.svg git-svn-id: https://svn.webkit.org/repository/webkit/trunk@96052 268f45cc-cd09-0410-ab3c-d52691b4dbfc --- LayoutTests/ChangeLog | 14 ++++++++++++ LayoutTests/svg/filters/animate-fill-expected.png | Bin 0 -> 11388 bytes LayoutTests/svg/filters/animate-fill-expected.txt | 10 +++++++++ LayoutTests/svg/filters/animate-fill.svg | 25 +++++++++++++++++++++ Source/WebCore/ChangeLog | 16 +++++++++++++ Source/WebCore/rendering/svg/SVGResourcesCache.cpp | 8 ++++++- 6 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 LayoutTests/svg/filters/animate-fill-expected.png create mode 100644 LayoutTests/svg/filters/animate-fill-expected.txt create mode 100644 LayoutTests/svg/filters/animate-fill.svg diff --git a/LayoutTests/ChangeLog b/LayoutTests/ChangeLog index 6dd99b8..ca84b93 100644 --- a/LayoutTests/ChangeLog +++ b/LayoutTests/ChangeLog @@ -1,3 +1,17 @@ +2011-09-26 Tim Horton + + applied to filtered ellipse does not update + https://bugs.webkit.org/show_bug.cgi?id=68457 + + + Reviewed by Darin Adler. + + Test that changing the fill on a filtered shape properly invalidates the filtered result. + + * svg/filters/animate-fill-expected.png: Added. + * svg/filters/animate-fill-expected.txt: Added. + * svg/filters/animate-fill.svg: Added. + 2011-09-26 Mihai Parparita Remove failing expectations for some ruby tests, since they were diff --git a/LayoutTests/svg/filters/animate-fill-expected.png b/LayoutTests/svg/filters/animate-fill-expected.png new file mode 100644 index 0000000000000000000000000000000000000000..a0d7ee4c2f7d5f211b3e4a0ccd7aed1913801cb7 GIT binary patch literal 11388 zcmeAS@N?(olHy`uVBq!ia0y~yU{+vYV2a>i1B%QlYbpRznkB9gCCM47$=SuFxeVs! z78VA^DQO0Y7DgtiDHdr)$>u3(i3aA$re+q#MyVO|_pSk&BA4mx9N_8ftPoI?pO%@E z%D_;;*cx&_`*MKDzgwwuH$3dNN*Cm`%b1v#5?tauXIpmouCr0E%(g3f%wCooGwYbj z+qw--S>aKvs8cn zByPda!l=t4`urlH!Tv`N{WMlQ&Vxl$th;9BSVxrU~P&iWKbEN9`APq)ZVZhY9& zt2`~u#MEIH=OOl^PFCJK94uyJKKRUg<6NW26Lqzflk~c6R=Wo2KTUDn#PjWgd~x%q z_zf$jyqvxExj=93EJ?qMHC^}QEo%#Uo-tfKXdf@J*Kx<(f(Wz6i%sjC&Z?{vRNMRf zT}kGQx2dzHM`{YG%Bbu~3R!2IllhFBxpUUD%WuB~OxiHtWWR}V}z|Mq_WTGaKla?*#_TjYALeu8PiG7XU zwBy@@-}COOUhmr@+In>R;v0c)w>G}qwMlrEbbV>!(#3fX&38VXEuFiXnLn*y(wnmwBkJpE58_j#i!?^Mf#B6xPK`4IO*D~HR!Rs7KO{Z~$$ySG;GbVH$z z-RgP4XOF#6z2tN0b;^$YU0 z+4ijxmfW;)-^RKy4(%O~*Rj&i>U&;S>C|x$vHZ-aIJTjp)S*J7V##ur@VBhIvkb0xXUnj=r5;U)(r%1#^>9jdpK<;MR)$|KiS{exA)T zFW&z6^*<8(I2f5&I0O_N8XWXKOxBlDacE$Gi5yT=aNv_T50M6oeqmx-V!qX5RLN+# zuyBkf22i#c%_O5G!)S>)c&dpHb$0U~Kbr}U5+Gw`L%l3ZeoEn#&EL^(jcz zv<8Mqt2`u&moPD@JT-BH838Olgaj14kM|;39OBThWX>@pw?!~9rM%pMWbp(pjtNsP zOCY(;+o3^6)*Q*=AV$VXMN&v^OW@>~u=FvK#SU5uqk%FSC@iBXg^_7A`zVZ-DI5Z$ z1uaA4XzepvB?H?LqwSQ@#v8DAJKCZZP#A6IgL+V-eV@?|p}=S_nT2C?=%8VA=s>|? zbUcM=bm#y$YBxG`FgkPq9N!%sIv5=~08IuChSB^v>w~5;FmT)etp$KgG>o=cM%ygF z-u!5rWwgx#DiB87ETe6f(KZWcB7bzcW0162h;OHS;7^*$vt0l2NfqF7Vg^rFKbLh* G2~7a + The rectangle should rapidly animate to green. + + + + + + + + diff --git a/Source/WebCore/ChangeLog b/Source/WebCore/ChangeLog index 0ddde8d..51bb3b0 100644 --- a/Source/WebCore/ChangeLog +++ b/Source/WebCore/ChangeLog @@ -1,3 +1,19 @@ +2011-09-26 Tim Horton + + applied to filtered ellipse does not update + https://bugs.webkit.org/show_bug.cgi?id=68457 + + + Reviewed by Darin Adler. + + Invalidate the filter's cache when style changes take place so that style changes are respected. + + Test: svg/filters/animate-fill.svg + + * rendering/svg/SVGResourcesCache.cpp: + (WebCore::SVGResourcesCache::clientStyleChanged): + (WebCore::SVGResourcesCache::clientUpdatedFromElement): + 2011-09-26 Max Perepelitsyn Set but unused variables cleanup in v8 bindings (gcc 4.6) diff --git a/Source/WebCore/rendering/svg/SVGResourcesCache.cpp b/Source/WebCore/rendering/svg/SVGResourcesCache.cpp index 30f86c3..bbd4454 100644 --- a/Source/WebCore/rendering/svg/SVGResourcesCache.cpp +++ b/Source/WebCore/rendering/svg/SVGResourcesCache.cpp @@ -128,7 +128,7 @@ void SVGResourcesCache::clientStyleChanged(RenderObject* renderer, StyleDifferen if (diff == StyleDifferenceEqual) return; - // In this case the proper SVGFE*Element will imply whether the modifided CSS properties implies a relayout or repaint. + // In this case the proper SVGFE*Element will decide whether the modified CSS properties require a relayout or repaint. if (renderer->isSVGResourceFilterPrimitive() && diff == StyleDifferenceRepaint) return; @@ -144,6 +144,12 @@ void SVGResourcesCache::clientUpdatedFromElement(RenderObject* renderer, const R SVGResourcesCache* cache = resourcesCacheFromRenderObject(renderer); cache->removeResourcesFromRenderObject(renderer); cache->addResourcesFromRenderObject(renderer, newStyle); + + SVGResources* resources = SVGResourcesCache::cachedResourcesForRenderObject(renderer); + if (!resources) + return; + + resources->removeClientFromCache(renderer); } void SVGResourcesCache::clientDestroyed(RenderObject* renderer) -- 1.8.3.1