haikuwebkit/LayoutTests/svg/transforms/animated-path-inside-transf...

37 lines
1.3 KiB
HTML
Raw Permalink Normal View History

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>SVG inside transformed div</title>
Rewrite SVG tests to make extensive use of display() in repaint tests https://bugs.webkit.org/show_bug.cgi?id=77736 Reviewed by Andreas Kling. Convert all tests in svg/ (except svg/custom & svg/dynamic-updates) that exercise repainting to use the fast/repaint/resources/repaint.js harness, which forces a layout, and calls layoutTestController.display() before executing the actual repaint test, so that repaint rectangles are properly tracked and shown (white areas that are redrawn, on top of the gray background, painted over the web view after the initial painting). Previously SVG tests used to work like this: (using an HTML example, but it doesn't matter) <html><body><svg><rect/><script>function change() { rect.setAttribute(...); layoutTestController.notifyDone(); } setTimeout(change, 0); </script></svg></body></html> We expected that the initial painting was done, before change() as called. This is unreliable for various reasons: - the timeout is not guaranteed to fire after the document loaded, it may happen inbetween on eg. a slow connection. - nor is it guaranteed that the document has painted initially before we enter change(). This leads to the current regressions -- if we break repainting, we can't see it in the current layout tests, as the initial painting always happens after change() executed in trunk, at least on a fast machine. In order to make repaint testing reliable we have to use following scheme: <html><body onload="runRepaintTest()"><svg><rect/><script>function repaintTest() { rect.setAttribute(...); }</script></svg></body></html> runRepaintTest() is provided by the repaint.js harness and does: if (window.layoutTestController) { document.body.offsetTop; layoutTestController.display(); repaintTest(); } else { setTimeout(repaintTest, 100); } Using this harness outside of DRT allows to test SVG repainting tests in the browser as well, as the repainting changes aren't immediately fired (0ms timer) but instead delayed by 100ms, so a visual "flash" is visible, if something changes. For DRT it does two things. First it forces Document::updateLayout() to be called, and then forces the web view to paint immediately, and then it starts tracking any repaint rects, that are fired _after_ the initial painting, which are then highlighted in the pixel test dump later on. Using display() is the only way to get reliable painting results across DRT/WebKitTestRunner, and to get rid of the flakiness. All *.xml/*.html/*.htm/*.xhtml tests which excersise repainting can be moved to use runRepaintTest() from repaint.js. <body> needs to be changed to <body onload="runRepaintTest()">, and the timeouts & waitUntilDone/notifyDone calls can be removed from the tests, leading to much nicer testcases, removing lots of boilerplate. Pure *.svg tests unfortunately can't use <svg onload="runRepaintTest()"> at the moment, due timing differences between the HTML load and the SVGLoad event, that's out of scope for this bug report. To remove any hacks from the testcases themselves, I centralized following work-around in a new function in repaint.js, and let all *.svg tests use it. function runSVGRepaintTest() { if (window.layoutTestController) { layoutTestController.waitUntilDone(); setTimeout(runRepaintTest, 0); } else runRepaintTest(); } runRepaintTest() has to be called from a timer at the moment, as the SVGLoad event fires earlier as HTML load event. Before that is fixed, we have to use <svg onload="runSVGRepaintTest()"> instead of <svg onload="runRepaintTest()"> and append: layoutTestController.notifyDone() to the repaintTest() functions in the testcases. That should explain the testcase differences between pure-SVG and non-pure-SVG tests, and why I treated them differently. This approach is unfortunately as flakey as the old, so to make pure *.svg tests test repainting reliable, the bug needs to be fixed. Note that svg/custom, and svg/dynamic-updates will be fixed in another chunk, as they also require large amounts of rebaselines. * fast/repaint/resources/repaint.js: (runRepaintTest): (runSVGRepaintTest): * platform/chromium/test_expectations.txt: * platform/mac/svg/as-background-image/animated-svg-as-background-expected.png: * platform/mac/svg/as-image/animated-svg-as-image-expected.png: * platform/mac/svg/as-image/animated-svg-as-image-no-fixed-intrinsic-size-expected.png: * platform/mac/svg/as-image/animated-svg-as-image-same-image-expected.png: * platform/mac/svg/as-image/svg-image-change-content-size-expected.png: * platform/mac/svg/as-object/deep-nested-embedded-svg-size-changes-no-layout-triggers-1-expected.png: * platform/mac/svg/as-object/deep-nested-embedded-svg-size-changes-no-layout-triggers-1-expected.txt: * platform/mac/svg/as-object/deep-nested-embedded-svg-size-changes-no-layout-triggers-2-expected.png: * platform/mac/svg/as-object/deep-nested-embedded-svg-size-changes-no-layout-triggers-2-expected.txt: * platform/mac/svg/as-object/embedded-svg-immediate-offsetWidth-query-expected.png: * platform/mac/svg/as-object/embedded-svg-size-changes-expected.png: * platform/mac/svg/as-object/embedded-svg-size-changes-no-layout-triggers-expected.png: * platform/mac/svg/as-object/embedded-svg-size-changes-no-layout-triggers-expected.txt: * platform/mac/svg/as-object/nested-embedded-svg-size-changes-expected.png: * platform/mac/svg/as-object/nested-embedded-svg-size-changes-no-layout-triggers-1-expected.png: * platform/mac/svg/as-object/nested-embedded-svg-size-changes-no-layout-triggers-1-expected.txt: * platform/mac/svg/as-object/nested-embedded-svg-size-changes-no-layout-triggers-2-expected.png: * platform/mac/svg/as-object/nested-embedded-svg-size-changes-no-layout-triggers-2-expected.txt: * platform/mac/svg/carto.net/tabgroup-expected.png: * platform/mac/svg/carto.net/tabgroup-expected.txt: * platform/mac/svg/carto.net/window-expected.png: * platform/mac/svg/carto.net/window-expected.txt: * platform/mac/svg/css/shadow-changes-expected.png: * platform/mac/svg/dom/SVGPathSegList-segment-modification-expected.png: * platform/mac/svg/dom/SVGPathSegList-segment-modification-expected.txt: * platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization-expected.png: * platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization2-expected.png: * platform/mac/svg/dom/SVGRectElement/rect-modify-rx-expected.png: * platform/mac/svg/filters/filter-refresh-expected.png: * platform/mac/svg/filters/filter-width-update-expected.png: * platform/mac/svg/filters/filter-width-update-expected.txt: * platform/mac/svg/filters/invalidate-on-child-layout-expected.png: * platform/mac/svg/hixie/perf/001-expected.png: * platform/mac/svg/hixie/perf/002-expected.png: * platform/mac/svg/hixie/perf/003-expected.png: * platform/mac/svg/hixie/perf/003-expected.txt: * platform/mac/svg/hixie/perf/004-expected.png: * platform/mac/svg/hixie/perf/004-expected.txt: * platform/mac/svg/hixie/perf/005-expected.png: * platform/mac/svg/hixie/perf/005-expected.txt: * platform/mac/svg/hixie/perf/006-expected.png: * platform/mac/svg/hixie/perf/006-expected.txt: * platform/mac/svg/hixie/perf/007-expected.png: * platform/mac/svg/hixie/perf/007-expected.txt: * platform/mac/svg/repaint/filter-child-repaint-expected.png: * platform/mac/svg/repaint/image-href-change-expected.png: * platform/mac/svg/repaint/image-with-clip-path-expected.png: * platform/mac/svg/text/append-text-node-to-tspan-expected.png: * platform/mac/svg/text/modify-text-node-in-tspan-expected.png: * platform/mac/svg/text/remove-text-node-from-tspan-expected.png: * platform/mac/svg/text/remove-tspan-from-text-expected.png: * platform/mac/svg/text/text-text-05-t-expected.png: * platform/mac/svg/text/text-text-05-t-expected.txt: * platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.png: * platform/mac/svg/zoom/page/absolute-sized-document-no-scrollbars-expected.png: * platform/mac/svg/zoom/page/relative-sized-document-scrollbars-expected.png: * platform/mac/svg/zoom/page/zoom-background-images-expected.txt: * platform/mac/svg/zoom/page/zoom-foreignObject-expected.png: * platform/mac/svg/zoom/page/zoom-hixie-mixed-008-expected.txt: * platform/mac/svg/zoom/page/zoom-hixie-rendering-model-004-expected.png: * platform/mac/svg/zoom/page/zoom-hixie-rendering-model-004-expected.txt: * platform/mac/svg/zoom/page/zoom-mask-with-percentages-expected.png: * platform/mac/svg/zoom/page/zoom-svg-as-background-with-relative-size-and-viewBox-expected.png: * platform/mac/svg/zoom/page/zoom-svg-as-background-with-relative-size-expected.png: * platform/mac/svg/zoom/page/zoom-svg-as-image-expected.png: * platform/mac/svg/zoom/page/zoom-svg-as-object-expected.png: * platform/mac/svg/zoom/page/zoom-svg-as-relative-image-expected.png: * platform/mac/svg/zoom/page/zoom-svg-through-object-with-auto-size-expected.txt: * platform/mac/svg/zoom/page/zoom-svg-through-object-with-override-size-expected.txt: * platform/mac/svg/zoom/text/absolute-sized-document-no-scrollbars-expected.png: * platform/mac/svg/zoom/text/absolute-sized-document-scrollbars-expected.png: * platform/mac/svg/zoom/text/relative-sized-document-scrollbars-expected.png: * platform/mac/svg/zoom/text/zoom-foreignObject-expected.png: * platform/mac/svg/zoom/text/zoom-hixie-mixed-008-expected.png: * platform/mac/svg/zoom/text/zoom-hixie-mixed-008-expected.txt: * platform/mac/svg/zoom/text/zoom-hixie-mixed-009-expected.png: * platform/mac/svg/zoom/text/zoom-hixie-rendering-model-004-expected.png: * platform/mac/svg/zoom/text/zoom-hixie-rendering-model-004-expected.txt: * svg/as-background-image/animated-svg-as-background.html: * svg/as-background-image/resources/animated-rect-relative-size.svg: * svg/as-background-image/svg-as-background-5.html: * svg/as-background-image/svg-background-partial-redraw.html: * svg/as-image/animated-svg-as-image-no-fixed-intrinsic-size.html: * svg/as-image/animated-svg-as-image-same-image.html: * svg/as-image/animated-svg-as-image.html: * svg/as-image/resources/animated-rect-fixed-size-2.svg: Copied from LayoutTests/svg/as-image/resources/animated-rect-same-image.svg. * svg/as-image/resources/animated-rect-fixed-size.svg: * svg/as-image/resources/animated-rect-relative-size.svg: * svg/as-image/resources/animated-rect-same-image.svg: * svg/as-image/svg-image-change-content-size.xhtml: * svg/as-object/embedded-svg-immediate-offsetWidth-query.html: * svg/as-object/embedded-svg-size-changes-no-layout-triggers.html: * svg/as-object/embedded-svg-size-changes.html: * svg/as-object/nested-embedded-svg-size-changes-no-layout-triggers-1.html: * svg/as-object/nested-embedded-svg-size-changes-no-layout-triggers-2.html: * svg/as-object/nested-embedded-svg-size-changes.html: * svg/as-object/resources/embedded-svg-size-changes-no-layout-triggers.svg: * svg/as-object/resources/nested-embedded-svg-size-changes-target-no-layout-triggers-1.html: * svg/carto.net/tabgroup.svg: * svg/carto.net/window.svg: * svg/css/shadow-changes.svg: * svg/dom/SVGPathSegList-segment-modification.svg: * svg/dom/SVGPathSegList-xml-dom-synchronization.xhtml: * svg/dom/SVGPathSegList-xml-dom-synchronization2.xhtml: * svg/dom/SVGRectElement/rect-modify-rx.svg: * svg/filters/animate-fill-expected.png: * svg/filters/animate-fill.svg: * svg/filters/feImage-reference-invalidation-expected.png: * svg/filters/feImage-reference-invalidation.svg: * svg/filters/feImage-target-add-to-document-expected.png: * svg/filters/feImage-target-add-to-document.svg: * svg/filters/feImage-target-changes-id-expected.png: * svg/filters/feImage-target-changes-id.svg: * svg/filters/feImage-target-id-change-expected.png: * svg/filters/feImage-target-id-change.svg: * svg/filters/feImage-target-reappend-to-document-expected.png: * svg/filters/feImage-target-reappend-to-document.svg: * svg/filters/feImage-target-remove-from-document-expected.png: * svg/filters/feImage-target-remove-from-document.svg: * svg/filters/filter-refresh.svg: * svg/filters/filter-width-update.svg: * svg/filters/invalidate-on-child-layout.svg: * svg/hixie/perf/001.xml: * svg/hixie/perf/002.xml: * svg/hixie/perf/003.xml: * svg/hixie/perf/004.xml: * svg/hixie/perf/005.xml: * svg/hixie/perf/006.xml: * svg/hixie/perf/007.xml: * svg/hixie/perf/resources/smallcats.gif: Added. * svg/repaint/container-repaint-expected.png: * svg/repaint/container-repaint.svg: * svg/repaint/filter-child-repaint.svg: * svg/repaint/image-href-change.svg: * svg/repaint/image-with-clip-path.svg: * svg/text/append-text-node-to-tspan.html: * svg/text/modify-text-node-in-tspan.html: * svg/text/remove-text-node-from-tspan.html: * svg/text/remove-tspan-from-text.html: * svg/text/text-text-05-t.svg: * svg/transforms/animated-path-inside-transformed-html.xhtml: * svg/zoom/page/absolute-sized-document-no-scrollbars.svg: * svg/zoom/page/absolute-sized-document-scrollbars.svg: * svg/zoom/page/relative-sized-document-scrollbars.svg: * svg/zoom/page/zoom-background-image-tiled.html: * svg/zoom/page/zoom-background-images.html: * svg/zoom/page/zoom-coords-viewattr-01-b.svg: * svg/zoom/page/zoom-foreignObject.svg: * svg/zoom/page/zoom-getBoundingClientRect.xhtml: * svg/zoom/page/zoom-hixie-mixed-008.xml: * svg/zoom/page/zoom-hixie-mixed-009.xml: * svg/zoom/page/zoom-hixie-rendering-model-004.xhtml: * svg/zoom/page/zoom-img-preserveAspectRatio-support-1.html: * svg/zoom/page/zoom-mask-with-percentages.svg: * svg/zoom/page/zoom-replaced-intrinsic-ratio-001.htm: * svg/zoom/page/zoom-svg-as-background-with-relative-size-and-viewBox.html: * svg/zoom/page/zoom-svg-as-background-with-relative-size.html: * svg/zoom/page/zoom-svg-as-image.html: * svg/zoom/page/zoom-svg-as-object.html: * svg/zoom/page/zoom-svg-as-relative-image.html: * svg/zoom/page/zoom-svg-float-border-padding.xml: * svg/zoom/page/zoom-svg-through-object-with-absolute-size-2.xhtml: * svg/zoom/page/zoom-svg-through-object-with-absolute-size.xhtml: * svg/zoom/page/zoom-svg-through-object-with-auto-size.html: * svg/zoom/page/zoom-svg-through-object-with-huge-size.xhtml: * svg/zoom/page/zoom-svg-through-object-with-override-size.html: * svg/zoom/page/zoom-svg-through-object-with-percentage-size.xhtml: * svg/zoom/page/zoom-svg-through-object-with-text.xhtml-disabled: * svg/zoom/page/zoom-zoom-coords.xhtml: * svg/zoom/resources/testPageZoom.js: (repaintTest): * svg/zoom/resources/testTextZoom.js: (repaintTest): * svg/zoom/text/absolute-sized-document-no-scrollbars.svg: * svg/zoom/text/absolute-sized-document-scrollbars.svg: * svg/zoom/text/relative-sized-document-scrollbars.svg: * svg/zoom/text/zoom-coords-viewattr-01-b.svg: * svg/zoom/text/zoom-foreignObject.svg: * svg/zoom/text/zoom-hixie-mixed-008.xml: * svg/zoom/text/zoom-hixie-mixed-009.xml: * svg/zoom/text/zoom-hixie-rendering-model-004.xhtml: * svg/zoom/text/zoom-svg-float-border-padding.xml: Canonical link: https://commits.webkit.org/94836@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@106918 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-02-07 11:19:19 +00:00
<script src="../../fast/repaint/resources/repaint.js"></script>
<style>
body {
background-color: white;
}
.box {
height: 400px;
width: 400px;
margin: 50px;
border: 1px solid black;
-webkit-transform: translate(30px, 30px) rotate(20deg);
}
</style>
</head>
Rewrite SVG tests to make extensive use of display() in repaint tests https://bugs.webkit.org/show_bug.cgi?id=77736 Reviewed by Andreas Kling. Convert all tests in svg/ (except svg/custom & svg/dynamic-updates) that exercise repainting to use the fast/repaint/resources/repaint.js harness, which forces a layout, and calls layoutTestController.display() before executing the actual repaint test, so that repaint rectangles are properly tracked and shown (white areas that are redrawn, on top of the gray background, painted over the web view after the initial painting). Previously SVG tests used to work like this: (using an HTML example, but it doesn't matter) <html><body><svg><rect/><script>function change() { rect.setAttribute(...); layoutTestController.notifyDone(); } setTimeout(change, 0); </script></svg></body></html> We expected that the initial painting was done, before change() as called. This is unreliable for various reasons: - the timeout is not guaranteed to fire after the document loaded, it may happen inbetween on eg. a slow connection. - nor is it guaranteed that the document has painted initially before we enter change(). This leads to the current regressions -- if we break repainting, we can't see it in the current layout tests, as the initial painting always happens after change() executed in trunk, at least on a fast machine. In order to make repaint testing reliable we have to use following scheme: <html><body onload="runRepaintTest()"><svg><rect/><script>function repaintTest() { rect.setAttribute(...); }</script></svg></body></html> runRepaintTest() is provided by the repaint.js harness and does: if (window.layoutTestController) { document.body.offsetTop; layoutTestController.display(); repaintTest(); } else { setTimeout(repaintTest, 100); } Using this harness outside of DRT allows to test SVG repainting tests in the browser as well, as the repainting changes aren't immediately fired (0ms timer) but instead delayed by 100ms, so a visual "flash" is visible, if something changes. For DRT it does two things. First it forces Document::updateLayout() to be called, and then forces the web view to paint immediately, and then it starts tracking any repaint rects, that are fired _after_ the initial painting, which are then highlighted in the pixel test dump later on. Using display() is the only way to get reliable painting results across DRT/WebKitTestRunner, and to get rid of the flakiness. All *.xml/*.html/*.htm/*.xhtml tests which excersise repainting can be moved to use runRepaintTest() from repaint.js. <body> needs to be changed to <body onload="runRepaintTest()">, and the timeouts & waitUntilDone/notifyDone calls can be removed from the tests, leading to much nicer testcases, removing lots of boilerplate. Pure *.svg tests unfortunately can't use <svg onload="runRepaintTest()"> at the moment, due timing differences between the HTML load and the SVGLoad event, that's out of scope for this bug report. To remove any hacks from the testcases themselves, I centralized following work-around in a new function in repaint.js, and let all *.svg tests use it. function runSVGRepaintTest() { if (window.layoutTestController) { layoutTestController.waitUntilDone(); setTimeout(runRepaintTest, 0); } else runRepaintTest(); } runRepaintTest() has to be called from a timer at the moment, as the SVGLoad event fires earlier as HTML load event. Before that is fixed, we have to use <svg onload="runSVGRepaintTest()"> instead of <svg onload="runRepaintTest()"> and append: layoutTestController.notifyDone() to the repaintTest() functions in the testcases. That should explain the testcase differences between pure-SVG and non-pure-SVG tests, and why I treated them differently. This approach is unfortunately as flakey as the old, so to make pure *.svg tests test repainting reliable, the bug needs to be fixed. Note that svg/custom, and svg/dynamic-updates will be fixed in another chunk, as they also require large amounts of rebaselines. * fast/repaint/resources/repaint.js: (runRepaintTest): (runSVGRepaintTest): * platform/chromium/test_expectations.txt: * platform/mac/svg/as-background-image/animated-svg-as-background-expected.png: * platform/mac/svg/as-image/animated-svg-as-image-expected.png: * platform/mac/svg/as-image/animated-svg-as-image-no-fixed-intrinsic-size-expected.png: * platform/mac/svg/as-image/animated-svg-as-image-same-image-expected.png: * platform/mac/svg/as-image/svg-image-change-content-size-expected.png: * platform/mac/svg/as-object/deep-nested-embedded-svg-size-changes-no-layout-triggers-1-expected.png: * platform/mac/svg/as-object/deep-nested-embedded-svg-size-changes-no-layout-triggers-1-expected.txt: * platform/mac/svg/as-object/deep-nested-embedded-svg-size-changes-no-layout-triggers-2-expected.png: * platform/mac/svg/as-object/deep-nested-embedded-svg-size-changes-no-layout-triggers-2-expected.txt: * platform/mac/svg/as-object/embedded-svg-immediate-offsetWidth-query-expected.png: * platform/mac/svg/as-object/embedded-svg-size-changes-expected.png: * platform/mac/svg/as-object/embedded-svg-size-changes-no-layout-triggers-expected.png: * platform/mac/svg/as-object/embedded-svg-size-changes-no-layout-triggers-expected.txt: * platform/mac/svg/as-object/nested-embedded-svg-size-changes-expected.png: * platform/mac/svg/as-object/nested-embedded-svg-size-changes-no-layout-triggers-1-expected.png: * platform/mac/svg/as-object/nested-embedded-svg-size-changes-no-layout-triggers-1-expected.txt: * platform/mac/svg/as-object/nested-embedded-svg-size-changes-no-layout-triggers-2-expected.png: * platform/mac/svg/as-object/nested-embedded-svg-size-changes-no-layout-triggers-2-expected.txt: * platform/mac/svg/carto.net/tabgroup-expected.png: * platform/mac/svg/carto.net/tabgroup-expected.txt: * platform/mac/svg/carto.net/window-expected.png: * platform/mac/svg/carto.net/window-expected.txt: * platform/mac/svg/css/shadow-changes-expected.png: * platform/mac/svg/dom/SVGPathSegList-segment-modification-expected.png: * platform/mac/svg/dom/SVGPathSegList-segment-modification-expected.txt: * platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization-expected.png: * platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization2-expected.png: * platform/mac/svg/dom/SVGRectElement/rect-modify-rx-expected.png: * platform/mac/svg/filters/filter-refresh-expected.png: * platform/mac/svg/filters/filter-width-update-expected.png: * platform/mac/svg/filters/filter-width-update-expected.txt: * platform/mac/svg/filters/invalidate-on-child-layout-expected.png: * platform/mac/svg/hixie/perf/001-expected.png: * platform/mac/svg/hixie/perf/002-expected.png: * platform/mac/svg/hixie/perf/003-expected.png: * platform/mac/svg/hixie/perf/003-expected.txt: * platform/mac/svg/hixie/perf/004-expected.png: * platform/mac/svg/hixie/perf/004-expected.txt: * platform/mac/svg/hixie/perf/005-expected.png: * platform/mac/svg/hixie/perf/005-expected.txt: * platform/mac/svg/hixie/perf/006-expected.png: * platform/mac/svg/hixie/perf/006-expected.txt: * platform/mac/svg/hixie/perf/007-expected.png: * platform/mac/svg/hixie/perf/007-expected.txt: * platform/mac/svg/repaint/filter-child-repaint-expected.png: * platform/mac/svg/repaint/image-href-change-expected.png: * platform/mac/svg/repaint/image-with-clip-path-expected.png: * platform/mac/svg/text/append-text-node-to-tspan-expected.png: * platform/mac/svg/text/modify-text-node-in-tspan-expected.png: * platform/mac/svg/text/remove-text-node-from-tspan-expected.png: * platform/mac/svg/text/remove-tspan-from-text-expected.png: * platform/mac/svg/text/text-text-05-t-expected.png: * platform/mac/svg/text/text-text-05-t-expected.txt: * platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.png: * platform/mac/svg/zoom/page/absolute-sized-document-no-scrollbars-expected.png: * platform/mac/svg/zoom/page/relative-sized-document-scrollbars-expected.png: * platform/mac/svg/zoom/page/zoom-background-images-expected.txt: * platform/mac/svg/zoom/page/zoom-foreignObject-expected.png: * platform/mac/svg/zoom/page/zoom-hixie-mixed-008-expected.txt: * platform/mac/svg/zoom/page/zoom-hixie-rendering-model-004-expected.png: * platform/mac/svg/zoom/page/zoom-hixie-rendering-model-004-expected.txt: * platform/mac/svg/zoom/page/zoom-mask-with-percentages-expected.png: * platform/mac/svg/zoom/page/zoom-svg-as-background-with-relative-size-and-viewBox-expected.png: * platform/mac/svg/zoom/page/zoom-svg-as-background-with-relative-size-expected.png: * platform/mac/svg/zoom/page/zoom-svg-as-image-expected.png: * platform/mac/svg/zoom/page/zoom-svg-as-object-expected.png: * platform/mac/svg/zoom/page/zoom-svg-as-relative-image-expected.png: * platform/mac/svg/zoom/page/zoom-svg-through-object-with-auto-size-expected.txt: * platform/mac/svg/zoom/page/zoom-svg-through-object-with-override-size-expected.txt: * platform/mac/svg/zoom/text/absolute-sized-document-no-scrollbars-expected.png: * platform/mac/svg/zoom/text/absolute-sized-document-scrollbars-expected.png: * platform/mac/svg/zoom/text/relative-sized-document-scrollbars-expected.png: * platform/mac/svg/zoom/text/zoom-foreignObject-expected.png: * platform/mac/svg/zoom/text/zoom-hixie-mixed-008-expected.png: * platform/mac/svg/zoom/text/zoom-hixie-mixed-008-expected.txt: * platform/mac/svg/zoom/text/zoom-hixie-mixed-009-expected.png: * platform/mac/svg/zoom/text/zoom-hixie-rendering-model-004-expected.png: * platform/mac/svg/zoom/text/zoom-hixie-rendering-model-004-expected.txt: * svg/as-background-image/animated-svg-as-background.html: * svg/as-background-image/resources/animated-rect-relative-size.svg: * svg/as-background-image/svg-as-background-5.html: * svg/as-background-image/svg-background-partial-redraw.html: * svg/as-image/animated-svg-as-image-no-fixed-intrinsic-size.html: * svg/as-image/animated-svg-as-image-same-image.html: * svg/as-image/animated-svg-as-image.html: * svg/as-image/resources/animated-rect-fixed-size-2.svg: Copied from LayoutTests/svg/as-image/resources/animated-rect-same-image.svg. * svg/as-image/resources/animated-rect-fixed-size.svg: * svg/as-image/resources/animated-rect-relative-size.svg: * svg/as-image/resources/animated-rect-same-image.svg: * svg/as-image/svg-image-change-content-size.xhtml: * svg/as-object/embedded-svg-immediate-offsetWidth-query.html: * svg/as-object/embedded-svg-size-changes-no-layout-triggers.html: * svg/as-object/embedded-svg-size-changes.html: * svg/as-object/nested-embedded-svg-size-changes-no-layout-triggers-1.html: * svg/as-object/nested-embedded-svg-size-changes-no-layout-triggers-2.html: * svg/as-object/nested-embedded-svg-size-changes.html: * svg/as-object/resources/embedded-svg-size-changes-no-layout-triggers.svg: * svg/as-object/resources/nested-embedded-svg-size-changes-target-no-layout-triggers-1.html: * svg/carto.net/tabgroup.svg: * svg/carto.net/window.svg: * svg/css/shadow-changes.svg: * svg/dom/SVGPathSegList-segment-modification.svg: * svg/dom/SVGPathSegList-xml-dom-synchronization.xhtml: * svg/dom/SVGPathSegList-xml-dom-synchronization2.xhtml: * svg/dom/SVGRectElement/rect-modify-rx.svg: * svg/filters/animate-fill-expected.png: * svg/filters/animate-fill.svg: * svg/filters/feImage-reference-invalidation-expected.png: * svg/filters/feImage-reference-invalidation.svg: * svg/filters/feImage-target-add-to-document-expected.png: * svg/filters/feImage-target-add-to-document.svg: * svg/filters/feImage-target-changes-id-expected.png: * svg/filters/feImage-target-changes-id.svg: * svg/filters/feImage-target-id-change-expected.png: * svg/filters/feImage-target-id-change.svg: * svg/filters/feImage-target-reappend-to-document-expected.png: * svg/filters/feImage-target-reappend-to-document.svg: * svg/filters/feImage-target-remove-from-document-expected.png: * svg/filters/feImage-target-remove-from-document.svg: * svg/filters/filter-refresh.svg: * svg/filters/filter-width-update.svg: * svg/filters/invalidate-on-child-layout.svg: * svg/hixie/perf/001.xml: * svg/hixie/perf/002.xml: * svg/hixie/perf/003.xml: * svg/hixie/perf/004.xml: * svg/hixie/perf/005.xml: * svg/hixie/perf/006.xml: * svg/hixie/perf/007.xml: * svg/hixie/perf/resources/smallcats.gif: Added. * svg/repaint/container-repaint-expected.png: * svg/repaint/container-repaint.svg: * svg/repaint/filter-child-repaint.svg: * svg/repaint/image-href-change.svg: * svg/repaint/image-with-clip-path.svg: * svg/text/append-text-node-to-tspan.html: * svg/text/modify-text-node-in-tspan.html: * svg/text/remove-text-node-from-tspan.html: * svg/text/remove-tspan-from-text.html: * svg/text/text-text-05-t.svg: * svg/transforms/animated-path-inside-transformed-html.xhtml: * svg/zoom/page/absolute-sized-document-no-scrollbars.svg: * svg/zoom/page/absolute-sized-document-scrollbars.svg: * svg/zoom/page/relative-sized-document-scrollbars.svg: * svg/zoom/page/zoom-background-image-tiled.html: * svg/zoom/page/zoom-background-images.html: * svg/zoom/page/zoom-coords-viewattr-01-b.svg: * svg/zoom/page/zoom-foreignObject.svg: * svg/zoom/page/zoom-getBoundingClientRect.xhtml: * svg/zoom/page/zoom-hixie-mixed-008.xml: * svg/zoom/page/zoom-hixie-mixed-009.xml: * svg/zoom/page/zoom-hixie-rendering-model-004.xhtml: * svg/zoom/page/zoom-img-preserveAspectRatio-support-1.html: * svg/zoom/page/zoom-mask-with-percentages.svg: * svg/zoom/page/zoom-replaced-intrinsic-ratio-001.htm: * svg/zoom/page/zoom-svg-as-background-with-relative-size-and-viewBox.html: * svg/zoom/page/zoom-svg-as-background-with-relative-size.html: * svg/zoom/page/zoom-svg-as-image.html: * svg/zoom/page/zoom-svg-as-object.html: * svg/zoom/page/zoom-svg-as-relative-image.html: * svg/zoom/page/zoom-svg-float-border-padding.xml: * svg/zoom/page/zoom-svg-through-object-with-absolute-size-2.xhtml: * svg/zoom/page/zoom-svg-through-object-with-absolute-size.xhtml: * svg/zoom/page/zoom-svg-through-object-with-auto-size.html: * svg/zoom/page/zoom-svg-through-object-with-huge-size.xhtml: * svg/zoom/page/zoom-svg-through-object-with-override-size.html: * svg/zoom/page/zoom-svg-through-object-with-percentage-size.xhtml: * svg/zoom/page/zoom-svg-through-object-with-text.xhtml-disabled: * svg/zoom/page/zoom-zoom-coords.xhtml: * svg/zoom/resources/testPageZoom.js: (repaintTest): * svg/zoom/resources/testTextZoom.js: (repaintTest): * svg/zoom/text/absolute-sized-document-no-scrollbars.svg: * svg/zoom/text/absolute-sized-document-scrollbars.svg: * svg/zoom/text/relative-sized-document-scrollbars.svg: * svg/zoom/text/zoom-coords-viewattr-01-b.svg: * svg/zoom/text/zoom-foreignObject.svg: * svg/zoom/text/zoom-hixie-mixed-008.xml: * svg/zoom/text/zoom-hixie-mixed-009.xml: * svg/zoom/text/zoom-hixie-rendering-model-004.xhtml: * svg/zoom/text/zoom-svg-float-border-padding.xml: Canonical link: https://commits.webkit.org/94836@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@106918 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-02-07 11:19:19 +00:00
<body onload="runRepaintTest()">
<p>CSS Transformed HTML div with SVG inside it. Animated SVG should repaint correctly.</p>
<div class="box">
Adapt inline SVG sizing behavior to Firefox and Blink https://bugs.webkit.org/show_bug.cgi?id=132569 Reviewed by Dean Jackson. Source/WebCore: This patch is ported from Blink CR 308992. Thanks to David Vest for helping with back porting his Blink patch. From the commit message: "The basis of this change is to map explicit width and height attributes to CSS properties, essentially promoting them to presentation attributes. Note that implicit "100%" width and height are not mapped. This enables us to remove the concept of "percentage intrinsic size" and rely on normal CSS rules to resolve percentage values. The change has been approved by the SVG WG and the spec is being updated. Minutes here: http://www.w3.org/2014/04/07-svg-minutes.html#item03" The new model was indeed approved by the SVG WG and is basically following the CSS 2.1 model for replaced elements. With this patch WebKit, Firefox and Blink have the same behavior for inline SVG. This is the first successful approach to unify the sizing behavior of SVG across UAs. Tests: svg/as-object/sizing/svg-in-object-placeholder-height-auto.html svg/as-object/sizing/svg-in-object-placeholder-height-fixed.html svg/as-object/sizing/svg-in-object-placeholder-height-percentage.html svg/in-html/sizing/svg-inline.html * css/svg.css: Root SVG elements still need to be sized with height: 100% and width: 100%. This is necessary since width and height are presentation attributes now. (svg:root): * rendering/RenderBox.h: (WebCore::RenderBox::computeIntrinsicRatioInformation): Remove all special behavior for intrinsic and percentage based sizes in SVG. This simplifies and unifies the code a lot. Most of the logic that is used is in RenderBox and RenderReplaced now. RenderSVGRoot was cleaned up a lot and is much lighter. And so it SVGSVGElement. * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight): (WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions): * rendering/RenderImage.cpp: (WebCore::RenderImage::computeIntrinsicRatioInformation): * rendering/RenderImage.h: * rendering/RenderReplaced.cpp: (WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox): (WebCore::RenderReplaced::computeIntrinsicRatioInformation): (WebCore::RenderReplaced::computeReplacedLogicalWidth): (WebCore::RenderReplaced::computeReplacedLogicalHeight): (WebCore::RenderReplaced::computePreferredLogicalWidths): * rendering/RenderReplaced.h: * rendering/svg/RenderSVGRoot.cpp: (WebCore::RenderSVGRoot::computeIntrinsicRatioInformation): (WebCore::RenderSVGRoot::computeReplacedLogicalWidth): (WebCore::RenderSVGRoot::computeReplacedLogicalHeight): (WebCore::RenderSVGRoot::hasRelativeDimensions): (WebCore::RenderSVGRoot::hasRelativeIntrinsicLogicalWidth): Deleted. (WebCore::RenderSVGRoot::hasRelativeLogicalHeight): Deleted. * rendering/svg/RenderSVGRoot.h: * svg/SVGElement.h: (WebCore::SVGElement::invalidateSVGPresentationAttributeStyle): * svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::isPresentationAttribute): (WebCore::SVGSVGElement::collectStyleForPresentationAttribute): (WebCore::SVGSVGElement::svgAttributeChanged): (WebCore::SVGSVGElement::currentViewportSize): (WebCore::SVGSVGElement::hasIntrinsicWidth): (WebCore::SVGSVGElement::hasIntrinsicHeight): (WebCore::SVGSVGElement::intrinsicWidth): (WebCore::SVGSVGElement::intrinsicHeight): (WebCore::SVGSVGElement::widthAttributeEstablishesViewport): Deleted. (WebCore::SVGSVGElement::heightAttributeEstablishesViewport): Deleted. * svg/SVGSVGElement.h: * svg/graphics/SVGImage.cpp: (WebCore::SVGImage::containerSize): * xml/XMLErrors.cpp: If an error occurs in a stand alone SVG file, we create an XHTML document with the error message and append the SVG file. This SVG file now follows the CSS sizing behavior as inline SVG. Therefore, we need to set width and height to 100% explicitly. (WebCore::XMLErrors::insertErrorMessageBlock): LayoutTests: The new sizing behavior for inline SVG causes different DRT outputs for about 40 test cases. This is expected but for most tests an improvement since the SVGs fit into the documents and scrollbars disappear or the general size gets smaller. Some tests needed to be updated. The size was either not set at all or not properly. svg-in-object.js and svg-inline.js contain dozens of new tests to check the correct sizing behavior. The tests were written by David Vest from Opera as part of CR 308992. Many of the -expected updates are caused by SVG size changes in turn affecting where line breaks are inserted. * TestExpectations: * accessibility/svg-image-expected.txt: * css3/flexbox/flexitem.html: * fast/css/infinite-floating-value-expected.txt: * fast/css/remove-fixed-resizer-crash-expected.txt: * fast/css3-text/css3-word-spacing-percentage/word-spacing-crash-expected.txt: * fast/repaint/moving-shadow-on-container.html: * fast/repaint/moving-shadow-on-path.html: * fast/repaint/svg-layout-root-style-attr-update.html: * fast/shapes/shape-outside-floats/shape-outside-relative-size-svg-expected.html: * fast/shapes/shape-outside-floats/shape-outside-relative-size-svg.html: * http/tests/xmlviewer/dumpAsText/svg-expected.txt: * platform/mac/svg/batik/filters/feTile-expected.txt: * platform/mac/svg/batik/masking/maskRegions-expected.txt: * platform/mac/svg/batik/paints/patternRegions-positioned-objects-expected.txt: * platform/mac/svg/batik/text/longTextOnPath-expected.txt: * platform/mac/svg/batik/text/textDecoration-expected.txt: * platform/mac/svg/batik/text/textEffect-expected.txt: * platform/mac/svg/batik/text/textLength-expected.txt: * platform/mac/svg/batik/text/textOnPath-expected.txt: * platform/mac/svg/batik/text/textPosition-expected.txt: * platform/mac/svg/batik/text/verticalText-expected.txt: * platform/mac/svg/batik/text/verticalTextOnPath-expected.txt: * platform/mac/svg/custom/bug45331-expected.txt: * platform/mac/svg/custom/junk-data-expected.txt: * platform/mac/svg/custom/missing-xlink-expected.txt: * platform/mac/svg/custom/object-sizing-height-50p-on-target-svg-absolute-expected.png: Removed. * platform/mac/svg/custom/object-sizing-height-50p-on-target-svg-expected.png: Removed. * platform/mac/svg/custom/object-sizing-width-50p-height-50p-on-target-svg-absolute-expected.png: Removed. * platform/mac/svg/custom/object-sizing-width-50p-height-50p-on-target-svg-expected.png: Removed. * platform/mac/svg/custom/object-sizing-width-50p-height-75p-on-target-svg-absolute-expected.png: Removed. * platform/mac/svg/custom/object-sizing-width-50p-height-75p-on-target-svg-absolute-expected.txt: Removed. * platform/mac/svg/custom/object-sizing-width-50p-height-75p-on-target-svg-expected.png: Removed. * platform/mac/svg/custom/object-sizing-width-50p-height-75p-on-target-svg-expected.txt: Removed. * platform/mac/svg/custom/object-sizing-width-50p-on-target-svg-absolute-expected.png: Removed. * platform/mac/svg/custom/object-sizing-width-50p-on-target-svg-expected.png: Removed. * platform/mac/svg/custom/object-sizing-width-75p-height-50p-on-target-svg-absolute-expected.png: Removed. * platform/mac/svg/custom/object-sizing-width-75p-height-50p-on-target-svg-expected.png: Removed. * platform/mac/svg/custom/object-sizing-width-75p-height-50p-on-target-svg-expected.txt: Removed. * platform/mac/svg/custom/path-bad-data-expected.txt: * platform/mac/svg/custom/svg-fonts-in-html-expected.txt: * platform/mac/svg/custom/use-font-face-crash-expected.txt: * platform/mac/svg/foreignObject/svg-document-in-html-document-expected.txt: * platform/mac/svg/hixie/error/012-expected.txt: * platform/mac/svg/hixie/intrinsic/001-expected.png: Removed. * platform/mac/svg/hixie/intrinsic/001-expected.txt: Removed. * platform/mac/svg/hixie/intrinsic/002-expected.png: Removed. * platform/mac/svg/hixie/intrinsic/002-expected.txt: Removed. * platform/mac/svg/in-html/circle-expected.txt: * platform/mac/svg/text/non-bmp-positioning-lists-expected.txt: * platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.txt: * platform/mac/svg/transforms/text-with-pattern-inside-transformed-html-expected.txt: * platform/mac/svg/wicd/rightsizing-grid-expected.txt: * platform/mac/svg/wicd/test-rightsizing-b-expected.txt: * platform/mac/svg/zoom/page/zoom-background-image-tiled-expected.txt: * platform/mac/svg/zoom/page/zoom-background-images-expected.txt: * platform/mac/svg/zoom/page/zoom-foreignObject-expected.txt: * platform/mac/svg/zoom/page/zoom-img-preserveAspectRatio-support-1-expected.txt: * platform/mac/svg/zoom/page/zoom-svg-as-relative-image-expected.txt: * platform/mac/svg/zoom/page/zoom-svg-float-border-padding-expected.txt: * platform/mac/svg/zoom/page/zoom-svg-through-object-with-absolute-size-2-expected.txt: * platform/mac/svg/zoom/page/zoom-svg-through-object-with-absolute-size-expected.txt: * platform/mac/svg/zoom/page/zoom-svg-through-object-with-auto-size-expected.txt: * platform/mac/svg/zoom/page/zoom-svg-through-object-with-override-size-expected.txt: * platform/mac/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.txt: * platform/mac/svg/zoom/page/zoom-zoom-coords-expected.txt: * platform/mac/svg/zoom/text/zoom-foreignObject-expected.txt: * svg/animations/animate-css-xml-attributeType-expected.txt: * svg/as-image/image-respects-deviceScaleFactor.html: * svg/as-image/image-respects-pageScaleFactor.html: * svg/as-image/svg-as-image-with-relative-size-expected.html: * svg/as-image/svg-as-relative-image.html: * svg/as-object/sizing/svg-in-object-placeholder-height-auto-expected.txt: Added. * svg/as-object/sizing/svg-in-object-placeholder-height-auto.html: Added. * svg/as-object/sizing/svg-in-object-placeholder-height-fixed-expected.txt: Added. * svg/as-object/sizing/svg-in-object-placeholder-height-fixed.html: Added. * svg/as-object/sizing/svg-in-object-placeholder-height-percentage-expected.txt: Added. * svg/as-object/sizing/svg-in-object-placeholder-height-percentage.html: Added. * svg/as-object/sizing/svg-in-object.js: Added. (.): (.addAttr): (.generateSVGURI): (buildDemo): (.doCombinationTestRecursive): (doCombinationTest): (debugHint): (.debugHint): (testSVGInObjectWithPlaceholderHeightAttr.): (testSVGInObjectWithPlaceholderHeightAttr): * svg/css/composite-shadow-example.html: * svg/css/composite-shadow-with-opacity.html: * svg/css/max-width-2.html: * svg/css/stars-with-shadow.html: * svg/custom/absolute-sized-content-with-resources.xhtml: * svg/custom/altglyph.svg: * svg/custom/document-all-includes-svg-expected.txt: * svg/custom/external-paintserver-reference-expected.txt: * svg/custom/external-paintserver-reference.svg: * svg/custom/get-text-element-transform-crash-expected.txt: * svg/custom/linking-base-external-reference-expected.txt: * svg/custom/linking-base-external-reference.xhtml: * svg/custom/object-sizing-height-50p-on-target-svg-absolute-expected.txt: Removed. * svg/custom/object-sizing-height-50p-on-target-svg-absolute.xhtml: Removed. * svg/custom/object-sizing-height-50p-on-target-svg-expected.txt: Removed. * svg/custom/object-sizing-height-50p-on-target-svg.xhtml: Removed. * svg/custom/object-sizing-width-50p-height-50p-on-target-svg-absolute-expected.txt: Removed. * svg/custom/object-sizing-width-50p-height-50p-on-target-svg-absolute.xhtml: Removed. * svg/custom/object-sizing-width-50p-height-50p-on-target-svg-expected.txt: Removed. * svg/custom/object-sizing-width-50p-height-50p-on-target-svg.xhtml: Removed. * svg/custom/object-sizing-width-50p-height-75p-on-target-svg-absolute-expected.txt: Removed. * svg/custom/object-sizing-width-50p-height-75p-on-target-svg-absolute.xhtml: Removed. * svg/custom/object-sizing-width-50p-height-75p-on-target-svg-expected.txt: Removed. * svg/custom/object-sizing-width-50p-height-75p-on-target-svg.xhtml: Removed. * svg/custom/object-sizing-width-50p-on-target-svg-absolute-expected.txt: Removed. * svg/custom/object-sizing-width-50p-on-target-svg-absolute.xhtml: Removed. * svg/custom/object-sizing-width-50p-on-target-svg-expected.txt: Removed. * svg/custom/object-sizing-width-50p-on-target-svg.xhtml: Removed. * svg/custom/object-sizing-width-75p-height-50p-on-target-svg-absolute-expected.txt: Removed. * svg/custom/object-sizing-width-75p-height-50p-on-target-svg-absolute.xhtml: Removed. * svg/custom/object-sizing-width-75p-height-50p-on-target-svg-expected.txt: Removed. * svg/custom/object-sizing-width-75p-height-50p-on-target-svg.xhtml: Removed. * svg/custom/pending-resource-after-removal.xhtml: * svg/custom/percentage-of-html-parent.xhtml: * 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/tref-with-progress-tag-setpseudo-assert-expected.txt: * svg/custom/unicode-in-tspan-multi-svg-crash-expected.txt: * svg/custom/use-invalid-html-expected.txt: * svg/custom/window-named-item-lookup-expected.txt: * svg/dom/SVGViewSpec-invalid-ref-crash-expected.txt: * svg/dom/parent-view-layout-crash-expected.txt: * svg/dom/stylesheet-candidate-node-crash-main-expected.txt: * svg/dom/svg-root-lengths.html: * svg/foreignObject/absolute-position-foreign-object-child-crash-expected.txt: * svg/hixie/intrinsic/001-expected.png: Removed. * svg/hixie/intrinsic/001-expected.txt: Removed. * svg/hixie/intrinsic/001.html: Removed. * svg/hixie/intrinsic/002-expected.png: Removed. * svg/hixie/intrinsic/002-expected.txt: Removed. * svg/hixie/intrinsic/002.html: Removed. * svg/hixie/intrinsic/resources/001.svg: Removed. * svg/hixie/intrinsic/resources/002.svg: Removed. * svg/in-html/sizing/svg-inline-expected.txt: Added. * svg/in-html/sizing/svg-inline.html: Added. * svg/in-html/sizing/svg-inline.js: Added. (.): (setupSVGElement): (buildDemo): (.doCombinationTestRecursive): (doCombinationTest): (debugHint): (.debugHint): * svg/path-arc-invalid-expected.txt: * svg/repaint/repaint-webkit-svg-shadow-container-expected.txt: * svg/text/append-text-node-to-tspan.html: * svg/text/kerning.svg: * svg/text/modify-text-node-in-tspan.html: * svg/text/multichar-glyph.svg: * svg/text/remove-text-node-from-tspan.html: * svg/text/remove-tspan-from-text.html: * svg/text/svg-rtl-text-crash-expected.txt: * svg/text/text-block-child-crash-expected.txt: * svg/transforms/animated-path-inside-transformed-html.xhtml: * svg/transforms/svg-css-transforms-clip-path.xhtml: * svg/transforms/transform-origin-css-property.xhtml: * svg/zoom/page/zoom-foreignObject.svg: * svg/zoom/page/zoom-svg-as-relative-image.html: * svg/zoom/text/zoom-foreignObject.svg: Canonical link: https://commits.webkit.org/150625@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@168350 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2014-05-06 06:06:28 +00:00
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 480 420">
<rect id="rect" stroke-width="5" fill="blue" stroke="pink" width="100" height="100" />
<text id="text" x="150" stroke-width="2px" stroke="green" font-size="20px">This is some text</text>
2011-02-10 Nikolas Zimmermann <nzimmermann@rim.com> Reviewed by Maciej Stachowiak. LayoutTests/svg cleanup https://bugs.webkit.org/show_bug.cgi?id=54184 Fix wrong xlink:hrefs in dozens of SVG testcases. SVGFreeSans.svg is now used in more places. Remove unnecessary xml-stylesheet declarations, and unneeded text css attributes in some places. Updated pixel test results for the affected testcases. * platform/mac-snowleopard/svg/W3C-SVG-1.1-SE/types-dom-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-01-f-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-01-f-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-01-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-02-f-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-02-f-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-02-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-03-f-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-03-f-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-03-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-04-f-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-04-f-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/coords-dom-04-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/paths-dom-02-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/pservers-pattern-04-f-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/pservers-pattern-04-f-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/pservers-pattern-04-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-01-b-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-01-b-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-03-b-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-03-b-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-03-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-05-b-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-05-b-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-05-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-06-f-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-06-f-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-06-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-07-f-expected.checksum: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-07-f-expected.png: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-07-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1/filters-light-04-f-expected.checksum: * platform/mac/svg/W3C-SVG-1.1/filters-light-04-f-expected.png: * platform/mac/svg/W3C-SVG-1.1/filters-light-04-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1/filters-turb-02-f-expected.checksum: * platform/mac/svg/W3C-SVG-1.1/filters-turb-02-f-expected.png: * platform/mac/svg/W3C-SVG-1.1/filters-turb-02-f-expected.txt: * platform/mac/svg/batik/filters/feTile-expected.checksum: * platform/mac/svg/batik/filters/feTile-expected.png: * platform/mac/svg/batik/filters/feTile-expected.txt: * platform/mac/svg/css/circle-in-mask-with-shadow-expected.checksum: * platform/mac/svg/css/circle-in-mask-with-shadow-expected.png: * platform/mac/svg/css/mask-with-shadow-expected.checksum: * platform/mac/svg/css/mask-with-shadow-expected.png: * platform/mac/svg/foreignObject/text-tref-02-b-expected.checksum: * platform/mac/svg/foreignObject/text-tref-02-b-expected.png: * platform/mac/svg/foreignObject/text-tref-02-b-expected.txt: * platform/mac/svg/text/text-tref-01-b-expected.checksum: * platform/mac/svg/text/text-tref-01-b-expected.png: * platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.checksum: * platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.png: * platform/mac/svg/zoom/page/zoom-mask-with-percentages-expected.checksum: * platform/mac/svg/zoom/page/zoom-mask-with-percentages-expected.png: * platform/mac/svg/zoom/page/zoom-mask-with-percentages-expected.txt: * svg/W3C-SVG-1.1-SE/coords-dom-01-f.svg: * svg/W3C-SVG-1.1-SE/coords-dom-02-f.svg: * svg/W3C-SVG-1.1-SE/coords-dom-03-f.svg: * svg/W3C-SVG-1.1-SE/coords-dom-04-f.svg: * svg/W3C-SVG-1.1-SE/paths-dom-02-f.svg: * svg/W3C-SVG-1.1-SE/pservers-pattern-04-f.svg: * svg/W3C-SVG-1.1-SE/types-dom-01-b.svg: * svg/W3C-SVG-1.1-SE/types-dom-02-f.svg: * svg/W3C-SVG-1.1-SE/types-dom-03-b.svg: * svg/W3C-SVG-1.1-SE/types-dom-04-b.svg: * svg/W3C-SVG-1.1-SE/types-dom-05-b.svg: * svg/W3C-SVG-1.1-SE/types-dom-06-f.svg: * svg/W3C-SVG-1.1-SE/types-dom-07-f.svg: * svg/W3C-SVG-1.1/filters-light-04-f.svg: * svg/W3C-SVG-1.1/filters-turb-02-f.svg: * svg/W3C-SVG-1.1/resources/interact-order-02-b-targ.svg: * svg/W3C-SVG-1.1/resources/interact-order-03-b-targ.svg: * svg/W3C-SVG-1.1/resources/linkingToc-t.svg: * svg/batik/filters/feTile.svg: * svg/css/circle-in-mask-with-shadow.svg: * svg/css/mask-with-shadow.svg: * svg/custom/image-clipped-hit.svg: * svg/foreignObject/text-tref-02-b.svg: * svg/hixie/cascade/002.css: Removed. * svg/text/text-tref-01-b.svg: * svg/transforms/animated-path-inside-transformed-html.xhtml: * svg/zoom/page/zoom-mask-with-percentages.svg: * svg/zoom/page/zoom-zoom-coords.xhtml: Canonical link: https://commits.webkit.org/68200@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@78182 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2011-02-10 10:25:55 +00:00
<image id="image" y="150" width="100" height="100" xlink:href="../custom/resources/green-checker.png"/>
</svg>
</div>
</body>
<script>
Rewrite SVG tests to make extensive use of display() in repaint tests https://bugs.webkit.org/show_bug.cgi?id=77736 Reviewed by Andreas Kling. Convert all tests in svg/ (except svg/custom & svg/dynamic-updates) that exercise repainting to use the fast/repaint/resources/repaint.js harness, which forces a layout, and calls layoutTestController.display() before executing the actual repaint test, so that repaint rectangles are properly tracked and shown (white areas that are redrawn, on top of the gray background, painted over the web view after the initial painting). Previously SVG tests used to work like this: (using an HTML example, but it doesn't matter) <html><body><svg><rect/><script>function change() { rect.setAttribute(...); layoutTestController.notifyDone(); } setTimeout(change, 0); </script></svg></body></html> We expected that the initial painting was done, before change() as called. This is unreliable for various reasons: - the timeout is not guaranteed to fire after the document loaded, it may happen inbetween on eg. a slow connection. - nor is it guaranteed that the document has painted initially before we enter change(). This leads to the current regressions -- if we break repainting, we can't see it in the current layout tests, as the initial painting always happens after change() executed in trunk, at least on a fast machine. In order to make repaint testing reliable we have to use following scheme: <html><body onload="runRepaintTest()"><svg><rect/><script>function repaintTest() { rect.setAttribute(...); }</script></svg></body></html> runRepaintTest() is provided by the repaint.js harness and does: if (window.layoutTestController) { document.body.offsetTop; layoutTestController.display(); repaintTest(); } else { setTimeout(repaintTest, 100); } Using this harness outside of DRT allows to test SVG repainting tests in the browser as well, as the repainting changes aren't immediately fired (0ms timer) but instead delayed by 100ms, so a visual "flash" is visible, if something changes. For DRT it does two things. First it forces Document::updateLayout() to be called, and then forces the web view to paint immediately, and then it starts tracking any repaint rects, that are fired _after_ the initial painting, which are then highlighted in the pixel test dump later on. Using display() is the only way to get reliable painting results across DRT/WebKitTestRunner, and to get rid of the flakiness. All *.xml/*.html/*.htm/*.xhtml tests which excersise repainting can be moved to use runRepaintTest() from repaint.js. <body> needs to be changed to <body onload="runRepaintTest()">, and the timeouts & waitUntilDone/notifyDone calls can be removed from the tests, leading to much nicer testcases, removing lots of boilerplate. Pure *.svg tests unfortunately can't use <svg onload="runRepaintTest()"> at the moment, due timing differences between the HTML load and the SVGLoad event, that's out of scope for this bug report. To remove any hacks from the testcases themselves, I centralized following work-around in a new function in repaint.js, and let all *.svg tests use it. function runSVGRepaintTest() { if (window.layoutTestController) { layoutTestController.waitUntilDone(); setTimeout(runRepaintTest, 0); } else runRepaintTest(); } runRepaintTest() has to be called from a timer at the moment, as the SVGLoad event fires earlier as HTML load event. Before that is fixed, we have to use <svg onload="runSVGRepaintTest()"> instead of <svg onload="runRepaintTest()"> and append: layoutTestController.notifyDone() to the repaintTest() functions in the testcases. That should explain the testcase differences between pure-SVG and non-pure-SVG tests, and why I treated them differently. This approach is unfortunately as flakey as the old, so to make pure *.svg tests test repainting reliable, the bug needs to be fixed. Note that svg/custom, and svg/dynamic-updates will be fixed in another chunk, as they also require large amounts of rebaselines. * fast/repaint/resources/repaint.js: (runRepaintTest): (runSVGRepaintTest): * platform/chromium/test_expectations.txt: * platform/mac/svg/as-background-image/animated-svg-as-background-expected.png: * platform/mac/svg/as-image/animated-svg-as-image-expected.png: * platform/mac/svg/as-image/animated-svg-as-image-no-fixed-intrinsic-size-expected.png: * platform/mac/svg/as-image/animated-svg-as-image-same-image-expected.png: * platform/mac/svg/as-image/svg-image-change-content-size-expected.png: * platform/mac/svg/as-object/deep-nested-embedded-svg-size-changes-no-layout-triggers-1-expected.png: * platform/mac/svg/as-object/deep-nested-embedded-svg-size-changes-no-layout-triggers-1-expected.txt: * platform/mac/svg/as-object/deep-nested-embedded-svg-size-changes-no-layout-triggers-2-expected.png: * platform/mac/svg/as-object/deep-nested-embedded-svg-size-changes-no-layout-triggers-2-expected.txt: * platform/mac/svg/as-object/embedded-svg-immediate-offsetWidth-query-expected.png: * platform/mac/svg/as-object/embedded-svg-size-changes-expected.png: * platform/mac/svg/as-object/embedded-svg-size-changes-no-layout-triggers-expected.png: * platform/mac/svg/as-object/embedded-svg-size-changes-no-layout-triggers-expected.txt: * platform/mac/svg/as-object/nested-embedded-svg-size-changes-expected.png: * platform/mac/svg/as-object/nested-embedded-svg-size-changes-no-layout-triggers-1-expected.png: * platform/mac/svg/as-object/nested-embedded-svg-size-changes-no-layout-triggers-1-expected.txt: * platform/mac/svg/as-object/nested-embedded-svg-size-changes-no-layout-triggers-2-expected.png: * platform/mac/svg/as-object/nested-embedded-svg-size-changes-no-layout-triggers-2-expected.txt: * platform/mac/svg/carto.net/tabgroup-expected.png: * platform/mac/svg/carto.net/tabgroup-expected.txt: * platform/mac/svg/carto.net/window-expected.png: * platform/mac/svg/carto.net/window-expected.txt: * platform/mac/svg/css/shadow-changes-expected.png: * platform/mac/svg/dom/SVGPathSegList-segment-modification-expected.png: * platform/mac/svg/dom/SVGPathSegList-segment-modification-expected.txt: * platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization-expected.png: * platform/mac/svg/dom/SVGPathSegList-xml-dom-synchronization2-expected.png: * platform/mac/svg/dom/SVGRectElement/rect-modify-rx-expected.png: * platform/mac/svg/filters/filter-refresh-expected.png: * platform/mac/svg/filters/filter-width-update-expected.png: * platform/mac/svg/filters/filter-width-update-expected.txt: * platform/mac/svg/filters/invalidate-on-child-layout-expected.png: * platform/mac/svg/hixie/perf/001-expected.png: * platform/mac/svg/hixie/perf/002-expected.png: * platform/mac/svg/hixie/perf/003-expected.png: * platform/mac/svg/hixie/perf/003-expected.txt: * platform/mac/svg/hixie/perf/004-expected.png: * platform/mac/svg/hixie/perf/004-expected.txt: * platform/mac/svg/hixie/perf/005-expected.png: * platform/mac/svg/hixie/perf/005-expected.txt: * platform/mac/svg/hixie/perf/006-expected.png: * platform/mac/svg/hixie/perf/006-expected.txt: * platform/mac/svg/hixie/perf/007-expected.png: * platform/mac/svg/hixie/perf/007-expected.txt: * platform/mac/svg/repaint/filter-child-repaint-expected.png: * platform/mac/svg/repaint/image-href-change-expected.png: * platform/mac/svg/repaint/image-with-clip-path-expected.png: * platform/mac/svg/text/append-text-node-to-tspan-expected.png: * platform/mac/svg/text/modify-text-node-in-tspan-expected.png: * platform/mac/svg/text/remove-text-node-from-tspan-expected.png: * platform/mac/svg/text/remove-tspan-from-text-expected.png: * platform/mac/svg/text/text-text-05-t-expected.png: * platform/mac/svg/text/text-text-05-t-expected.txt: * platform/mac/svg/transforms/animated-path-inside-transformed-html-expected.png: * platform/mac/svg/zoom/page/absolute-sized-document-no-scrollbars-expected.png: * platform/mac/svg/zoom/page/relative-sized-document-scrollbars-expected.png: * platform/mac/svg/zoom/page/zoom-background-images-expected.txt: * platform/mac/svg/zoom/page/zoom-foreignObject-expected.png: * platform/mac/svg/zoom/page/zoom-hixie-mixed-008-expected.txt: * platform/mac/svg/zoom/page/zoom-hixie-rendering-model-004-expected.png: * platform/mac/svg/zoom/page/zoom-hixie-rendering-model-004-expected.txt: * platform/mac/svg/zoom/page/zoom-mask-with-percentages-expected.png: * platform/mac/svg/zoom/page/zoom-svg-as-background-with-relative-size-and-viewBox-expected.png: * platform/mac/svg/zoom/page/zoom-svg-as-background-with-relative-size-expected.png: * platform/mac/svg/zoom/page/zoom-svg-as-image-expected.png: * platform/mac/svg/zoom/page/zoom-svg-as-object-expected.png: * platform/mac/svg/zoom/page/zoom-svg-as-relative-image-expected.png: * platform/mac/svg/zoom/page/zoom-svg-through-object-with-auto-size-expected.txt: * platform/mac/svg/zoom/page/zoom-svg-through-object-with-override-size-expected.txt: * platform/mac/svg/zoom/text/absolute-sized-document-no-scrollbars-expected.png: * platform/mac/svg/zoom/text/absolute-sized-document-scrollbars-expected.png: * platform/mac/svg/zoom/text/relative-sized-document-scrollbars-expected.png: * platform/mac/svg/zoom/text/zoom-foreignObject-expected.png: * platform/mac/svg/zoom/text/zoom-hixie-mixed-008-expected.png: * platform/mac/svg/zoom/text/zoom-hixie-mixed-008-expected.txt: * platform/mac/svg/zoom/text/zoom-hixie-mixed-009-expected.png: * platform/mac/svg/zoom/text/zoom-hixie-rendering-model-004-expected.png: * platform/mac/svg/zoom/text/zoom-hixie-rendering-model-004-expected.txt: * svg/as-background-image/animated-svg-as-background.html: * svg/as-background-image/resources/animated-rect-relative-size.svg: * svg/as-background-image/svg-as-background-5.html: * svg/as-background-image/svg-background-partial-redraw.html: * svg/as-image/animated-svg-as-image-no-fixed-intrinsic-size.html: * svg/as-image/animated-svg-as-image-same-image.html: * svg/as-image/animated-svg-as-image.html: * svg/as-image/resources/animated-rect-fixed-size-2.svg: Copied from LayoutTests/svg/as-image/resources/animated-rect-same-image.svg. * svg/as-image/resources/animated-rect-fixed-size.svg: * svg/as-image/resources/animated-rect-relative-size.svg: * svg/as-image/resources/animated-rect-same-image.svg: * svg/as-image/svg-image-change-content-size.xhtml: * svg/as-object/embedded-svg-immediate-offsetWidth-query.html: * svg/as-object/embedded-svg-size-changes-no-layout-triggers.html: * svg/as-object/embedded-svg-size-changes.html: * svg/as-object/nested-embedded-svg-size-changes-no-layout-triggers-1.html: * svg/as-object/nested-embedded-svg-size-changes-no-layout-triggers-2.html: * svg/as-object/nested-embedded-svg-size-changes.html: * svg/as-object/resources/embedded-svg-size-changes-no-layout-triggers.svg: * svg/as-object/resources/nested-embedded-svg-size-changes-target-no-layout-triggers-1.html: * svg/carto.net/tabgroup.svg: * svg/carto.net/window.svg: * svg/css/shadow-changes.svg: * svg/dom/SVGPathSegList-segment-modification.svg: * svg/dom/SVGPathSegList-xml-dom-synchronization.xhtml: * svg/dom/SVGPathSegList-xml-dom-synchronization2.xhtml: * svg/dom/SVGRectElement/rect-modify-rx.svg: * svg/filters/animate-fill-expected.png: * svg/filters/animate-fill.svg: * svg/filters/feImage-reference-invalidation-expected.png: * svg/filters/feImage-reference-invalidation.svg: * svg/filters/feImage-target-add-to-document-expected.png: * svg/filters/feImage-target-add-to-document.svg: * svg/filters/feImage-target-changes-id-expected.png: * svg/filters/feImage-target-changes-id.svg: * svg/filters/feImage-target-id-change-expected.png: * svg/filters/feImage-target-id-change.svg: * svg/filters/feImage-target-reappend-to-document-expected.png: * svg/filters/feImage-target-reappend-to-document.svg: * svg/filters/feImage-target-remove-from-document-expected.png: * svg/filters/feImage-target-remove-from-document.svg: * svg/filters/filter-refresh.svg: * svg/filters/filter-width-update.svg: * svg/filters/invalidate-on-child-layout.svg: * svg/hixie/perf/001.xml: * svg/hixie/perf/002.xml: * svg/hixie/perf/003.xml: * svg/hixie/perf/004.xml: * svg/hixie/perf/005.xml: * svg/hixie/perf/006.xml: * svg/hixie/perf/007.xml: * svg/hixie/perf/resources/smallcats.gif: Added. * svg/repaint/container-repaint-expected.png: * svg/repaint/container-repaint.svg: * svg/repaint/filter-child-repaint.svg: * svg/repaint/image-href-change.svg: * svg/repaint/image-with-clip-path.svg: * svg/text/append-text-node-to-tspan.html: * svg/text/modify-text-node-in-tspan.html: * svg/text/remove-text-node-from-tspan.html: * svg/text/remove-tspan-from-text.html: * svg/text/text-text-05-t.svg: * svg/transforms/animated-path-inside-transformed-html.xhtml: * svg/zoom/page/absolute-sized-document-no-scrollbars.svg: * svg/zoom/page/absolute-sized-document-scrollbars.svg: * svg/zoom/page/relative-sized-document-scrollbars.svg: * svg/zoom/page/zoom-background-image-tiled.html: * svg/zoom/page/zoom-background-images.html: * svg/zoom/page/zoom-coords-viewattr-01-b.svg: * svg/zoom/page/zoom-foreignObject.svg: * svg/zoom/page/zoom-getBoundingClientRect.xhtml: * svg/zoom/page/zoom-hixie-mixed-008.xml: * svg/zoom/page/zoom-hixie-mixed-009.xml: * svg/zoom/page/zoom-hixie-rendering-model-004.xhtml: * svg/zoom/page/zoom-img-preserveAspectRatio-support-1.html: * svg/zoom/page/zoom-mask-with-percentages.svg: * svg/zoom/page/zoom-replaced-intrinsic-ratio-001.htm: * svg/zoom/page/zoom-svg-as-background-with-relative-size-and-viewBox.html: * svg/zoom/page/zoom-svg-as-background-with-relative-size.html: * svg/zoom/page/zoom-svg-as-image.html: * svg/zoom/page/zoom-svg-as-object.html: * svg/zoom/page/zoom-svg-as-relative-image.html: * svg/zoom/page/zoom-svg-float-border-padding.xml: * svg/zoom/page/zoom-svg-through-object-with-absolute-size-2.xhtml: * svg/zoom/page/zoom-svg-through-object-with-absolute-size.xhtml: * svg/zoom/page/zoom-svg-through-object-with-auto-size.html: * svg/zoom/page/zoom-svg-through-object-with-huge-size.xhtml: * svg/zoom/page/zoom-svg-through-object-with-override-size.html: * svg/zoom/page/zoom-svg-through-object-with-percentage-size.xhtml: * svg/zoom/page/zoom-svg-through-object-with-text.xhtml-disabled: * svg/zoom/page/zoom-zoom-coords.xhtml: * svg/zoom/resources/testPageZoom.js: (repaintTest): * svg/zoom/resources/testTextZoom.js: (repaintTest): * svg/zoom/text/absolute-sized-document-no-scrollbars.svg: * svg/zoom/text/absolute-sized-document-scrollbars.svg: * svg/zoom/text/relative-sized-document-scrollbars.svg: * svg/zoom/text/zoom-coords-viewattr-01-b.svg: * svg/zoom/text/zoom-foreignObject.svg: * svg/zoom/text/zoom-hixie-mixed-008.xml: * svg/zoom/text/zoom-hixie-mixed-009.xml: * svg/zoom/text/zoom-hixie-rendering-model-004.xhtml: * svg/zoom/text/zoom-svg-float-border-padding.xml: Canonical link: https://commits.webkit.org/94836@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@106918 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-02-07 11:19:19 +00:00
function repaintTest() {
document.getElementById("rect").setAttribute("x", "300");
document.getElementById("text").setAttribute("y", "300");
document.getElementById("image").setAttribute("x", "350");
document.getElementById("image").setAttribute("y", "320");
}
</script>
</html>