Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(738)

Issue 15341004: Invalidate SVG filter results in SVGResourcesCache::clientLayoutChanged(). (Closed)

Created:
7 years, 7 months ago by f(malita)
Modified:
7 years, 7 months ago
Reviewers:
pdr., krit, Stephen Chennney
CC:
blink-reviews, eae+blinkwatch, leviw+renderwatch, jchaffraix+rendering, pdr
Visibility:
Public.

Description

Invalidate SVG filter results in SVGResourcesCache::clientLayoutChanged(). This is a regression introduced by http://trac.webkit.org/changeset/103539. For the SVG tree, filter result invalidation is handled by RenderSVGResource::markForLayoutAndParentResourceInvalidation. But non-SVG content (such as a <foreignObject> HTML subtree) does not call markForLayoutAndParentResourceInvalidation and instead uses the regular setNeedsLayout() invalidation path. Hence, changes in the HTML subtree do not invalidate cached results for filters applied on ancestor SVG elements. In order to cover this case, clientLayoutChanged() needs to invalidate filter results even if the SVG element itself does not need a re-layout. Note that prior to http://trac.webkit.org/changeset/103539 the method used to do exactly that, but the branch was removed on the assumption that markForLayoutAndParentResourceInvalidation() is already taking care of it. Obviously, the assumption doesn't hold for non-SVG content. BUG=165180 R=dschulze@chromium.org,schenney@chromium.org,pdr@chromium.org Committed: https://src.chromium.org/viewvc/blink?view=rev&revision=150675

Patch Set 1 #

Patch Set 2 : Just the fix + test suppression removal. #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1 line, -4 lines) Patch
M LayoutTests/TestExpectations View 1 1 chunk +0 lines, -3 lines 0 comments Download
M Source/core/rendering/svg/SVGResourcesCache.cpp View 1 chunk +1 line, -1 line 0 comments Download

Messages

Total messages: 8 (0 generated)
f(malita)
7 years, 7 months ago (2013-05-17 21:43:50 UTC) #1
f(malita)
patch.UnsupportedPatchFormat: Can't process patch for file LayoutTests/svg/foreignObject/filter-repaint-expected.svg. Binary file support is temporarilly disabled due to ...
7 years, 7 months ago (2013-05-17 22:00:32 UTC) #2
Stephen Chennney
On 2013/05/17 22:00:32, Florin Malita wrote: > patch.UnsupportedPatchFormat: Can't process patch for file > LayoutTests/svg/foreignObject/filter-repaint-expected.svg. ...
7 years, 7 months ago (2013-05-17 22:09:02 UTC) #3
Stephen Chennney
lgtm
7 years, 7 months ago (2013-05-17 22:09:23 UTC) #4
f(malita)
On 2013/05/17 22:09:02, Stephen Chenney wrote: > On 2013/05/17 22:00:32, Florin Malita wrote: > > ...
7 years, 7 months ago (2013-05-20 14:29:56 UTC) #5
f(malita)
Suppressed test landed: https://src.chromium.org/viewvc/blink?revision=150671&view=revision
7 years, 7 months ago (2013-05-20 15:11:40 UTC) #6
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/fmalita@chromium.org/15341004/10001
7 years, 7 months ago (2013-05-20 15:13:36 UTC) #7
commit-bot: I haz the power
7 years, 7 months ago (2013-05-20 15:50:04 UTC) #8
Message was sent while issue was closed.
Change committed as 150675

Powered by Google App Engine
This is Rietveld 408576698