haikuwebkit/LayoutTests/svg/custom/js-update-stop-linked-gradi...

28 lines
1.2 KiB
XML
Raw Permalink Normal View History

2010-08-01 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Dirk Schulze. SVG gradients do not update when scripted via xlink https://bugs.webkit.org/show_bug.cgi?id=42953 Unify cycle detection logic for chainable (through xlink:href) and ordinary resources. All operate on the render tree now, instead of falling back to the DOM tree for xlink:href queries. When linking resources, register as regular client, so the regular update mechanisms work as expected. <linearGradient id="foo"><stop../> </linearGradient> <linearGradient id="bar" xlink:href="#foo"/> <rect fill="url(#bar)"/> Without that the rect won't receive invalidation notifications, as foo <-> bar had no connection. Fixes the last outstanding class of invalidations. Also speeds up the cycle detetion, when using chained resources, as no SVG DOM queries have to be executed anymore. Test: svg/custom/js-update-stop-linked-gradient.svg * rendering/RenderSVGResourceContainer.cpp: (WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation): (WebCore::linkedResourceForContainer): * rendering/SVGResources.cpp: (WebCore::SVGResources::SVGResources): (WebCore::chainableResourceTags): (WebCore::targetReferenceFromResource): (WebCore::registerPendingResource): (WebCore::SVGResources::buildCachedResources): (WebCore::SVGResources::invalidateClient): (WebCore::SVGResources::resourceDestroyed): (WebCore::SVGResources::buildSetOfResources): (WebCore::SVGResources::setLinkedResource): (WebCore::SVGResources::resetLinkedResource): (WebCore::SVGResources::dump): * rendering/SVGResources.h: (WebCore::SVGResources::linkedResource): * rendering/SVGResourcesCycleSolver.cpp: (WebCore::SVGResourcesCycleSolver::resolveCycles): (WebCore::SVGResourcesCycleSolver::breakCycle): * rendering/SVGResourcesCycleSolver.h: * svg/SVGFilterElement.cpp: (WebCore::SVGFilterElement::SVGFilterElement): * svg/SVGFilterElement.h: * svg/SVGGradientElement.cpp: (WebCore::SVGGradientElement::SVGGradientElement): * svg/SVGGradientElement.h: * svg/SVGLinearGradientElement.cpp: (WebCore::SVGLinearGradientElement::collectGradientProperties): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::SVGPatternElement): (WebCore::SVGPatternElement::collectPatternProperties): * svg/SVGPatternElement.h: * svg/SVGRadialGradientElement.cpp: (WebCore::SVGRadialGradientElement::collectGradientProperties): 2010-08-01 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Dirk Schulze. SVG gradients do not update when scripted via xlink https://bugs.webkit.org/show_bug.cgi?id=42953 Add new test covering updates of linked gradients. * platform/mac/svg/custom/js-update-stop-linked-gradient-expected.checksum: Added. * platform/mac/svg/custom/js-update-stop-linked-gradient-expected.png: Added. * platform/mac/svg/custom/js-update-stop-linked-gradient-expected.txt: Added. * svg/custom/js-update-stop-linked-gradient.svg: Added. Canonical link: https://commits.webkit.org/55262@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@64440 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2010-08-01 09:49:04 +00:00
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
Switch svg/custom tests to repaint harness https://bugs.webkit.org/show_bug.cgi?id=78115 Reviewed by Andreas Kling. Make all tests that exercise repainting use the fast/repaint/resources/repaint.js harness. * platform/chromium/test_expectations.txt: * platform/mac/svg/custom/absolute-sized-content-with-resources-expected.png: * platform/mac/svg/custom/absolute-sized-content-with-resources-expected.txt: * platform/mac/svg/custom/animate-path-discrete-expected.png: * platform/mac/svg/custom/animate-path-morphing-expected.png: * platform/mac/svg/custom/animate-target-id-changed-expected.png: * platform/mac/svg/custom/animate-target-removed-from-document-expected.png: * platform/mac/svg/custom/circle-move-invalidation-expected.png: * platform/mac/svg/custom/clip-path-child-changes-expected.png: * platform/mac/svg/custom/clip-path-href-changes-expected.png: * platform/mac/svg/custom/clip-path-id-changes-expected.png: * platform/mac/svg/custom/clip-path-units-changes-expected.png: * platform/mac/svg/custom/deep-dynamic-updates-expected.png: * platform/mac/svg/custom/fill-opacity-update-expected.png: * platform/mac/svg/custom/foreignObject-crash-on-hover-expected.png: * platform/mac/svg/custom/foreignObject-crash-on-hover-expected.txt: * platform/mac/svg/custom/gradient-add-stops-expected.png: * platform/mac/svg/custom/gradient-stop-style-change-expected.png: * platform/mac/svg/custom/hit-test-unclosed-subpaths-expected.png: * platform/mac/svg/custom/hit-test-unclosed-subpaths-expected.txt: * platform/mac/svg/custom/hit-test-with-br-expected.png: * platform/mac/svg/custom/js-late-clipPath-and-object-creation-expected.png: * platform/mac/svg/custom/js-late-clipPath-creation-expected.png: * platform/mac/svg/custom/js-late-gradient-and-object-creation-expected.png: * platform/mac/svg/custom/js-late-gradient-creation-expected.png: * platform/mac/svg/custom/js-late-marker-and-object-creation-expected.png: * platform/mac/svg/custom/js-late-marker-creation-expected.png: * platform/mac/svg/custom/js-late-mask-and-object-creation-expected.png: * platform/mac/svg/custom/js-late-mask-creation-expected.png: * platform/mac/svg/custom/js-late-pattern-and-object-creation-expected.png: * platform/mac/svg/custom/js-late-pattern-creation-expected.png: * platform/mac/svg/custom/js-repaint-rect-on-path-with-stroke-expected.png: * platform/mac/svg/custom/js-update-bounce-expected.png: * platform/mac/svg/custom/js-update-bounce-expected.txt: * platform/mac/svg/custom/js-update-container-expected.png: * platform/mac/svg/custom/js-update-container2-expected.png: * platform/mac/svg/custom/js-update-gradient-expected.png: * platform/mac/svg/custom/js-update-image-expected.png: * platform/mac/svg/custom/js-update-path-changes-expected.png: * platform/mac/svg/custom/js-update-path-removal-expected.png: * platform/mac/svg/custom/js-update-pattern-child-expected.png: * platform/mac/svg/custom/js-update-pattern-expected.png: * platform/mac/svg/custom/js-update-polygon-changes-expected.png: * platform/mac/svg/custom/js-update-polygon-removal-expected.png: * platform/mac/svg/custom/js-update-stop-expected.png: * platform/mac/svg/custom/js-update-stop-linked-gradient-expected.png: * platform/mac/svg/custom/js-update-stop-linked-gradient-expected.txt: * platform/mac/svg/custom/js-update-style-expected.png: * platform/mac/svg/custom/js-update-style-expected.txt: * platform/mac/svg/custom/js-update-transform-addition-expected.png: * platform/mac/svg/custom/js-update-transform-changes-expected.png: * platform/mac/svg/custom/marker-child-changes-css-expected.png: * platform/mac/svg/custom/marker-child-changes-expected.png: * platform/mac/svg/custom/marker-strokeWidth-changes-expected.png: * platform/mac/svg/custom/marker-viewBox-changes-expected.png: * platform/mac/svg/custom/mask-child-changes-expected.png: * platform/mac/svg/custom/mask-invalidation-expected.png: * platform/mac/svg/custom/mask-invalidation-expected.txt: * platform/mac/svg/custom/object-sizing-no-width-height-change-content-box-size-expected.png: * platform/mac/svg/custom/prevent-default-expected.png: * platform/mac/svg/custom/relative-sized-content-expected.png: * platform/mac/svg/custom/relative-sized-content-with-resources-expected.png: * platform/mac/svg/custom/relative-sized-content-with-resources-expected.txt: * platform/mac/svg/custom/relative-sized-deep-shadow-tree-content-expected.png: * platform/mac/svg/custom/relative-sized-image-expected.png: * platform/mac/svg/custom/relative-sized-inner-svg-expected.png: * platform/mac/svg/custom/relative-sized-shadow-tree-content-expected.png: * platform/mac/svg/custom/relative-sized-shadow-tree-content-with-symbol-expected.png: * platform/mac/svg/custom/relative-sized-use-on-symbol-expected.png: * platform/mac/svg/custom/relative-sized-use-without-attributes-on-symbol-expected.png: * platform/mac/svg/custom/repaint-moving-svg-and-div-expected.png: * platform/mac/svg/custom/repaint-on-image-bounds-change-expected.png: * platform/mac/svg/custom/resource-client-removal-expected.png: * platform/mac/svg/custom/resource-invalidate-on-target-update-expected.png: * platform/mac/svg/custom/scroll-hit-test-expected.png: * platform/mac/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.png: * platform/mac/svg/custom/stroke-opacity-update-expected.png: * platform/mac/svg/custom/svg-absolute-children-expected.png: * platform/mac/svg/custom/text-dom-removal-expected.png: * platform/mac/svg/custom/text-repaint-including-stroke-expected.png: * platform/mac/svg/custom/text-repaint-including-stroke-expected.txt: * platform/mac/svg/custom/text-xy-updates-SVGList-expected.png: * platform/mac/svg/custom/use-clipped-hit-expected.png: * platform/mac/svg/custom/use-clipped-hit-expected.txt: * platform/mac/svg/custom/use-detach-expected.png: * platform/mac/svg/custom/use-disappears-after-style-update-expected.png: * platform/mac/svg/custom/use-elementInstance-event-target-expected.png: * platform/mac/svg/custom/use-elementInstance-methods-expected.png: * platform/mac/svg/custom/use-event-handler-on-referenced-element-expected.png: * platform/mac/svg/custom/use-event-handler-on-use-element-expected.png: * platform/mac/svg/custom/use-inherit-style-expected.png: * platform/mac/svg/custom/use-instanceRoot-as-event-target-expected.png: Removed. * platform/mac/svg/custom/use-instanceRoot-event-bubbling-expected.png: * platform/mac/svg/custom/use-instanceRoot-event-listeners-expected.png: * platform/mac/svg/custom/use-setAttribute-crash-expected.png: * svg/custom/absolute-sized-content-with-resources.xhtml: * svg/custom/animate-path-discrete.svg: * svg/custom/animate-path-morphing.svg: * svg/custom/animate-target-id-changed.svg: * svg/custom/animate-target-removed-from-document.svg: * svg/custom/circle-move-invalidation.svg: * svg/custom/clip-path-child-changes.svg: * svg/custom/clip-path-href-changes.svg: * svg/custom/clip-path-id-changes.svg: * svg/custom/clip-path-units-changes.svg: * svg/custom/deep-dynamic-updates.svg: * svg/custom/fill-opacity-update.svg: * svg/custom/foreignObject-crash-on-hover.xml: * svg/custom/gradient-add-stops.svg: * svg/custom/gradient-stop-style-change.svg: * svg/custom/hit-test-path-stroke.svg: * svg/custom/hit-test-path.svg: * svg/custom/hit-test-unclosed-subpaths.svg: * svg/custom/hit-test-with-br.xhtml: * svg/custom/js-late-clipPath-and-object-creation.svg: * svg/custom/js-late-clipPath-creation.svg: * svg/custom/js-late-gradient-and-object-creation.svg: * svg/custom/js-late-gradient-creation.svg: * svg/custom/js-late-marker-and-object-creation.svg: * svg/custom/js-late-marker-creation.svg: * svg/custom/js-late-mask-and-object-creation.svg: * svg/custom/js-late-mask-creation.svg: * svg/custom/js-late-pattern-and-object-creation.svg: * svg/custom/js-late-pattern-creation.svg: * svg/custom/js-repaint-rect-on-path-with-stroke.svg: * svg/custom/js-update-bounce.svg: * svg/custom/js-update-container.svg: * svg/custom/js-update-container2.svg: * svg/custom/js-update-gradient.svg: * svg/custom/js-update-image.svg: * svg/custom/js-update-path-changes.svg: * svg/custom/js-update-path-removal.svg: * svg/custom/js-update-pattern-child.svg: * svg/custom/js-update-pattern.svg: * svg/custom/js-update-polygon-changes.svg: * svg/custom/js-update-polygon-removal.svg: * svg/custom/js-update-stop-linked-gradient.svg: * svg/custom/js-update-stop.svg: * svg/custom/js-update-style.svg: * svg/custom/js-update-transform-addition.svg: * svg/custom/js-update-transform-changes.svg: * svg/custom/linking-a-03-b-all.svg: * svg/custom/linking-a-03-b-preserveAspectRatio.svg: * svg/custom/linking-a-03-b-transform.svg: * svg/custom/linking-a-03-b-viewBox-transform.svg: * svg/custom/linking-a-03-b-viewBox.svg: * svg/custom/linking-a-03-b-viewTarget.svg: * svg/custom/linking-a-03-b-zoomAndPan.svg: * svg/custom/marker-child-changes-css.svg: * svg/custom/marker-child-changes.svg: * svg/custom/marker-strokeWidth-changes.svg: * svg/custom/marker-viewBox-changes.svg: * svg/custom/mask-child-changes.svg: * svg/custom/mask-invalidation.svg: * svg/custom/object-sizing-no-width-height-change-content-box-size.xhtml: * svg/custom/pending-resource-after-removal-expected.png: * svg/custom/pending-resource-after-removal.xhtml: * svg/custom/pending-resource-leak-2.svg: * svg/custom/pending-resource-leak-3.svg: * svg/custom/prevent-default.svg: * svg/custom/relative-sized-content-with-resources.xhtml: * svg/custom/relative-sized-content.xhtml: * svg/custom/relative-sized-deep-shadow-tree-content.xhtml: * svg/custom/relative-sized-image.xhtml: * svg/custom/relative-sized-inner-svg.xhtml: * svg/custom/relative-sized-shadow-tree-content-with-symbol.xhtml: * svg/custom/relative-sized-shadow-tree-content.xhtml: * svg/custom/relative-sized-use-on-symbol.xhtml: * svg/custom/relative-sized-use-without-attributes-on-symbol.xhtml: * svg/custom/repaint-moving-svg-and-div.xhtml: * svg/custom/repaint-on-constant-size-change.svg: * svg/custom/repaint-on-image-bounds-change.svg: * svg/custom/repaint-shadow.svg: * svg/custom/repaint-stroke-width-changes.svg: * svg/custom/resource-client-removal.svg: * svg/custom/resource-invalidate-on-target-update.svg: * svg/custom/resources/use-instanceRoot-event-bubbling.js: (repaintTest): * svg/custom/resources/use-instanceRoot-event-listeners.js: (repaintTest): * svg/custom/scroll-hit-test.xhtml: * svg/custom/scroll-to-anchor-in-symbol.svg: * svg/custom/scrolling-embedded-svg-file-image-repaint-problem.html: * svg/custom/stroke-opacity-update.svg: * svg/custom/svg-absolute-children.svg: * svg/custom/svg-disallowed-in-dashboard-object.html: * svg/custom/svg-fonts-in-html-linebreaks.html: * svg/custom/text-dom-removal.svg: * svg/custom/text-repaint-including-stroke.svg: * svg/custom/text-xy-updates-SVGList.xhtml: * svg/custom/use-animation-in-fill.html: * svg/custom/use-clipped-hit.svg: * svg/custom/use-crash-in-non-wellformed-document.svg: * svg/custom/use-crash-when-href-change.svg: * svg/custom/use-detach.svg: * svg/custom/use-disappears-after-style-update.svg: * svg/custom/use-elementInstance-event-target.svg: * svg/custom/use-elementInstance-methods.svg: * svg/custom/use-event-handler-on-referenced-element.svg: * svg/custom/use-event-handler-on-use-element.svg: * svg/custom/use-inherit-style.svg: * svg/custom/use-instanceRoot-as-event-target.xhtml: * svg/custom/use-instanceRoot-event-bubbling.xhtml: * svg/custom/use-instanceRoot-event-listeners.xhtml: * svg/custom/use-multiple-on-nested-disallowed-font.html: * svg/custom/use-setAttribute-crash.svg: Canonical link: https://commits.webkit.org/95114@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@107207 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-02-09 11:21:42 +00:00
<svg width="450" height="450" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" onload="runRepaintTest()">
<script xlink:href="../../fast/repaint/resources/repaint.js"/>
2010-08-01 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Dirk Schulze. SVG gradients do not update when scripted via xlink https://bugs.webkit.org/show_bug.cgi?id=42953 Unify cycle detection logic for chainable (through xlink:href) and ordinary resources. All operate on the render tree now, instead of falling back to the DOM tree for xlink:href queries. When linking resources, register as regular client, so the regular update mechanisms work as expected. <linearGradient id="foo"><stop../> </linearGradient> <linearGradient id="bar" xlink:href="#foo"/> <rect fill="url(#bar)"/> Without that the rect won't receive invalidation notifications, as foo <-> bar had no connection. Fixes the last outstanding class of invalidations. Also speeds up the cycle detetion, when using chained resources, as no SVG DOM queries have to be executed anymore. Test: svg/custom/js-update-stop-linked-gradient.svg * rendering/RenderSVGResourceContainer.cpp: (WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation): (WebCore::linkedResourceForContainer): * rendering/SVGResources.cpp: (WebCore::SVGResources::SVGResources): (WebCore::chainableResourceTags): (WebCore::targetReferenceFromResource): (WebCore::registerPendingResource): (WebCore::SVGResources::buildCachedResources): (WebCore::SVGResources::invalidateClient): (WebCore::SVGResources::resourceDestroyed): (WebCore::SVGResources::buildSetOfResources): (WebCore::SVGResources::setLinkedResource): (WebCore::SVGResources::resetLinkedResource): (WebCore::SVGResources::dump): * rendering/SVGResources.h: (WebCore::SVGResources::linkedResource): * rendering/SVGResourcesCycleSolver.cpp: (WebCore::SVGResourcesCycleSolver::resolveCycles): (WebCore::SVGResourcesCycleSolver::breakCycle): * rendering/SVGResourcesCycleSolver.h: * svg/SVGFilterElement.cpp: (WebCore::SVGFilterElement::SVGFilterElement): * svg/SVGFilterElement.h: * svg/SVGGradientElement.cpp: (WebCore::SVGGradientElement::SVGGradientElement): * svg/SVGGradientElement.h: * svg/SVGLinearGradientElement.cpp: (WebCore::SVGLinearGradientElement::collectGradientProperties): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::SVGPatternElement): (WebCore::SVGPatternElement::collectPatternProperties): * svg/SVGPatternElement.h: * svg/SVGRadialGradientElement.cpp: (WebCore::SVGRadialGradientElement::collectGradientProperties): 2010-08-01 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Dirk Schulze. SVG gradients do not update when scripted via xlink https://bugs.webkit.org/show_bug.cgi?id=42953 Add new test covering updates of linked gradients. * platform/mac/svg/custom/js-update-stop-linked-gradient-expected.checksum: Added. * platform/mac/svg/custom/js-update-stop-linked-gradient-expected.png: Added. * platform/mac/svg/custom/js-update-stop-linked-gradient-expected.txt: Added. * svg/custom/js-update-stop-linked-gradient.svg: Added. Canonical link: https://commits.webkit.org/55262@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@64440 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2010-08-01 09:49:04 +00:00
<defs>
<linearGradient id="gradient" gradientUnits="userSpaceOnUse" x1="10" y1="10" x2="440" y2="10">
<stop stop-color="green" offset="0"/>
<stop id="stop1" stop-color="red" offset="0.5"/>
<stop stop-color="green" offset="1"/>
</linearGradient>
<linearGradient id="linkedGradient2" xlink:href="#linkedGradient1"/>
<linearGradient id="linkedGradient1" xlink:href="#gradient"/>
</defs>
<script>
Switch svg/custom tests to repaint harness https://bugs.webkit.org/show_bug.cgi?id=78115 Reviewed by Andreas Kling. Make all tests that exercise repainting use the fast/repaint/resources/repaint.js harness. * platform/chromium/test_expectations.txt: * platform/mac/svg/custom/absolute-sized-content-with-resources-expected.png: * platform/mac/svg/custom/absolute-sized-content-with-resources-expected.txt: * platform/mac/svg/custom/animate-path-discrete-expected.png: * platform/mac/svg/custom/animate-path-morphing-expected.png: * platform/mac/svg/custom/animate-target-id-changed-expected.png: * platform/mac/svg/custom/animate-target-removed-from-document-expected.png: * platform/mac/svg/custom/circle-move-invalidation-expected.png: * platform/mac/svg/custom/clip-path-child-changes-expected.png: * platform/mac/svg/custom/clip-path-href-changes-expected.png: * platform/mac/svg/custom/clip-path-id-changes-expected.png: * platform/mac/svg/custom/clip-path-units-changes-expected.png: * platform/mac/svg/custom/deep-dynamic-updates-expected.png: * platform/mac/svg/custom/fill-opacity-update-expected.png: * platform/mac/svg/custom/foreignObject-crash-on-hover-expected.png: * platform/mac/svg/custom/foreignObject-crash-on-hover-expected.txt: * platform/mac/svg/custom/gradient-add-stops-expected.png: * platform/mac/svg/custom/gradient-stop-style-change-expected.png: * platform/mac/svg/custom/hit-test-unclosed-subpaths-expected.png: * platform/mac/svg/custom/hit-test-unclosed-subpaths-expected.txt: * platform/mac/svg/custom/hit-test-with-br-expected.png: * platform/mac/svg/custom/js-late-clipPath-and-object-creation-expected.png: * platform/mac/svg/custom/js-late-clipPath-creation-expected.png: * platform/mac/svg/custom/js-late-gradient-and-object-creation-expected.png: * platform/mac/svg/custom/js-late-gradient-creation-expected.png: * platform/mac/svg/custom/js-late-marker-and-object-creation-expected.png: * platform/mac/svg/custom/js-late-marker-creation-expected.png: * platform/mac/svg/custom/js-late-mask-and-object-creation-expected.png: * platform/mac/svg/custom/js-late-mask-creation-expected.png: * platform/mac/svg/custom/js-late-pattern-and-object-creation-expected.png: * platform/mac/svg/custom/js-late-pattern-creation-expected.png: * platform/mac/svg/custom/js-repaint-rect-on-path-with-stroke-expected.png: * platform/mac/svg/custom/js-update-bounce-expected.png: * platform/mac/svg/custom/js-update-bounce-expected.txt: * platform/mac/svg/custom/js-update-container-expected.png: * platform/mac/svg/custom/js-update-container2-expected.png: * platform/mac/svg/custom/js-update-gradient-expected.png: * platform/mac/svg/custom/js-update-image-expected.png: * platform/mac/svg/custom/js-update-path-changes-expected.png: * platform/mac/svg/custom/js-update-path-removal-expected.png: * platform/mac/svg/custom/js-update-pattern-child-expected.png: * platform/mac/svg/custom/js-update-pattern-expected.png: * platform/mac/svg/custom/js-update-polygon-changes-expected.png: * platform/mac/svg/custom/js-update-polygon-removal-expected.png: * platform/mac/svg/custom/js-update-stop-expected.png: * platform/mac/svg/custom/js-update-stop-linked-gradient-expected.png: * platform/mac/svg/custom/js-update-stop-linked-gradient-expected.txt: * platform/mac/svg/custom/js-update-style-expected.png: * platform/mac/svg/custom/js-update-style-expected.txt: * platform/mac/svg/custom/js-update-transform-addition-expected.png: * platform/mac/svg/custom/js-update-transform-changes-expected.png: * platform/mac/svg/custom/marker-child-changes-css-expected.png: * platform/mac/svg/custom/marker-child-changes-expected.png: * platform/mac/svg/custom/marker-strokeWidth-changes-expected.png: * platform/mac/svg/custom/marker-viewBox-changes-expected.png: * platform/mac/svg/custom/mask-child-changes-expected.png: * platform/mac/svg/custom/mask-invalidation-expected.png: * platform/mac/svg/custom/mask-invalidation-expected.txt: * platform/mac/svg/custom/object-sizing-no-width-height-change-content-box-size-expected.png: * platform/mac/svg/custom/prevent-default-expected.png: * platform/mac/svg/custom/relative-sized-content-expected.png: * platform/mac/svg/custom/relative-sized-content-with-resources-expected.png: * platform/mac/svg/custom/relative-sized-content-with-resources-expected.txt: * platform/mac/svg/custom/relative-sized-deep-shadow-tree-content-expected.png: * platform/mac/svg/custom/relative-sized-image-expected.png: * platform/mac/svg/custom/relative-sized-inner-svg-expected.png: * platform/mac/svg/custom/relative-sized-shadow-tree-content-expected.png: * platform/mac/svg/custom/relative-sized-shadow-tree-content-with-symbol-expected.png: * platform/mac/svg/custom/relative-sized-use-on-symbol-expected.png: * platform/mac/svg/custom/relative-sized-use-without-attributes-on-symbol-expected.png: * platform/mac/svg/custom/repaint-moving-svg-and-div-expected.png: * platform/mac/svg/custom/repaint-on-image-bounds-change-expected.png: * platform/mac/svg/custom/resource-client-removal-expected.png: * platform/mac/svg/custom/resource-invalidate-on-target-update-expected.png: * platform/mac/svg/custom/scroll-hit-test-expected.png: * platform/mac/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.png: * platform/mac/svg/custom/stroke-opacity-update-expected.png: * platform/mac/svg/custom/svg-absolute-children-expected.png: * platform/mac/svg/custom/text-dom-removal-expected.png: * platform/mac/svg/custom/text-repaint-including-stroke-expected.png: * platform/mac/svg/custom/text-repaint-including-stroke-expected.txt: * platform/mac/svg/custom/text-xy-updates-SVGList-expected.png: * platform/mac/svg/custom/use-clipped-hit-expected.png: * platform/mac/svg/custom/use-clipped-hit-expected.txt: * platform/mac/svg/custom/use-detach-expected.png: * platform/mac/svg/custom/use-disappears-after-style-update-expected.png: * platform/mac/svg/custom/use-elementInstance-event-target-expected.png: * platform/mac/svg/custom/use-elementInstance-methods-expected.png: * platform/mac/svg/custom/use-event-handler-on-referenced-element-expected.png: * platform/mac/svg/custom/use-event-handler-on-use-element-expected.png: * platform/mac/svg/custom/use-inherit-style-expected.png: * platform/mac/svg/custom/use-instanceRoot-as-event-target-expected.png: Removed. * platform/mac/svg/custom/use-instanceRoot-event-bubbling-expected.png: * platform/mac/svg/custom/use-instanceRoot-event-listeners-expected.png: * platform/mac/svg/custom/use-setAttribute-crash-expected.png: * svg/custom/absolute-sized-content-with-resources.xhtml: * svg/custom/animate-path-discrete.svg: * svg/custom/animate-path-morphing.svg: * svg/custom/animate-target-id-changed.svg: * svg/custom/animate-target-removed-from-document.svg: * svg/custom/circle-move-invalidation.svg: * svg/custom/clip-path-child-changes.svg: * svg/custom/clip-path-href-changes.svg: * svg/custom/clip-path-id-changes.svg: * svg/custom/clip-path-units-changes.svg: * svg/custom/deep-dynamic-updates.svg: * svg/custom/fill-opacity-update.svg: * svg/custom/foreignObject-crash-on-hover.xml: * svg/custom/gradient-add-stops.svg: * svg/custom/gradient-stop-style-change.svg: * svg/custom/hit-test-path-stroke.svg: * svg/custom/hit-test-path.svg: * svg/custom/hit-test-unclosed-subpaths.svg: * svg/custom/hit-test-with-br.xhtml: * svg/custom/js-late-clipPath-and-object-creation.svg: * svg/custom/js-late-clipPath-creation.svg: * svg/custom/js-late-gradient-and-object-creation.svg: * svg/custom/js-late-gradient-creation.svg: * svg/custom/js-late-marker-and-object-creation.svg: * svg/custom/js-late-marker-creation.svg: * svg/custom/js-late-mask-and-object-creation.svg: * svg/custom/js-late-mask-creation.svg: * svg/custom/js-late-pattern-and-object-creation.svg: * svg/custom/js-late-pattern-creation.svg: * svg/custom/js-repaint-rect-on-path-with-stroke.svg: * svg/custom/js-update-bounce.svg: * svg/custom/js-update-container.svg: * svg/custom/js-update-container2.svg: * svg/custom/js-update-gradient.svg: * svg/custom/js-update-image.svg: * svg/custom/js-update-path-changes.svg: * svg/custom/js-update-path-removal.svg: * svg/custom/js-update-pattern-child.svg: * svg/custom/js-update-pattern.svg: * svg/custom/js-update-polygon-changes.svg: * svg/custom/js-update-polygon-removal.svg: * svg/custom/js-update-stop-linked-gradient.svg: * svg/custom/js-update-stop.svg: * svg/custom/js-update-style.svg: * svg/custom/js-update-transform-addition.svg: * svg/custom/js-update-transform-changes.svg: * svg/custom/linking-a-03-b-all.svg: * svg/custom/linking-a-03-b-preserveAspectRatio.svg: * svg/custom/linking-a-03-b-transform.svg: * svg/custom/linking-a-03-b-viewBox-transform.svg: * svg/custom/linking-a-03-b-viewBox.svg: * svg/custom/linking-a-03-b-viewTarget.svg: * svg/custom/linking-a-03-b-zoomAndPan.svg: * svg/custom/marker-child-changes-css.svg: * svg/custom/marker-child-changes.svg: * svg/custom/marker-strokeWidth-changes.svg: * svg/custom/marker-viewBox-changes.svg: * svg/custom/mask-child-changes.svg: * svg/custom/mask-invalidation.svg: * svg/custom/object-sizing-no-width-height-change-content-box-size.xhtml: * svg/custom/pending-resource-after-removal-expected.png: * svg/custom/pending-resource-after-removal.xhtml: * svg/custom/pending-resource-leak-2.svg: * svg/custom/pending-resource-leak-3.svg: * svg/custom/prevent-default.svg: * svg/custom/relative-sized-content-with-resources.xhtml: * svg/custom/relative-sized-content.xhtml: * svg/custom/relative-sized-deep-shadow-tree-content.xhtml: * svg/custom/relative-sized-image.xhtml: * svg/custom/relative-sized-inner-svg.xhtml: * svg/custom/relative-sized-shadow-tree-content-with-symbol.xhtml: * svg/custom/relative-sized-shadow-tree-content.xhtml: * svg/custom/relative-sized-use-on-symbol.xhtml: * svg/custom/relative-sized-use-without-attributes-on-symbol.xhtml: * svg/custom/repaint-moving-svg-and-div.xhtml: * svg/custom/repaint-on-constant-size-change.svg: * svg/custom/repaint-on-image-bounds-change.svg: * svg/custom/repaint-shadow.svg: * svg/custom/repaint-stroke-width-changes.svg: * svg/custom/resource-client-removal.svg: * svg/custom/resource-invalidate-on-target-update.svg: * svg/custom/resources/use-instanceRoot-event-bubbling.js: (repaintTest): * svg/custom/resources/use-instanceRoot-event-listeners.js: (repaintTest): * svg/custom/scroll-hit-test.xhtml: * svg/custom/scroll-to-anchor-in-symbol.svg: * svg/custom/scrolling-embedded-svg-file-image-repaint-problem.html: * svg/custom/stroke-opacity-update.svg: * svg/custom/svg-absolute-children.svg: * svg/custom/svg-disallowed-in-dashboard-object.html: * svg/custom/svg-fonts-in-html-linebreaks.html: * svg/custom/text-dom-removal.svg: * svg/custom/text-repaint-including-stroke.svg: * svg/custom/text-xy-updates-SVGList.xhtml: * svg/custom/use-animation-in-fill.html: * svg/custom/use-clipped-hit.svg: * svg/custom/use-crash-in-non-wellformed-document.svg: * svg/custom/use-crash-when-href-change.svg: * svg/custom/use-detach.svg: * svg/custom/use-disappears-after-style-update.svg: * svg/custom/use-elementInstance-event-target.svg: * svg/custom/use-elementInstance-methods.svg: * svg/custom/use-event-handler-on-referenced-element.svg: * svg/custom/use-event-handler-on-use-element.svg: * svg/custom/use-inherit-style.svg: * svg/custom/use-instanceRoot-as-event-target.xhtml: * svg/custom/use-instanceRoot-event-bubbling.xhtml: * svg/custom/use-instanceRoot-event-listeners.xhtml: * svg/custom/use-multiple-on-nested-disallowed-font.html: * svg/custom/use-setAttribute-crash.svg: Canonical link: https://commits.webkit.org/95114@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@107207 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-02-09 11:21:42 +00:00
function repaintTest() {
2010-08-01 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Dirk Schulze. SVG gradients do not update when scripted via xlink https://bugs.webkit.org/show_bug.cgi?id=42953 Unify cycle detection logic for chainable (through xlink:href) and ordinary resources. All operate on the render tree now, instead of falling back to the DOM tree for xlink:href queries. When linking resources, register as regular client, so the regular update mechanisms work as expected. <linearGradient id="foo"><stop../> </linearGradient> <linearGradient id="bar" xlink:href="#foo"/> <rect fill="url(#bar)"/> Without that the rect won't receive invalidation notifications, as foo <-> bar had no connection. Fixes the last outstanding class of invalidations. Also speeds up the cycle detetion, when using chained resources, as no SVG DOM queries have to be executed anymore. Test: svg/custom/js-update-stop-linked-gradient.svg * rendering/RenderSVGResourceContainer.cpp: (WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation): (WebCore::linkedResourceForContainer): * rendering/SVGResources.cpp: (WebCore::SVGResources::SVGResources): (WebCore::chainableResourceTags): (WebCore::targetReferenceFromResource): (WebCore::registerPendingResource): (WebCore::SVGResources::buildCachedResources): (WebCore::SVGResources::invalidateClient): (WebCore::SVGResources::resourceDestroyed): (WebCore::SVGResources::buildSetOfResources): (WebCore::SVGResources::setLinkedResource): (WebCore::SVGResources::resetLinkedResource): (WebCore::SVGResources::dump): * rendering/SVGResources.h: (WebCore::SVGResources::linkedResource): * rendering/SVGResourcesCycleSolver.cpp: (WebCore::SVGResourcesCycleSolver::resolveCycles): (WebCore::SVGResourcesCycleSolver::breakCycle): * rendering/SVGResourcesCycleSolver.h: * svg/SVGFilterElement.cpp: (WebCore::SVGFilterElement::SVGFilterElement): * svg/SVGFilterElement.h: * svg/SVGGradientElement.cpp: (WebCore::SVGGradientElement::SVGGradientElement): * svg/SVGGradientElement.h: * svg/SVGLinearGradientElement.cpp: (WebCore::SVGLinearGradientElement::collectGradientProperties): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::SVGPatternElement): (WebCore::SVGPatternElement::collectPatternProperties): * svg/SVGPatternElement.h: * svg/SVGRadialGradientElement.cpp: (WebCore::SVGRadialGradientElement::collectGradientProperties): 2010-08-01 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Dirk Schulze. SVG gradients do not update when scripted via xlink https://bugs.webkit.org/show_bug.cgi?id=42953 Add new test covering updates of linked gradients. * platform/mac/svg/custom/js-update-stop-linked-gradient-expected.checksum: Added. * platform/mac/svg/custom/js-update-stop-linked-gradient-expected.png: Added. * platform/mac/svg/custom/js-update-stop-linked-gradient-expected.txt: Added. * svg/custom/js-update-stop-linked-gradient.svg: Added. Canonical link: https://commits.webkit.org/55262@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@64440 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2010-08-01 09:49:04 +00:00
var stop = document.getElementById("stop1");
stop.parentNode.removeChild(stop);
}
</script>
Switch svg/custom tests to repaint harness https://bugs.webkit.org/show_bug.cgi?id=78115 Reviewed by Andreas Kling. Make all tests that exercise repainting use the fast/repaint/resources/repaint.js harness. * platform/chromium/test_expectations.txt: * platform/mac/svg/custom/absolute-sized-content-with-resources-expected.png: * platform/mac/svg/custom/absolute-sized-content-with-resources-expected.txt: * platform/mac/svg/custom/animate-path-discrete-expected.png: * platform/mac/svg/custom/animate-path-morphing-expected.png: * platform/mac/svg/custom/animate-target-id-changed-expected.png: * platform/mac/svg/custom/animate-target-removed-from-document-expected.png: * platform/mac/svg/custom/circle-move-invalidation-expected.png: * platform/mac/svg/custom/clip-path-child-changes-expected.png: * platform/mac/svg/custom/clip-path-href-changes-expected.png: * platform/mac/svg/custom/clip-path-id-changes-expected.png: * platform/mac/svg/custom/clip-path-units-changes-expected.png: * platform/mac/svg/custom/deep-dynamic-updates-expected.png: * platform/mac/svg/custom/fill-opacity-update-expected.png: * platform/mac/svg/custom/foreignObject-crash-on-hover-expected.png: * platform/mac/svg/custom/foreignObject-crash-on-hover-expected.txt: * platform/mac/svg/custom/gradient-add-stops-expected.png: * platform/mac/svg/custom/gradient-stop-style-change-expected.png: * platform/mac/svg/custom/hit-test-unclosed-subpaths-expected.png: * platform/mac/svg/custom/hit-test-unclosed-subpaths-expected.txt: * platform/mac/svg/custom/hit-test-with-br-expected.png: * platform/mac/svg/custom/js-late-clipPath-and-object-creation-expected.png: * platform/mac/svg/custom/js-late-clipPath-creation-expected.png: * platform/mac/svg/custom/js-late-gradient-and-object-creation-expected.png: * platform/mac/svg/custom/js-late-gradient-creation-expected.png: * platform/mac/svg/custom/js-late-marker-and-object-creation-expected.png: * platform/mac/svg/custom/js-late-marker-creation-expected.png: * platform/mac/svg/custom/js-late-mask-and-object-creation-expected.png: * platform/mac/svg/custom/js-late-mask-creation-expected.png: * platform/mac/svg/custom/js-late-pattern-and-object-creation-expected.png: * platform/mac/svg/custom/js-late-pattern-creation-expected.png: * platform/mac/svg/custom/js-repaint-rect-on-path-with-stroke-expected.png: * platform/mac/svg/custom/js-update-bounce-expected.png: * platform/mac/svg/custom/js-update-bounce-expected.txt: * platform/mac/svg/custom/js-update-container-expected.png: * platform/mac/svg/custom/js-update-container2-expected.png: * platform/mac/svg/custom/js-update-gradient-expected.png: * platform/mac/svg/custom/js-update-image-expected.png: * platform/mac/svg/custom/js-update-path-changes-expected.png: * platform/mac/svg/custom/js-update-path-removal-expected.png: * platform/mac/svg/custom/js-update-pattern-child-expected.png: * platform/mac/svg/custom/js-update-pattern-expected.png: * platform/mac/svg/custom/js-update-polygon-changes-expected.png: * platform/mac/svg/custom/js-update-polygon-removal-expected.png: * platform/mac/svg/custom/js-update-stop-expected.png: * platform/mac/svg/custom/js-update-stop-linked-gradient-expected.png: * platform/mac/svg/custom/js-update-stop-linked-gradient-expected.txt: * platform/mac/svg/custom/js-update-style-expected.png: * platform/mac/svg/custom/js-update-style-expected.txt: * platform/mac/svg/custom/js-update-transform-addition-expected.png: * platform/mac/svg/custom/js-update-transform-changes-expected.png: * platform/mac/svg/custom/marker-child-changes-css-expected.png: * platform/mac/svg/custom/marker-child-changes-expected.png: * platform/mac/svg/custom/marker-strokeWidth-changes-expected.png: * platform/mac/svg/custom/marker-viewBox-changes-expected.png: * platform/mac/svg/custom/mask-child-changes-expected.png: * platform/mac/svg/custom/mask-invalidation-expected.png: * platform/mac/svg/custom/mask-invalidation-expected.txt: * platform/mac/svg/custom/object-sizing-no-width-height-change-content-box-size-expected.png: * platform/mac/svg/custom/prevent-default-expected.png: * platform/mac/svg/custom/relative-sized-content-expected.png: * platform/mac/svg/custom/relative-sized-content-with-resources-expected.png: * platform/mac/svg/custom/relative-sized-content-with-resources-expected.txt: * platform/mac/svg/custom/relative-sized-deep-shadow-tree-content-expected.png: * platform/mac/svg/custom/relative-sized-image-expected.png: * platform/mac/svg/custom/relative-sized-inner-svg-expected.png: * platform/mac/svg/custom/relative-sized-shadow-tree-content-expected.png: * platform/mac/svg/custom/relative-sized-shadow-tree-content-with-symbol-expected.png: * platform/mac/svg/custom/relative-sized-use-on-symbol-expected.png: * platform/mac/svg/custom/relative-sized-use-without-attributes-on-symbol-expected.png: * platform/mac/svg/custom/repaint-moving-svg-and-div-expected.png: * platform/mac/svg/custom/repaint-on-image-bounds-change-expected.png: * platform/mac/svg/custom/resource-client-removal-expected.png: * platform/mac/svg/custom/resource-invalidate-on-target-update-expected.png: * platform/mac/svg/custom/scroll-hit-test-expected.png: * platform/mac/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.png: * platform/mac/svg/custom/stroke-opacity-update-expected.png: * platform/mac/svg/custom/svg-absolute-children-expected.png: * platform/mac/svg/custom/text-dom-removal-expected.png: * platform/mac/svg/custom/text-repaint-including-stroke-expected.png: * platform/mac/svg/custom/text-repaint-including-stroke-expected.txt: * platform/mac/svg/custom/text-xy-updates-SVGList-expected.png: * platform/mac/svg/custom/use-clipped-hit-expected.png: * platform/mac/svg/custom/use-clipped-hit-expected.txt: * platform/mac/svg/custom/use-detach-expected.png: * platform/mac/svg/custom/use-disappears-after-style-update-expected.png: * platform/mac/svg/custom/use-elementInstance-event-target-expected.png: * platform/mac/svg/custom/use-elementInstance-methods-expected.png: * platform/mac/svg/custom/use-event-handler-on-referenced-element-expected.png: * platform/mac/svg/custom/use-event-handler-on-use-element-expected.png: * platform/mac/svg/custom/use-inherit-style-expected.png: * platform/mac/svg/custom/use-instanceRoot-as-event-target-expected.png: Removed. * platform/mac/svg/custom/use-instanceRoot-event-bubbling-expected.png: * platform/mac/svg/custom/use-instanceRoot-event-listeners-expected.png: * platform/mac/svg/custom/use-setAttribute-crash-expected.png: * svg/custom/absolute-sized-content-with-resources.xhtml: * svg/custom/animate-path-discrete.svg: * svg/custom/animate-path-morphing.svg: * svg/custom/animate-target-id-changed.svg: * svg/custom/animate-target-removed-from-document.svg: * svg/custom/circle-move-invalidation.svg: * svg/custom/clip-path-child-changes.svg: * svg/custom/clip-path-href-changes.svg: * svg/custom/clip-path-id-changes.svg: * svg/custom/clip-path-units-changes.svg: * svg/custom/deep-dynamic-updates.svg: * svg/custom/fill-opacity-update.svg: * svg/custom/foreignObject-crash-on-hover.xml: * svg/custom/gradient-add-stops.svg: * svg/custom/gradient-stop-style-change.svg: * svg/custom/hit-test-path-stroke.svg: * svg/custom/hit-test-path.svg: * svg/custom/hit-test-unclosed-subpaths.svg: * svg/custom/hit-test-with-br.xhtml: * svg/custom/js-late-clipPath-and-object-creation.svg: * svg/custom/js-late-clipPath-creation.svg: * svg/custom/js-late-gradient-and-object-creation.svg: * svg/custom/js-late-gradient-creation.svg: * svg/custom/js-late-marker-and-object-creation.svg: * svg/custom/js-late-marker-creation.svg: * svg/custom/js-late-mask-and-object-creation.svg: * svg/custom/js-late-mask-creation.svg: * svg/custom/js-late-pattern-and-object-creation.svg: * svg/custom/js-late-pattern-creation.svg: * svg/custom/js-repaint-rect-on-path-with-stroke.svg: * svg/custom/js-update-bounce.svg: * svg/custom/js-update-container.svg: * svg/custom/js-update-container2.svg: * svg/custom/js-update-gradient.svg: * svg/custom/js-update-image.svg: * svg/custom/js-update-path-changes.svg: * svg/custom/js-update-path-removal.svg: * svg/custom/js-update-pattern-child.svg: * svg/custom/js-update-pattern.svg: * svg/custom/js-update-polygon-changes.svg: * svg/custom/js-update-polygon-removal.svg: * svg/custom/js-update-stop-linked-gradient.svg: * svg/custom/js-update-stop.svg: * svg/custom/js-update-style.svg: * svg/custom/js-update-transform-addition.svg: * svg/custom/js-update-transform-changes.svg: * svg/custom/linking-a-03-b-all.svg: * svg/custom/linking-a-03-b-preserveAspectRatio.svg: * svg/custom/linking-a-03-b-transform.svg: * svg/custom/linking-a-03-b-viewBox-transform.svg: * svg/custom/linking-a-03-b-viewBox.svg: * svg/custom/linking-a-03-b-viewTarget.svg: * svg/custom/linking-a-03-b-zoomAndPan.svg: * svg/custom/marker-child-changes-css.svg: * svg/custom/marker-child-changes.svg: * svg/custom/marker-strokeWidth-changes.svg: * svg/custom/marker-viewBox-changes.svg: * svg/custom/mask-child-changes.svg: * svg/custom/mask-invalidation.svg: * svg/custom/object-sizing-no-width-height-change-content-box-size.xhtml: * svg/custom/pending-resource-after-removal-expected.png: * svg/custom/pending-resource-after-removal.xhtml: * svg/custom/pending-resource-leak-2.svg: * svg/custom/pending-resource-leak-3.svg: * svg/custom/prevent-default.svg: * svg/custom/relative-sized-content-with-resources.xhtml: * svg/custom/relative-sized-content.xhtml: * svg/custom/relative-sized-deep-shadow-tree-content.xhtml: * svg/custom/relative-sized-image.xhtml: * svg/custom/relative-sized-inner-svg.xhtml: * svg/custom/relative-sized-shadow-tree-content-with-symbol.xhtml: * svg/custom/relative-sized-shadow-tree-content.xhtml: * svg/custom/relative-sized-use-on-symbol.xhtml: * svg/custom/relative-sized-use-without-attributes-on-symbol.xhtml: * svg/custom/repaint-moving-svg-and-div.xhtml: * svg/custom/repaint-on-constant-size-change.svg: * svg/custom/repaint-on-image-bounds-change.svg: * svg/custom/repaint-shadow.svg: * svg/custom/repaint-stroke-width-changes.svg: * svg/custom/resource-client-removal.svg: * svg/custom/resource-invalidate-on-target-update.svg: * svg/custom/resources/use-instanceRoot-event-bubbling.js: (repaintTest): * svg/custom/resources/use-instanceRoot-event-listeners.js: (repaintTest): * svg/custom/scroll-hit-test.xhtml: * svg/custom/scroll-to-anchor-in-symbol.svg: * svg/custom/scrolling-embedded-svg-file-image-repaint-problem.html: * svg/custom/stroke-opacity-update.svg: * svg/custom/svg-absolute-children.svg: * svg/custom/svg-disallowed-in-dashboard-object.html: * svg/custom/svg-fonts-in-html-linebreaks.html: * svg/custom/text-dom-removal.svg: * svg/custom/text-repaint-including-stroke.svg: * svg/custom/text-xy-updates-SVGList.xhtml: * svg/custom/use-animation-in-fill.html: * svg/custom/use-clipped-hit.svg: * svg/custom/use-crash-in-non-wellformed-document.svg: * svg/custom/use-crash-when-href-change.svg: * svg/custom/use-detach.svg: * svg/custom/use-disappears-after-style-update.svg: * svg/custom/use-elementInstance-event-target.svg: * svg/custom/use-elementInstance-methods.svg: * svg/custom/use-event-handler-on-referenced-element.svg: * svg/custom/use-event-handler-on-use-element.svg: * svg/custom/use-inherit-style.svg: * svg/custom/use-instanceRoot-as-event-target.xhtml: * svg/custom/use-instanceRoot-event-bubbling.xhtml: * svg/custom/use-instanceRoot-event-listeners.xhtml: * svg/custom/use-multiple-on-nested-disallowed-font.html: * svg/custom/use-setAttribute-crash.svg: Canonical link: https://commits.webkit.org/95114@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@107207 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-02-09 11:21:42 +00:00
<rect x="10" y="10" width="430" height="80" fill="url(#gradient)"/>
2010-08-01 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Dirk Schulze. SVG gradients do not update when scripted via xlink https://bugs.webkit.org/show_bug.cgi?id=42953 Unify cycle detection logic for chainable (through xlink:href) and ordinary resources. All operate on the render tree now, instead of falling back to the DOM tree for xlink:href queries. When linking resources, register as regular client, so the regular update mechanisms work as expected. <linearGradient id="foo"><stop../> </linearGradient> <linearGradient id="bar" xlink:href="#foo"/> <rect fill="url(#bar)"/> Without that the rect won't receive invalidation notifications, as foo <-> bar had no connection. Fixes the last outstanding class of invalidations. Also speeds up the cycle detetion, when using chained resources, as no SVG DOM queries have to be executed anymore. Test: svg/custom/js-update-stop-linked-gradient.svg * rendering/RenderSVGResourceContainer.cpp: (WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation): (WebCore::linkedResourceForContainer): * rendering/SVGResources.cpp: (WebCore::SVGResources::SVGResources): (WebCore::chainableResourceTags): (WebCore::targetReferenceFromResource): (WebCore::registerPendingResource): (WebCore::SVGResources::buildCachedResources): (WebCore::SVGResources::invalidateClient): (WebCore::SVGResources::resourceDestroyed): (WebCore::SVGResources::buildSetOfResources): (WebCore::SVGResources::setLinkedResource): (WebCore::SVGResources::resetLinkedResource): (WebCore::SVGResources::dump): * rendering/SVGResources.h: (WebCore::SVGResources::linkedResource): * rendering/SVGResourcesCycleSolver.cpp: (WebCore::SVGResourcesCycleSolver::resolveCycles): (WebCore::SVGResourcesCycleSolver::breakCycle): * rendering/SVGResourcesCycleSolver.h: * svg/SVGFilterElement.cpp: (WebCore::SVGFilterElement::SVGFilterElement): * svg/SVGFilterElement.h: * svg/SVGGradientElement.cpp: (WebCore::SVGGradientElement::SVGGradientElement): * svg/SVGGradientElement.h: * svg/SVGLinearGradientElement.cpp: (WebCore::SVGLinearGradientElement::collectGradientProperties): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::SVGPatternElement): (WebCore::SVGPatternElement::collectPatternProperties): * svg/SVGPatternElement.h: * svg/SVGRadialGradientElement.cpp: (WebCore::SVGRadialGradientElement::collectGradientProperties): 2010-08-01 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Dirk Schulze. SVG gradients do not update when scripted via xlink https://bugs.webkit.org/show_bug.cgi?id=42953 Add new test covering updates of linked gradients. * platform/mac/svg/custom/js-update-stop-linked-gradient-expected.checksum: Added. * platform/mac/svg/custom/js-update-stop-linked-gradient-expected.png: Added. * platform/mac/svg/custom/js-update-stop-linked-gradient-expected.txt: Added. * svg/custom/js-update-stop-linked-gradient.svg: Added. Canonical link: https://commits.webkit.org/55262@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@64440 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2010-08-01 09:49:04 +00:00
<rect x="10" y="110" width="430" height="80" fill="url(#linkedGradient1)"/>
<rect x="10" y="210" width="430" height="80" fill="url(#linkedGradient2)"/>
Switch svg/custom tests to repaint harness https://bugs.webkit.org/show_bug.cgi?id=78115 Reviewed by Andreas Kling. Make all tests that exercise repainting use the fast/repaint/resources/repaint.js harness. * platform/chromium/test_expectations.txt: * platform/mac/svg/custom/absolute-sized-content-with-resources-expected.png: * platform/mac/svg/custom/absolute-sized-content-with-resources-expected.txt: * platform/mac/svg/custom/animate-path-discrete-expected.png: * platform/mac/svg/custom/animate-path-morphing-expected.png: * platform/mac/svg/custom/animate-target-id-changed-expected.png: * platform/mac/svg/custom/animate-target-removed-from-document-expected.png: * platform/mac/svg/custom/circle-move-invalidation-expected.png: * platform/mac/svg/custom/clip-path-child-changes-expected.png: * platform/mac/svg/custom/clip-path-href-changes-expected.png: * platform/mac/svg/custom/clip-path-id-changes-expected.png: * platform/mac/svg/custom/clip-path-units-changes-expected.png: * platform/mac/svg/custom/deep-dynamic-updates-expected.png: * platform/mac/svg/custom/fill-opacity-update-expected.png: * platform/mac/svg/custom/foreignObject-crash-on-hover-expected.png: * platform/mac/svg/custom/foreignObject-crash-on-hover-expected.txt: * platform/mac/svg/custom/gradient-add-stops-expected.png: * platform/mac/svg/custom/gradient-stop-style-change-expected.png: * platform/mac/svg/custom/hit-test-unclosed-subpaths-expected.png: * platform/mac/svg/custom/hit-test-unclosed-subpaths-expected.txt: * platform/mac/svg/custom/hit-test-with-br-expected.png: * platform/mac/svg/custom/js-late-clipPath-and-object-creation-expected.png: * platform/mac/svg/custom/js-late-clipPath-creation-expected.png: * platform/mac/svg/custom/js-late-gradient-and-object-creation-expected.png: * platform/mac/svg/custom/js-late-gradient-creation-expected.png: * platform/mac/svg/custom/js-late-marker-and-object-creation-expected.png: * platform/mac/svg/custom/js-late-marker-creation-expected.png: * platform/mac/svg/custom/js-late-mask-and-object-creation-expected.png: * platform/mac/svg/custom/js-late-mask-creation-expected.png: * platform/mac/svg/custom/js-late-pattern-and-object-creation-expected.png: * platform/mac/svg/custom/js-late-pattern-creation-expected.png: * platform/mac/svg/custom/js-repaint-rect-on-path-with-stroke-expected.png: * platform/mac/svg/custom/js-update-bounce-expected.png: * platform/mac/svg/custom/js-update-bounce-expected.txt: * platform/mac/svg/custom/js-update-container-expected.png: * platform/mac/svg/custom/js-update-container2-expected.png: * platform/mac/svg/custom/js-update-gradient-expected.png: * platform/mac/svg/custom/js-update-image-expected.png: * platform/mac/svg/custom/js-update-path-changes-expected.png: * platform/mac/svg/custom/js-update-path-removal-expected.png: * platform/mac/svg/custom/js-update-pattern-child-expected.png: * platform/mac/svg/custom/js-update-pattern-expected.png: * platform/mac/svg/custom/js-update-polygon-changes-expected.png: * platform/mac/svg/custom/js-update-polygon-removal-expected.png: * platform/mac/svg/custom/js-update-stop-expected.png: * platform/mac/svg/custom/js-update-stop-linked-gradient-expected.png: * platform/mac/svg/custom/js-update-stop-linked-gradient-expected.txt: * platform/mac/svg/custom/js-update-style-expected.png: * platform/mac/svg/custom/js-update-style-expected.txt: * platform/mac/svg/custom/js-update-transform-addition-expected.png: * platform/mac/svg/custom/js-update-transform-changes-expected.png: * platform/mac/svg/custom/marker-child-changes-css-expected.png: * platform/mac/svg/custom/marker-child-changes-expected.png: * platform/mac/svg/custom/marker-strokeWidth-changes-expected.png: * platform/mac/svg/custom/marker-viewBox-changes-expected.png: * platform/mac/svg/custom/mask-child-changes-expected.png: * platform/mac/svg/custom/mask-invalidation-expected.png: * platform/mac/svg/custom/mask-invalidation-expected.txt: * platform/mac/svg/custom/object-sizing-no-width-height-change-content-box-size-expected.png: * platform/mac/svg/custom/prevent-default-expected.png: * platform/mac/svg/custom/relative-sized-content-expected.png: * platform/mac/svg/custom/relative-sized-content-with-resources-expected.png: * platform/mac/svg/custom/relative-sized-content-with-resources-expected.txt: * platform/mac/svg/custom/relative-sized-deep-shadow-tree-content-expected.png: * platform/mac/svg/custom/relative-sized-image-expected.png: * platform/mac/svg/custom/relative-sized-inner-svg-expected.png: * platform/mac/svg/custom/relative-sized-shadow-tree-content-expected.png: * platform/mac/svg/custom/relative-sized-shadow-tree-content-with-symbol-expected.png: * platform/mac/svg/custom/relative-sized-use-on-symbol-expected.png: * platform/mac/svg/custom/relative-sized-use-without-attributes-on-symbol-expected.png: * platform/mac/svg/custom/repaint-moving-svg-and-div-expected.png: * platform/mac/svg/custom/repaint-on-image-bounds-change-expected.png: * platform/mac/svg/custom/resource-client-removal-expected.png: * platform/mac/svg/custom/resource-invalidate-on-target-update-expected.png: * platform/mac/svg/custom/scroll-hit-test-expected.png: * platform/mac/svg/custom/scrolling-embedded-svg-file-image-repaint-problem-expected.png: * platform/mac/svg/custom/stroke-opacity-update-expected.png: * platform/mac/svg/custom/svg-absolute-children-expected.png: * platform/mac/svg/custom/text-dom-removal-expected.png: * platform/mac/svg/custom/text-repaint-including-stroke-expected.png: * platform/mac/svg/custom/text-repaint-including-stroke-expected.txt: * platform/mac/svg/custom/text-xy-updates-SVGList-expected.png: * platform/mac/svg/custom/use-clipped-hit-expected.png: * platform/mac/svg/custom/use-clipped-hit-expected.txt: * platform/mac/svg/custom/use-detach-expected.png: * platform/mac/svg/custom/use-disappears-after-style-update-expected.png: * platform/mac/svg/custom/use-elementInstance-event-target-expected.png: * platform/mac/svg/custom/use-elementInstance-methods-expected.png: * platform/mac/svg/custom/use-event-handler-on-referenced-element-expected.png: * platform/mac/svg/custom/use-event-handler-on-use-element-expected.png: * platform/mac/svg/custom/use-inherit-style-expected.png: * platform/mac/svg/custom/use-instanceRoot-as-event-target-expected.png: Removed. * platform/mac/svg/custom/use-instanceRoot-event-bubbling-expected.png: * platform/mac/svg/custom/use-instanceRoot-event-listeners-expected.png: * platform/mac/svg/custom/use-setAttribute-crash-expected.png: * svg/custom/absolute-sized-content-with-resources.xhtml: * svg/custom/animate-path-discrete.svg: * svg/custom/animate-path-morphing.svg: * svg/custom/animate-target-id-changed.svg: * svg/custom/animate-target-removed-from-document.svg: * svg/custom/circle-move-invalidation.svg: * svg/custom/clip-path-child-changes.svg: * svg/custom/clip-path-href-changes.svg: * svg/custom/clip-path-id-changes.svg: * svg/custom/clip-path-units-changes.svg: * svg/custom/deep-dynamic-updates.svg: * svg/custom/fill-opacity-update.svg: * svg/custom/foreignObject-crash-on-hover.xml: * svg/custom/gradient-add-stops.svg: * svg/custom/gradient-stop-style-change.svg: * svg/custom/hit-test-path-stroke.svg: * svg/custom/hit-test-path.svg: * svg/custom/hit-test-unclosed-subpaths.svg: * svg/custom/hit-test-with-br.xhtml: * svg/custom/js-late-clipPath-and-object-creation.svg: * svg/custom/js-late-clipPath-creation.svg: * svg/custom/js-late-gradient-and-object-creation.svg: * svg/custom/js-late-gradient-creation.svg: * svg/custom/js-late-marker-and-object-creation.svg: * svg/custom/js-late-marker-creation.svg: * svg/custom/js-late-mask-and-object-creation.svg: * svg/custom/js-late-mask-creation.svg: * svg/custom/js-late-pattern-and-object-creation.svg: * svg/custom/js-late-pattern-creation.svg: * svg/custom/js-repaint-rect-on-path-with-stroke.svg: * svg/custom/js-update-bounce.svg: * svg/custom/js-update-container.svg: * svg/custom/js-update-container2.svg: * svg/custom/js-update-gradient.svg: * svg/custom/js-update-image.svg: * svg/custom/js-update-path-changes.svg: * svg/custom/js-update-path-removal.svg: * svg/custom/js-update-pattern-child.svg: * svg/custom/js-update-pattern.svg: * svg/custom/js-update-polygon-changes.svg: * svg/custom/js-update-polygon-removal.svg: * svg/custom/js-update-stop-linked-gradient.svg: * svg/custom/js-update-stop.svg: * svg/custom/js-update-style.svg: * svg/custom/js-update-transform-addition.svg: * svg/custom/js-update-transform-changes.svg: * svg/custom/linking-a-03-b-all.svg: * svg/custom/linking-a-03-b-preserveAspectRatio.svg: * svg/custom/linking-a-03-b-transform.svg: * svg/custom/linking-a-03-b-viewBox-transform.svg: * svg/custom/linking-a-03-b-viewBox.svg: * svg/custom/linking-a-03-b-viewTarget.svg: * svg/custom/linking-a-03-b-zoomAndPan.svg: * svg/custom/marker-child-changes-css.svg: * svg/custom/marker-child-changes.svg: * svg/custom/marker-strokeWidth-changes.svg: * svg/custom/marker-viewBox-changes.svg: * svg/custom/mask-child-changes.svg: * svg/custom/mask-invalidation.svg: * svg/custom/object-sizing-no-width-height-change-content-box-size.xhtml: * svg/custom/pending-resource-after-removal-expected.png: * svg/custom/pending-resource-after-removal.xhtml: * svg/custom/pending-resource-leak-2.svg: * svg/custom/pending-resource-leak-3.svg: * svg/custom/prevent-default.svg: * svg/custom/relative-sized-content-with-resources.xhtml: * svg/custom/relative-sized-content.xhtml: * svg/custom/relative-sized-deep-shadow-tree-content.xhtml: * svg/custom/relative-sized-image.xhtml: * svg/custom/relative-sized-inner-svg.xhtml: * svg/custom/relative-sized-shadow-tree-content-with-symbol.xhtml: * svg/custom/relative-sized-shadow-tree-content.xhtml: * svg/custom/relative-sized-use-on-symbol.xhtml: * svg/custom/relative-sized-use-without-attributes-on-symbol.xhtml: * svg/custom/repaint-moving-svg-and-div.xhtml: * svg/custom/repaint-on-constant-size-change.svg: * svg/custom/repaint-on-image-bounds-change.svg: * svg/custom/repaint-shadow.svg: * svg/custom/repaint-stroke-width-changes.svg: * svg/custom/resource-client-removal.svg: * svg/custom/resource-invalidate-on-target-update.svg: * svg/custom/resources/use-instanceRoot-event-bubbling.js: (repaintTest): * svg/custom/resources/use-instanceRoot-event-listeners.js: (repaintTest): * svg/custom/scroll-hit-test.xhtml: * svg/custom/scroll-to-anchor-in-symbol.svg: * svg/custom/scrolling-embedded-svg-file-image-repaint-problem.html: * svg/custom/stroke-opacity-update.svg: * svg/custom/svg-absolute-children.svg: * svg/custom/svg-disallowed-in-dashboard-object.html: * svg/custom/svg-fonts-in-html-linebreaks.html: * svg/custom/text-dom-removal.svg: * svg/custom/text-repaint-including-stroke.svg: * svg/custom/text-xy-updates-SVGList.xhtml: * svg/custom/use-animation-in-fill.html: * svg/custom/use-clipped-hit.svg: * svg/custom/use-crash-in-non-wellformed-document.svg: * svg/custom/use-crash-when-href-change.svg: * svg/custom/use-detach.svg: * svg/custom/use-disappears-after-style-update.svg: * svg/custom/use-elementInstance-event-target.svg: * svg/custom/use-elementInstance-methods.svg: * svg/custom/use-event-handler-on-referenced-element.svg: * svg/custom/use-event-handler-on-use-element.svg: * svg/custom/use-inherit-style.svg: * svg/custom/use-instanceRoot-as-event-target.xhtml: * svg/custom/use-instanceRoot-event-bubbling.xhtml: * svg/custom/use-instanceRoot-event-listeners.xhtml: * svg/custom/use-multiple-on-nested-disallowed-font.html: * svg/custom/use-setAttribute-crash.svg: Canonical link: https://commits.webkit.org/95114@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@107207 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-02-09 11:21:42 +00:00
<text text-anchor="middle" x="220" y="320">All gradients should look the same</text>
2010-08-01 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Dirk Schulze. SVG gradients do not update when scripted via xlink https://bugs.webkit.org/show_bug.cgi?id=42953 Unify cycle detection logic for chainable (through xlink:href) and ordinary resources. All operate on the render tree now, instead of falling back to the DOM tree for xlink:href queries. When linking resources, register as regular client, so the regular update mechanisms work as expected. <linearGradient id="foo"><stop../> </linearGradient> <linearGradient id="bar" xlink:href="#foo"/> <rect fill="url(#bar)"/> Without that the rect won't receive invalidation notifications, as foo <-> bar had no connection. Fixes the last outstanding class of invalidations. Also speeds up the cycle detetion, when using chained resources, as no SVG DOM queries have to be executed anymore. Test: svg/custom/js-update-stop-linked-gradient.svg * rendering/RenderSVGResourceContainer.cpp: (WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation): (WebCore::linkedResourceForContainer): * rendering/SVGResources.cpp: (WebCore::SVGResources::SVGResources): (WebCore::chainableResourceTags): (WebCore::targetReferenceFromResource): (WebCore::registerPendingResource): (WebCore::SVGResources::buildCachedResources): (WebCore::SVGResources::invalidateClient): (WebCore::SVGResources::resourceDestroyed): (WebCore::SVGResources::buildSetOfResources): (WebCore::SVGResources::setLinkedResource): (WebCore::SVGResources::resetLinkedResource): (WebCore::SVGResources::dump): * rendering/SVGResources.h: (WebCore::SVGResources::linkedResource): * rendering/SVGResourcesCycleSolver.cpp: (WebCore::SVGResourcesCycleSolver::resolveCycles): (WebCore::SVGResourcesCycleSolver::breakCycle): * rendering/SVGResourcesCycleSolver.h: * svg/SVGFilterElement.cpp: (WebCore::SVGFilterElement::SVGFilterElement): * svg/SVGFilterElement.h: * svg/SVGGradientElement.cpp: (WebCore::SVGGradientElement::SVGGradientElement): * svg/SVGGradientElement.h: * svg/SVGLinearGradientElement.cpp: (WebCore::SVGLinearGradientElement::collectGradientProperties): * svg/SVGPatternElement.cpp: (WebCore::SVGPatternElement::SVGPatternElement): (WebCore::SVGPatternElement::collectPatternProperties): * svg/SVGPatternElement.h: * svg/SVGRadialGradientElement.cpp: (WebCore::SVGRadialGradientElement::collectGradientProperties): 2010-08-01 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Dirk Schulze. SVG gradients do not update when scripted via xlink https://bugs.webkit.org/show_bug.cgi?id=42953 Add new test covering updates of linked gradients. * platform/mac/svg/custom/js-update-stop-linked-gradient-expected.checksum: Added. * platform/mac/svg/custom/js-update-stop-linked-gradient-expected.png: Added. * platform/mac/svg/custom/js-update-stop-linked-gradient-expected.txt: Added. * svg/custom/js-update-stop-linked-gradient.svg: Added. Canonical link: https://commits.webkit.org/55262@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@64440 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2010-08-01 09:49:04 +00:00
</svg>