<feImage> DOM mutation problems
https://bugs.webkit.org/show_bug.cgi?id=77198
Reviewed by Antti Koivisto.
Source/WebCore:
Consider <feImage xlink:href="#rect"/>, where <rect> gets dynamically added to the tree.
Currently <feImage> doesn't notice this, as it doesn't register itself pending on "#rect".
Integrate <feImage> properly within the pending resources concept, fixing the bug.
Tests: svg/filters/feImage-target-add-to-document.svg
svg/filters/feImage-target-changes-id.svg
svg/filters/feImage-target-id-change.svg
svg/filters/feImage-target-reappend-to-document.svg
svg/filters/feImage-target-remove-from-document.svg
* svg/SVGFEImageElement.cpp: Rename invalidateImageResource to clearResourceReferences.
(WebCore::SVGFEImageElement::~SVGFEImageElement): Call clearResourceReferences.
(WebCore::SVGFEImageElement::clearResourceReferences): Remove any occurence of m_targetImage, it's no longer used.
(WebCore::SVGFEImageElement::requestImageResource): requestImageResource is now called by buildPendingResource.
(WebCore::SVGFEImageElement::buildPendingResource): Called whenever any element that we depend on gets resolved - now invalidates the <filter>.
(WebCore::SVGFEImageElement::parseMappedAttribute): Don't start loading from parseMappedAttribute.
(WebCore::SVGFEImageElement::svgAttributeChanged): Start loading from here, for consistency with SVGImageElement.
(WebCore::SVGFEImageElement::insertedIntoDocument): Invoke buildPendingResource(), if we enter the tree.
(WebCore::SVGFEImageElement::removedFromDocument): Clear m_cachedImage as soon as we get removed from the tree.
(WebCore::SVGFEImageElement::build): Clean up this function, m_targetImage is no longer exist.
* svg/SVGFEImageElement.h: Remove OwnPtr<ImageBuffer> m_targetImage, which is no longer used.
LayoutTests:
Add new test cases covering <feImage> + DOM mutations.
* platform/chromium/test_expectations.txt: Updated expectations.
* svg/filters/feImage-target-add-to-document-expected.png: Added.
* svg/filters/feImage-target-add-to-document-expected.txt: Added.
* svg/filters/feImage-target-add-to-document.svg: Added.
* svg/filters/feImage-target-changes-id-expected.png: Added.
* svg/filters/feImage-target-changes-id-expected.txt: Added.
* svg/filters/feImage-target-changes-id.svg: Added.
* svg/filters/feImage-target-id-change-expected.png: Added.
* svg/filters/feImage-target-id-change-expected.txt: Added.
* svg/filters/feImage-target-id-change.svg: Added.
* svg/filters/feImage-target-reappend-to-document-expected.png: Added.
* svg/filters/feImage-target-reappend-to-document-expected.txt: Added.
* svg/filters/feImage-target-reappend-to-document.svg: Added.
* svg/filters/feImage-target-remove-from-document-expected.png: Added.
* svg/filters/feImage-target-remove-from-document-expected.txt: Added.
* svg/filters/feImage-target-remove-from-document.svg: Added.
git-svn-id: http://svn.webkit.org/repository/webkit/trunk@106110
268f45cc-cd09-0410-ab3c-
d52691b4dbfc