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

Review URL: https://chromiumcodereview.appspot.com/15341004

git-svn-id: svn://svn.chromium.org/blink/trunk@150675 bbb929c8-8fbe-4397-9dbb-9b2b20218538
2 files changed