haikuwebkit/ManualTests/svg-css-transition-compound...

93 lines
2.3 KiB
HTML
Raw Permalink Normal View History

First step towards http://webkit.org/b/70025 Allow -webkit-transform to be have effect to SVG elements. Currently, the CSS transform takes precedence over the SVG transform attribute Allow SVG elements to be transformed using webkit-transform https://bugs.webkit.org/show_bug.cgi?id=71309 Patch by Raul Hudea <rhudea@adobe.com> on 2011-11-23 Reviewed by Nikolas Zimmermann. Source/WebCore: Tests: svg/clip-path/clip-path-css-transform-1.svg svg/clip-path/clip-path-css-transform-2.svg svg/custom/clip-path-with-css-transform-1.svg svg/custom/clip-path-with-css-transform-2.svg svg/custom/pointer-events-image-css-transform.svg svg/custom/pointer-events-text-css-transform.svg svg/dom/css-transforms.xhtml svg/dynamic-updates/SVG-dynamic-css-transform.html svg/dynamic-updates/SVGClipPathElement-css-transform-influences-hitTesting.html svg/transforms/svg-css-transforms-clip-path.xhtml svg/transforms/svg-css-transforms.xhtml * manual-tests/svg-animation-css-transform.html: Added. * manual-tests/svg-css-animate-compound.html: Added. * manual-tests/svg-css-transition-compound.html: Added. * rendering/svg/RenderSVGModelObject.cpp: (WebCore::RenderSVGModelObject::styleWillChange): Set the updateTransform flag on SVG elements whenever a CSS transform is present on the style * svg/SVGStyledTransformableElement.cpp: (WebCore::SVGStyledTransformableElement::animatedLocalTransform): Use the RenderStyle's transform (if it exists) over the SVG's transform * svg/SVGTextElement.cpp: (WebCore::SVGTextElement::animatedLocalTransform): Use the RenderStyle's transform (if it exists) over the SVG's transform LayoutTests: * platform/chromium/test_expectations.txt: * platform/mac/svg/clip-path/clip-path-css-transform-1-expected.png: Added. * platform/mac/svg/clip-path/clip-path-css-transform-1-expected.txt: Added. * platform/mac/svg/clip-path/clip-path-css-transform-2-expected.png: Added. * platform/mac/svg/clip-path/clip-path-css-transform-2-expected.txt: Added. * platform/mac/svg/custom/clip-path-with-css-transform-1-expected.png: Added. * platform/mac/svg/custom/clip-path-with-css-transform-1-expected.txt: Added. * platform/mac/svg/custom/clip-path-with-css-transform-2-expected.png: Added. * platform/mac/svg/custom/clip-path-with-css-transform-2-expected.txt: Added. * platform/mac/svg/custom/pointer-events-image-css-transform-expected.png: Added. * platform/mac/svg/custom/pointer-events-image-css-transform-expected.txt: Added. * platform/mac/svg/custom/pointer-events-text-css-transform-expected.png: Added. * platform/mac/svg/custom/pointer-events-text-css-transform-expected.txt: Added. * platform/mac/svg/dom/css-transforms-expected.png: Added. * platform/mac/svg/dynamic-updates/SVG-dynamic-css-transform-expected.png: Added. * platform/mac/svg/dynamic-updates/SVGClipPathElement-css-transform-influences-hitTesting-expected.png: Added. * platform/mac/svg/transforms/svg-css-transforms-clip-path-expected.png: Added. * platform/mac/svg/transforms/svg-css-transforms-clip-path-expected.txt: Added. * platform/mac/svg/transforms/svg-css-transforms-expected.png: Added. * platform/mac/svg/transforms/svg-css-transforms-expected.txt: Added. * svg/clip-path/clip-path-css-transform-1.svg: Added. * svg/clip-path/clip-path-css-transform-2.svg: Added. * svg/custom/clip-path-with-css-transform-1.svg: Added. * svg/custom/clip-path-with-css-transform-2.svg: Added. * svg/custom/pointer-events-image-css-transform.svg: Added. * svg/custom/pointer-events-text-css-transform.svg: Added. * svg/dom/css-transforms-expected.txt: Added. * svg/dom/css-transforms.xhtml: Added. * svg/dynamic-updates/SVG-dynamic-css-transform-expected.txt: Added. * svg/dynamic-updates/SVG-dynamic-css-transform.html: Added. * svg/dynamic-updates/SVGClipPathElement-css-transform-influences-hitTesting-expected.txt: Added. * svg/dynamic-updates/SVGClipPathElement-css-transform-influences-hitTesting.html: Added. * svg/dynamic-updates/script-tests/SVGClipPathElement-css-transform-influences-hitTesting.js: Added. (executeBackgroundTest): (executeTest): * svg/transforms/svg-css-transforms-clip-path.xhtml: Added. * svg/transforms/svg-css-transforms.xhtml: Added. Canonical link: https://commits.webkit.org/89545@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@101062 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2011-11-23 11:34:37 +00:00
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>CSS Transition of SVG elements</title>
<style type="text/css" media="screen">
div {
-webkit-box-sizing: border-box;
}
.column {
margin: 10px;
display: inline-block;
vertical-align: top;
}
.container {
position: relative;
height: 200px;
width: 200px;
margin: 10px;
background-color: silver;
border: 1px solid black;
}
.box {
position: absolute;
top: 0;
left: 0;
height: 60px;
width: 60px;
border: 1px dotted black;
-webkit-transform-origin: top left; /* to match SVG */
}
.final {
border: 1px solid blue;
}
#target, #ref {
-webkit-transition-property: -webkit-transform;
-webkit-transition-duration: 1s;
}
</style>
<script type="text/javascript" charset="utf-8">
var flag = true;
function transition() {
var svgElm = document.getElementById("target");
var divElm = document.getElementById("ref");
if (flag) {
svgElm.style.webkitTransform = "translate(75px, 25px) scale(2) rotate(45deg)";
divElm.style.webkitTransform = "translate(75px, 25px) scale(2) rotate(45deg)";
}
else {
svgElm.style.webkitTransform = "translate(0px, 0px) scale(1) rotate(0deg)";
divElm.style.webkitTransform = "translate(0px, 0px) scale(1) rotate(0deg)";
}
flag = !flag;
}
</script>
</head>
<body>
<h1>CSS Transition of "-webkit-trasform" property for SVG elements</h1>
<p>The element below should transition when button is clicked</p>
<p>The SVG transition should be identical with the CSS one</p>
<input type="button" value="Transition" onclick="transition()" />
<div class="column">
<h2>SVG compound</h2>
<div class="container">
<svg xmlns="http://www.w3.org/2000/svg" version="1.1"
viewBox="0 0 200 200" style="width:200px; height:200px;">
<rect id="target" x="0" y="0" width="60" height="60" stroke="blue" fill="none">
</rect>
</svg>
</div>
<h2>CSS compound</h2>
<div class="container">
<div class="final box" id="ref">
</div>
</div>
</div>
</body>
</html>