haikuwebkit/LayoutTests/svg/hittest/svg-ellipse.xhtml

82 lines
2.8 KiB
HTML
Raw Permalink Normal View History

Add new renderer for circles and ellipses https://bugs.webkit.org/show_bug.cgi?id=80423 Patch by Philip Rogers <pdr@google.com> on 2012-03-30 Reviewed by Eric Seidel. Source/WebCore: This patch introduces a special renderer for SVGCircleElements and SVGEllipseElements to avoid having to use the slower path rendering code. This patch includes optimized circle code for the CG platform, and hooks (GC::fillEllipse, GC::strokeEllipse) are available for other platforms as well. Tests: svg/hittest/svg-ellipse-non-scale-stroke.xhtml svg/hittest/svg-ellipse.xhtml Added a test to exercise hit testing on an ellipse, and on an ellipse's stroke, to make sure the formulae in this patch are correct. * CMakeLists.txt: * GNUmakefile.list.am: * Target.pri: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::fillEllipse): (WebCore): (WebCore::GraphicsContext::strokeEllipse): (WebCore::GraphicsContext::fillEllipseAsPath): (WebCore::GraphicsContext::strokeEllipseAsPath): (WebCore::GraphicsContext::platformFillEllipse): (WebCore::GraphicsContext::platformStrokeEllipse): * platform/graphics/GraphicsContext.h: (GraphicsContext): * platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::platformFillEllipse): (WebCore): (WebCore::GraphicsContext::platformStrokeEllipse): * platform/graphics/skia/GraphicsContextSkia.cpp: (WebCore::GraphicsContext::platformFillEllipse): (WebCore): (WebCore::GraphicsContext::platformStrokeEllipse): * rendering/svg/RenderSVGAllInOne.cpp: * rendering/svg/RenderSVGEllipse.cpp: Added. (WebCore): (WebCore::RenderSVGEllipse::RenderSVGEllipse): (WebCore::RenderSVGEllipse::~RenderSVGEllipse): (WebCore::RenderSVGEllipse::createShape): (WebCore::RenderSVGEllipse::calculateRadiiAndCenter): (WebCore::RenderSVGEllipse::objectBoundingBox): (WebCore::RenderSVGEllipse::strokeBoundingBox): (WebCore::RenderSVGEllipse::fillShape): (WebCore::RenderSVGEllipse::strokeShape): (WebCore::RenderSVGEllipse::shapeDependentStrokeContains): (WebCore::RenderSVGEllipse::shapeDependentFillContains): * rendering/svg/RenderSVGEllipse.h: Added. (WebCore): (RenderSVGEllipse): (WebCore::RenderSVGEllipse::isSVGEllipse): (WebCore::RenderSVGEllipse::renderName): (WebCore::RenderSVGEllipse::isEmpty): * svg/SVGCircleElement.cpp: (WebCore::SVGCircleElement::svgAttributeChanged): (WebCore): (WebCore::SVGCircleElement::createRenderer): * svg/SVGCircleElement.h: (SVGCircleElement): * svg/SVGEllipseElement.cpp: (WebCore::SVGEllipseElement::svgAttributeChanged): (WebCore::SVGEllipseElement::createRenderer): (WebCore): * svg/SVGEllipseElement.h: (SVGEllipseElement): LayoutTests: * platform/chromium/test_expectations.txt: * platform/gtk/Skipped: * platform/mac/Skipped: * 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.txt: * platform/mac/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/linking-uri-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/pservers-pattern-04-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/struct-use-11-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/styling-pres-02-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-07-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-21-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-23-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-26-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-28-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-29-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-30-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-31-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-33-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-37-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-39-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-44-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-80-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-81-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-82-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-83-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/color-prop-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/color-prop-02-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1/color-prop-03-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/coords-units-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/coords-units-02-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/filters-felem-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/filters-offset-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/interact-cursor-01-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1/interact-order-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/interact-order-02-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/interact-zoom-01-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/linking-a-04-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/linking-a-05-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/linking-uri-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/linking-uri-02-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/masking-intro-01-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1/metadata-example-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/painting-marker-01-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1/painting-render-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/script-handle-02-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/script-handle-03-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/script-handle-04-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/shapes-circle-01-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/shapes-ellipse-01-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/struct-frag-02-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/struct-frag-03-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/struct-frag-04-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/struct-use-01-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/styling-css-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/styling-css-02-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/styling-css-03-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/styling-inherit-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/styling-pres-01-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/text-align-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/text-align-05-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/types-basicDOM-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-01-t-expected.txt: * platform/mac/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t-expected.txt: * platform/mac/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t-expected.txt: * platform/mac/svg/as-image/img-preserveAspectRatio-support-1-expected.txt: * platform/mac/svg/as-image/img-preserveAspectRatio-support-2-expected.txt: * platform/mac/svg/as-object/object-box-sizing-no-width-height-expected.txt: * platform/mac/svg/as-object/svg-embedded-in-html-in-iframe-expected.txt: * platform/mac/svg/batik/masking/maskRegions-expected.txt: * platform/mac/svg/batik/paints/patternPreserveAspectRatioA-expected.txt: * platform/mac/svg/batik/paints/patternRegions-expected.txt: * platform/mac/svg/batik/paints/patternRegions-positioned-objects-expected.txt: * platform/mac/svg/batik/text/verticalText-expected.txt: * platform/mac/svg/carto.net/button-expected.txt: * platform/mac/svg/clip-path/clip-in-mask-expected.txt: * platform/mac/svg/clip-path/clip-path-child-clipped-expected.txt: * platform/mac/svg/clip-path/clip-path-evenodd-nonzero-expected.txt: * platform/mac/svg/clip-path/clip-path-nonzero-evenodd-expected.txt: * platform/mac/svg/clip-path/clip-path-nonzero-expected.txt: * platform/mac/svg/clip-path/clip-path-pixelation-expected.txt: * platform/mac/svg/clip-path/clip-path-transform-1-expected.txt: * platform/mac/svg/clip-path/clip-path-use-as-child2-expected.txt: * platform/mac/svg/clip-path/clip-path-use-as-child3-expected.txt: * platform/mac/svg/clip-path/clip-path-use-as-child4-expected.txt: * platform/mac/svg/clip-path/clip-path-use-as-child5-expected.txt: * platform/mac/svg/clip-path/clip-path-with-different-unittypes-expected.txt: * platform/mac/svg/clip-path/clip-path-with-different-unittypes2-expected.txt: * platform/mac/svg/clip-path/deep-nested-clip-in-mask-different-unitTypes-expected.txt: * platform/mac/svg/clip-path/deep-nested-clip-in-mask-expected.txt: * platform/mac/svg/clip-path/deep-nested-clip-in-mask-panning-expected.txt: * platform/mac/svg/clip-path/nested-clip-in-mask-image-based-clipping-expected.txt: * platform/mac/svg/clip-path/nested-clip-in-mask-path-and-image-based-clipping-expected.txt: * platform/mac/svg/clip-path/nested-clip-in-mask-path-based-clipping-expected.txt: * platform/mac/svg/css/shadow-changes-expected.txt: * platform/mac/svg/custom/absolute-sized-content-with-resources-expected.txt: * platform/mac/svg/custom/circle-move-invalidation-expected.txt: * platform/mac/svg/custom/circular-marker-reference-2-expected.txt: * platform/mac/svg/custom/clone-element-with-animated-svg-properties-expected.txt: * platform/mac/svg/custom/dasharrayOrigin-expected.txt: * platform/mac/svg/custom/focus-ring-expected.txt: * platform/mac/svg/custom/getscreenctm-in-scrollable-div-area-expected.txt: * platform/mac/svg/custom/getscreenctm-in-scrollable-div-area-nested-expected.txt: * platform/mac/svg/custom/getscreenctm-in-scrollable-svg-area-expected.txt: * platform/mac/svg/custom/inline-svg-in-xhtml-expected.txt: * platform/mac/svg/custom/invalid-css-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: * platform/mac/svg/custom/linking-a-03-b-preserveAspectRatio-expected.txt: * platform/mac/svg/custom/linking-a-03-b-transform-expected.txt: * platform/mac/svg/custom/linking-a-03-b-viewBox-expected.txt: * platform/mac/svg/custom/linking-a-03-b-viewBox-transform-expected.txt: * platform/mac/svg/custom/linking-a-03-b-viewTarget-expected.txt: * platform/mac/svg/custom/linking-a-03-b-zoomAndPan-expected.txt: * platform/mac/svg/custom/linking-uri-01-b-expected.txt: * platform/mac/svg/custom/marker-opacity-expected.txt: * platform/mac/svg/custom/mask-colorspace-expected.txt: * platform/mac/svg/custom/mask-on-multiple-objects-expected.txt: * platform/mac/svg/custom/mouse-move-on-svg-container-expected.txt: * platform/mac/svg/custom/mouse-move-on-svg-container-standalone-expected.txt: * platform/mac/svg/custom/mouse-move-on-svg-root-expected.txt: * platform/mac/svg/custom/mouse-move-on-svg-root-standalone-expected.txt: * platform/mac/svg/custom/non-circular-marker-reference-expected.txt: * platform/mac/svg/custom/object-sizing-expected.txt: * platform/mac/svg/custom/object-sizing-explicit-height-expected.txt: * platform/mac/svg/custom/object-sizing-explicit-width-expected.txt: * platform/mac/svg/custom/object-sizing-explicit-width-height-expected.txt: * platform/mac/svg/custom/object-sizing-no-width-height-expected.txt: * platform/mac/svg/custom/path-zero-strokewidth-expected.txt: * platform/mac/svg/custom/pattern-incorrect-tiling-expected.txt: * platform/mac/svg/custom/pattern-no-pixelation-expected.txt: * platform/mac/svg/custom/pattern-referencing-preserve-aspect-ratio-expected.txt: * platform/mac/svg/custom/pattern-rotate-expected.txt: * platform/mac/svg/custom/relative-sized-content-with-resources-expected.txt: * platform/mac/svg/custom/shapes-supporting-markers-expected.txt: * platform/mac/svg/custom/stroked-pattern-expected.txt: * platform/mac/svg/custom/transform-with-shadow-and-gradient-expected.txt: * platform/mac/svg/custom/use-css-events-expected.txt: * platform/mac/svg/custom/use-detach-expected.txt: * platform/mac/svg/custom/use-elementInstance-methods-expected.txt: * platform/mac/svg/custom/use-instanceRoot-modifications-expected.txt: * platform/mac/svg/custom/use-modify-container-in-target-expected.txt: * platform/mac/svg/custom/use-modify-target-container-expected.txt: * platform/mac/svg/custom/use-on-g-containing-use-expected.txt: * platform/mac/svg/custom/use-on-g-expected.txt: * platform/mac/svg/custom/use-on-use-expected.txt: * platform/mac/svg/custom/use-transform-expected.txt: * platform/mac/svg/custom/width-full-percentage-expected.txt: * platform/mac/svg/filters/feDropShadow-expected.txt: * platform/mac/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-objectBoundingBox-expected.txt: * platform/mac/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-userSpaceOnUse-expected.txt: * platform/mac/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-objectBoundingBox-expected.txt: * platform/mac/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-userSpaceOnUse-expected.txt: * platform/mac/svg/filters/feImage-late-indirect-update-expected.txt: * platform/mac/svg/hixie/cascade/001-broken-expected.txt: * platform/mac/svg/hixie/cascade/002-expected.txt: * platform/mac/svg/hixie/error/001-expected.txt: * platform/mac/svg/hixie/error/003-expected.txt: * platform/mac/svg/hixie/error/017-expected.txt: * platform/mac/svg/hixie/mixed/003-expected.txt: * platform/mac/svg/hixie/mixed/004-expected.txt: * platform/mac/svg/hixie/mixed/005-expected.txt: * platform/mac/svg/hixie/mixed/006-expected.txt: * platform/mac/svg/hixie/mixed/008-expected.txt: * platform/mac/svg/hixie/mixed/011-expected.txt: * platform/mac/svg/hixie/perf/001-expected.txt: * platform/mac/svg/hixie/perf/002-expected.txt: * platform/mac/svg/hixie/perf/007-expected.txt: * platform/mac/svg/hixie/rendering-model/001-expected.txt: * platform/mac/svg/hixie/rendering-model/002-expected.txt: * platform/mac/svg/hixie/shapes/path/001-expected.txt: * platform/mac/svg/hixie/transform/001-expected.txt: * platform/mac/svg/in-html/circle-expected.txt: * platform/mac/svg/stroke/zero-length-arc-linecaps-rendering-expected.txt: * platform/mac/svg/stroke/zero-length-path-linecap-rendering-expected.txt: * platform/mac/svg/stroke/zero-length-subpaths-linecap-rendering-expected.txt: * platform/mac/svg/text/small-fonts-3-expected.txt: * platform/mac/svg/text/text-align-01-b-expected.txt: * platform/mac/svg/text/text-align-05-b-expected.txt: * platform/mac/svg/text/text-fill-opacity-expected.txt: * platform/mac/svg/transforms/svg-css-transforms-clip-path-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-hixie-mixed-008-expected.txt: * platform/mac/svg/zoom/page/zoom-img-preserveAspectRatio-support-1-expected.txt: * platform/mac/svg/zoom/page/zoom-mask-with-percentages-expected.txt: * platform/mac/svg/zoom/page/zoom-svg-through-object-with-auto-size-expected.txt: * platform/mac/svg/zoom/text/zoom-hixie-mixed-008-expected.txt: * platform/qt/Skipped: * platform/win/Skipped: * svg/clip-path/clip-in-mask-objectBoundingBox-expected.txt: * svg/clip-path/clip-in-mask-userSpaceOnUse-expected.txt: * svg/clip-path/clip-path-childs-clipped-expected.txt: * svg/clip-path/clip-path-clipped-evenodd-twice-expected.txt: * svg/clip-path/clip-path-clipped-expected.txt: * svg/clip-path/clip-path-clipped-nonzero-expected.txt: * svg/clip-path/clip-path-css-transform-1-expected.txt: * svg/clip-path/clip-path-css-transform-2-expected.txt: * svg/clip-path/clip-path-objectBoundingBox-expected.txt: * svg/clip-path/clip-path-on-clipped-use-expected.txt: * svg/clip-path/clip-path-on-g-and-child-expected.txt: * svg/clip-path/clip-path-on-g-expected.txt: * svg/clip-path/clip-path-on-svg-and-child-expected.txt: * svg/clip-path/clip-path-on-svg-expected.txt: * svg/clip-path/clip-path-transform-2-expected.txt: * svg/clip-path/clip-path-use-as-child-expected.txt: * svg/css/circle-in-mask-with-shadow-expected.txt: * svg/css/mask-with-shadow-expected.txt: * svg/custom/absolute-root-position-masking-expected.txt: * svg/custom/fill-opacity-update-expected.txt: * svg/custom/gradient-stroke-width-expected.txt: * svg/custom/js-late-marker-and-object-creation-expected.txt: * svg/custom/js-late-marker-creation-expected.txt: * svg/custom/js-update-bounce-expected.txt: * svg/custom/marker-changes-expected.txt: * svg/custom/marker-child-changes-css-expected.txt: * svg/custom/marker-child-changes-expected.txt: * svg/custom/marker-strokeWidth-changes-expected.txt: * svg/custom/marker-viewBox-changes-expected.txt: * svg/custom/object-sizing-no-width-height-change-content-box-size-expected.txt: * svg/custom/pattern-scaled-pattern-space-expected.txt: * svg/custom/resource-invalidate-on-target-update-expected.txt: * svg/custom/stroke-opacity-update-expected.txt: * svg/custom/use-setAttribute-crash-expected.txt: * svg/custom/viewBox-hit-expected.txt: * svg/filters/feImage-reference-svg-primitive-expected.txt: * svg/filters/filter-clip-expected.txt: * svg/filters/invalidate-on-child-layout-expected.txt: * svg/hittest/svg-ellipse-expected.txt: Added. * svg/hittest/svg-ellipse-non-scale-stroke-expected.txt: Added. * svg/hittest/svg-ellipse-non-scale-stroke.xhtml: Added. * svg/hittest/svg-ellipse.xhtml: Added. * svg/hixie/links/001-expected.txt: Canonical link: https://commits.webkit.org/100054@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@112667 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-03-30 15:37:16 +00:00
<html xmlns='http://www.w3.org/1999/xhtml'>
<head>
<style>
#svgRoot {
margin: 0px;
padding: 0px;
position: absolute;
top: 0px;
left: 0px;
}
#ellipse {
fill: green;
fill-opacity: 0.1;
stroke-width: 100px;
stroke: green;
stroke-opacity: 0.2;
}
</style>
</head>
<body>
<p>Tests for WK80423 - Make sure hit testing works properly on stroked ellipses.</p>
<p>On success, you will see a series of "PASS" messages and no "FAIL" messages.</p>
<pre id="console"></pre>
<svg id="svgRoot" width="400px" height="400px" viewBox="0 0 400 400" xmlns="http://www.w3.org/2000/svg">
<ellipse id="ellipse" cx="150" cy="150" rx="200" ry="100"/>
</svg>
<script><![CDATA[
Use testRunner instead of layoutTestController in SVG tests https://bugs.webkit.org/show_bug.cgi?id=92898 Reviewed by Dirk Schulze. * svg/W3C-SVG-1.1-SE/paths-dom-02-f.svg: * svg/animations/animate-beginElementAt.svg: * svg/animations/animate-calcMode-spline-crash-bad-array-length.xhtml: * svg/animations/animate-linear-discrete-additive-b.svg: * svg/animations/animate-linear-discrete-additive-c.svg: * svg/animations/animate-linear-discrete-additive.svg: * svg/animations/animate-list-crash.svg: * svg/animations/animate-setcurrenttime.html: * svg/animations/animate-update-crash.xhtml: * svg/animations/animateColor-additive-2a.svg: * svg/animations/animateColor-additive-2b.svg: * svg/animations/animateColor-additive-2c.svg: * svg/animations/animateColor-additive-2d.svg: * svg/animations/animateMotion-additive-1.svg: * svg/animations/animateMotion-additive-2a.svg: * svg/animations/animateMotion-additive-2b.svg: * svg/animations/animateMotion-additive-2c.svg: * svg/animations/animateMotion-additive-2d.svg: * svg/animations/animateTransform-accumulation.svg: * svg/animations/animateTransform-by-scale-1.svg: * svg/animations/animateTransform-by-scale.svg: * svg/animations/animateTransform-from-by-from-to-comparision-expected.svg: * svg/animations/animateTransform-from-by-from-to-comparision.svg: * svg/animations/animateTransform-from-by-scale-additive-sum.svg: * svg/animations/animateTransform-from-by-scale.svg: * svg/animations/animateTransform-rotate-around-point.svg: * svg/animations/animateTransform-skewX.svg: * svg/animations/animateTransform-skewY.svg: * svg/animations/animateTransform-translate.svg: * svg/animations/dynamic-modify-attributename-crash.svg: * svg/animations/keypoints-mismatch.svg: * svg/animations/length-list-animation.svg: * svg/animations/list-wrapper-assertion.svg: * svg/animations/mozilla/animateMotion-by-1.svg: * svg/animations/mozilla/animateMotion-from-to-1-expected.svg: * svg/animations/mozilla/animateMotion-from-to-1.svg: * svg/animations/mozilla/animateMotion-mpath-pathLength-1.svg: * svg/animations/mozilla/animateMotion-mpath-targetChange-1.svg: * svg/animations/mozilla/animateMotion-to-overridden-1.svg: * svg/animations/multiple-animateTransform-additive-sum.svg: * svg/animations/multiple-begin-animation-discrete.svg: * svg/animations/multiple-begin-animation.svg: * svg/animations/path-animation.svg: * svg/animations/repeatDur-zero.xhtml: * svg/animations/repeating-path-animation.svg: * svg/animations/resources/SVGAnimationTestCase.js: (runAnimationTest): * svg/animations/smil-element-not-removed-crash.html: * svg/animations/smil-element-target-crash-main.html: * svg/animations/smil-leak-dynamically-added-element-instances.svg: * svg/animations/smil-leak-element-instances-noBaseValRef.svg: * svg/animations/smil-leak-element-instances.svg: * svg/animations/smil-leak-elements.svg: * svg/animations/svg-two-animate-elements-crash.svg: * svg/animations/svglength-animation-retarget-crash.html: * svg/animations/svglength-element-removed-crash.svg: * svg/as-background-image/animated-svg-as-background.html: * svg/as-background-image/svg-background-crash-on-refresh.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/animated-svg-repaints-completely-in-hidpi.html: * svg/as-image/drag-svg-as-image.html: * svg/as-image/image-respects-deviceScaleFactor.html: * svg/as-image/image-respects-pageScaleFactor-change.html: * svg/as-image/svg-image-leak-cached-data.html: * svg/as-image/svg-image-leak-loader.html: * svg/as-image/svg-nested.html: * 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/frameless-svg-parse-error.html: * svg/carto.net/window.svg: * svg/css/crash-css-generated-content.xhtml: * svg/css/cursor-image-replace.svg: * svg/css/cursor-replace.svg: * svg/css/getComputedStyle-basic.xhtml: * svg/css/invalid-color-crash.svg: * svg/css/multiple-cursors-crash.html: * svg/css/script-tests/svg-attribute-length-parsing.js: * svg/css/script-tests/svg-attribute-parser-mode.js: * svg/css/style-change-crash.html: * svg/css/svg-ellipse-render-crash.html: * svg/custom/acid3-test-77.html: * svg/custom/anchor-on-use.svg: * svg/custom/animate-disallowed-mask-element.svg: * svg/custom/animate-disallowed-use-element.svg: * 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/animate-use-crash.xhtml: * svg/custom/assert-empty-layout-attributes.svg: * svg/custom/bbox-of-g-in-symbol.svg: * svg/custom/boundingBox.html: * svg/custom/bug78700.svg: * svg/custom/bug78807.svg: * svg/custom/bug78838.html: * svg/custom/bug79798.html: * svg/custom/bug86119.html: * svg/custom/bug86392.html: * svg/custom/bug86781.html: * svg/custom/click-internal-anchor-with-use-crash.xhtml: * svg/custom/crash-inline-container-client.html: * svg/custom/crash-text-in-textpath.svg: * svg/custom/crash-textPath-attributes.html: * svg/custom/delete-modified-text-in-defs-crash.svg: * svg/custom/delete-text-crash.html: * svg/custom/delete-text-innerText-crash.html: * svg/custom/detached-outermost-svg-crash.html: * svg/custom/disallowed-text-content-rendering.svg: * svg/custom/display-table-caption-foreignObject.svg: * svg/custom/display-table-caption-inherit-foreignObject.xhtml: * svg/custom/display-table-caption-inherit-text.xhtml: * svg/custom/display-table-caption-text.svg: * svg/custom/element-instance-held-by-js-crash.svg: * svg/custom/embedded-svg-allowed-in-dashboard.xml: * svg/custom/empty-className-baseVal-crash.html: * svg/custom/filter-on-svgimage.svg: * svg/custom/font-face-move.svg: * svg/custom/font-face-name-without-name-attr.svg: * svg/custom/font-face-not-in-document.svg: * svg/custom/font-platformDestroy-crash.svg: * svg/custom/foreignObject-crash-on-hover.xml: * svg/custom/foreignobject-crash-with-absolute-positioned-children.svg: * svg/custom/frame-getSVGDocument.html: * svg/custom/g-outside-svg.html: * svg/custom/get-text-element-transform-crash.html: * svg/custom/getBBox-empty-container.html: * svg/custom/getBBox-js.svg: * svg/custom/getBBox-path.svg: * svg/custom/getBBox-perpendicular-path.svg: * svg/custom/getscreenctm-in-mixed-content2.xhtml: * svg/custom/gradient-attr-update.svg: * svg/custom/gradient-stop-display-none-crash.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/image-base-uri.svg: * svg/custom/image-clipped-hit.svg: * svg/custom/image-rescale-scroll.html: * svg/custom/image-with-prefix-in-webarchive-expected.webarchive: * svg/custom/image-with-prefix-in-webarchive.svg: * svg/custom/insertItemBefore-from-non-list-origin.svg: * svg/custom/intersection-list-clipping.svg: * svg/custom/intersection-list-crash.svg: * svg/custom/intersection-list-nested-svg.svg: * svg/custom/intersection-list-null.svg: * svg/custom/invalid-gradient-with-xlink.svg: * svg/custom/invalid-paint-shape-mask.svg: * 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-svg-constructors.svg: * svg/custom/js-update-container2.svg: * svg/custom/js-update-image-and-display.svg: * svg/custom/js-update-image-and-display2.svg: * svg/custom/js-update-image-and-display3.svg: * svg/custom/layout-loop.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/linking-uri-01-b.svg: * svg/custom/loadevents-capturing.svg: * svg/custom/loadevents-externalresourcesrequired-displaynone.svg: * svg/custom/loadevents-externalresourcesrequired.svg: * svg/custom/loadevents-normal-displaynone.svg: * svg/custom/loadevents-normal.svg: * svg/custom/manually-parsed-embedded-svg-allowed-in-dashboard.html: * svg/custom/manually-parsed-svg-allowed-in-dashboard.html: * svg/custom/marker-getPropertyValue.svg: * svg/custom/mask-changes.svg: * svg/custom/mask-invalidation.svg: * svg/custom/mouse-move-on-svg-container-standalone.svg: * svg/custom/mouse-move-on-svg-container.xhtml: * svg/custom/mouse-move-on-svg-root-standalone.svg: * svg/custom/mouse-move-on-svg-root.xhtml: * svg/custom/multiple-title-elements.svg: * svg/custom/new-image-is-html-element.svg: * svg/custom/path-getPresentationAttribute-crash.html: * svg/custom/path-getTotalLength-on-big-segment-crash.svg: * svg/custom/path-getTotalLength.svg: * svg/custom/pending-resource-after-removal.xhtml: * svg/custom/pending-resource-leak-2.svg: * svg/custom/pending-resource-leak-3.svg: * svg/custom/pending-resource-leak.svg: * svg/custom/pointer-events-image-css-transform.svg: * svg/custom/pointer-events-image.svg: * svg/custom/pointer-events-invalid-fill.svg: * svg/custom/pointer-events-on-rounded-rect.xhtml: * svg/custom/pointer-events-on-svg-with-pointer.xhtml: * svg/custom/pointer-events-on-svg-without-pointer.xhtml: * svg/custom/pointer-events-text-css-transform.svg: * svg/custom/pointer-events-text.svg: * svg/custom/pointer-events-with-linecaps-and-miterlimits.xhtml: * svg/custom/poly-points-attribute-changes.svg: * svg/custom/polyline-hittest.svg: * svg/custom/polyline-points-crash.html: * svg/custom/prevent-default.svg: * svg/custom/recursive-use.svg: * svg/custom/recursive-use2.svg: * svg/custom/repaint-moving-svg-and-div.xhtml: * svg/custom/resource-client-removal.svg: * svg/custom/resources/focus-event-handling-keyboard.js: * svg/custom/resources/focus-event-handling.js: * svg/custom/resources/link-target.html: * svg/custom/resources/linkingCircle-f.svg: * svg/custom/resources/svgsvgelement-ctm.js: * 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/scroll-to-svg-element-assertion.html: * svg/custom/scrolling-embedded-svg-file-image-repaint-problem.html: * svg/custom/stop-crash.svg: * svg/custom/stroke-width-click.svg: * svg/custom/svg-allowed-in-dashboard-object.html: * svg/custom/svg-features.html: * svg/custom/svg-fonts-in-html-linebreaks.html: * svg/custom/svg-fonts-no-latin-glyph.html: * svg/custom/svg-getelementid.xhtml: * svg/custom/svg-parse-overflow-1.html: * svg/custom/svg-parse-overflow-2.html: * svg/custom/svg-parse-overflow-3.html: * svg/custom/svg-parse-overflow-4.html: * svg/custom/svg-parse-overflow-5.html: * svg/custom/svg-use-style-float-crash.svg: * svg/custom/svg-width-intrinsic-crash.html: * svg/custom/symbol-viewport-element-crash.svg: * svg/custom/text-node-in-text-invalidated.svg: * svg/custom/text-tref-03-b-dynamic.svg: * svg/custom/text-tref-03-b-dynamic2.svg: * svg/custom/textPath-assert.svg: * svg/custom/textPath-set-id.svg: * svg/custom/tiling-regular-hexagonal-crash.svg: * svg/custom/tref-clone-crash.html: * svg/custom/tref-shadowdom.html: * svg/custom/use-animation-in-fill.html: * svg/custom/use-crash-in-non-wellformed-document.svg: * svg/custom/use-crash-pending-resource.svg: * svg/custom/use-crash-using-children-before-destroy.svg: * svg/custom/use-crash-when-href-change.svg: * svg/custom/use-detach.svg: * svg/custom/use-display-none.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-external-crash.svg: * svg/custom/use-instanceRoot-as-event-target.xhtml: * svg/custom/use-instanceRoot-event-listener-liveness.xhtml: * svg/custom/use-instanceRoot-with-use-removed.svg: * svg/custom/use-invalid-font-face.svg: * svg/custom/use-invalid-html.xhtml: * svg/custom/use-invalid-pattern.svg: * svg/custom/use-invalid-style.svg: * svg/custom/use-move-to-offset.svg: * svg/custom/use-multiple-on-nested-disallowed-font.html: * svg/custom/use-mutation-event-crash.svg: * svg/custom/use-nested-children.svg: * svg/custom/use-nested-disallowed-target.svg: * svg/custom/use-nested-missing-target-added.svg: * svg/custom/use-nested-missing-target-removed.svg: * svg/custom/use-nested-missing-target.svg: * svg/custom/use-nested-notarget.svg: * svg/custom/use-non-existing-symbol-crash.svg: * svg/custom/use-on-use-with-child-and-empty-target.svg: * svg/custom/use-on-use-with-child.svg: * svg/custom/use-referencing-style-crash.svg: * svg/custom/use-shadow-root-parent-removal.svg: * svg/custom/use-tref-crash.svg: * svg/custom/webkit-transform-crash.html: * svg/custom/xlink-prefix-in-attributes.html: * svg/custom/xlink-to-invalid-gradient.svg: * svg/dom/SVGPathSegList-xml-dom-synchronization.xhtml: * svg/dom/SVGPolygonElement-baseVal-list-removal-crash.html: * svg/dom/SVGScriptElement/script-async-attr.svg: * svg/dom/SVGScriptElement/script-change-externalResourcesRequired-while-loading.svg: * svg/dom/SVGScriptElement/script-clone-rerun-self.svg: * svg/dom/SVGScriptElement/script-clone-rerun.svg: * svg/dom/SVGScriptElement/script-load-and-error-events.svg: * svg/dom/SVGScriptElement/script-onerror-bubbling.svg: * svg/dom/SVGScriptElement/script-reexecution.svg: * svg/dom/SVGScriptElement/script-set-href.svg: * svg/dom/SVGStyledElement-pendingResource-crash.html: * svg/dom/SVGTransformList-empty-list-consolidation.html: * svg/dom/animated-tearoff-equality.xhtml: * svg/dom/animated-tearoff-lifespan.xhtml: * svg/dom/baseVal-animVal-crash.html: * svg/dom/baseVal-animVal-list-crash.html: * svg/dom/frame-related-api-during-load.html: * svg/dom/parent-view-layout-crash.html: * svg/dom/path-marker-removed-crash.svg: * svg/dom/resources/viewspec-parser.js: (continueFuzzing.else.script.onload): (continueFuzzing): * svg/dom/script-tests/SVGViewSpec.js: (completeTest.script.onload): (completeTest): * svg/dom/smil-methods.svg: * svg/dom/stylesheet-candidate-node-crash-main.html: * svg/dom/svg-element-attribute-js-null.xhtml: * svg/dom/symbol-embeddedAnimation.svg: * svg/dom/use-style-recalc-script-execute-crash.html: * svg/dom/use-transform.svg: * svg/dom/viewport-container-crash.svg: * svg/dom/vkern-element-crash.html: * svg/dynamic-updates/resources/SVGTestCase.js: (createSVGTestCase): (embedSVGTestCase): (completeTest.script.onload): (completeTest): * svg/dynamic-updates/resources/linkTarget.svg: * svg/filters/feBlend-invalid-mode.xhtml: * svg/filters/feColorMatrix-invalid-value.svg: * svg/filters/feComponentTransfer-style-crash.xhtml: * svg/filters/feDisplacementMap-crash-test.xhtml: * svg/filters/feImage-animated-transform-on-target-rect.svg: * svg/filters/feImage-target-reappend-to-document.svg: * svg/filters/feImage-zero-size-crash.svg: * svg/filters/feMorphology-invalid-radius.svg: * svg/filters/feMorphology-zero-radius.svg: * svg/filters/filter-after-transform-crash.svg: * svg/filters/reparent-animated-filter-target.html: * svg/filters/svg-transform-blur-crash.svg: * svg/foreignObject/absolute-position-foreign-object-child-crash.html: * svg/foreignObject/fO-fixed-position-crash.html: * svg/hittest/foreign-object-background.svg: * svg/hittest/svg-ellipse-non-scale-stroke.xhtml: * svg/hittest/svg-ellipse-rect-stroke.xhtml: * svg/hittest/svg-ellipse.xhtml: * svg/hittest/svg-inside-display-table.xhtml: * svg/hittest/svg-inside-table.xhtml: * svg/hittest/svg-padding.xhtml: * svg/hittest/svg-shapes-non-scale-stroke.html: * svg/hittest/svg-small-path.xhtml: * svg/hittest/svg-small-viewbox.xhtml: * svg/hittest/zero-length-butt-cap-path.xhtml: * svg/hittest/zero-length-round-cap-path.xhtml: * svg/hittest/zero-length-square-cap-path.xhtml: * svg/hixie/dynamic/001.xml: * svg/hixie/links/003.xml: * 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/in-html/script-external.html: * svg/in-html/script-nested.html: * svg/in-html/script-write.html: * svg/in-html/script.html: * svg/in-html/svg-assert-failure-percentage.html: * svg/path-arc-invalid.html: * svg/repaint/filter-repaint.svg: * svg/repaint/image-href-change.svg: * svg/repaint/image-with-clip-path.svg: * svg/repaint/repainting-after-animation-element-removal.svg: * svg/text/add-tspan-position-bug.html: * svg/text/caret-in-svg-text.xhtml: * svg/text/clear-floats-crash.svg: * svg/text/font-size-null-assertion.svg: * svg/text/font-size-too-large-crash.svg: * svg/text/foreignObject-text-clipping-bug.xml: * svg/text/glyphref-renderer-create-crash.html: * svg/text/highcharts-assertion.html: * svg/text/inline-text-destroy-attributes-crash.xhtml: * svg/text/modify-tspan-position-bug.html: * svg/text/resources/SelectionTestCase.js: * svg/text/select-text-svgfont.html: * svg/text/selection-doubleclick.svg: * svg/text/selection-tripleclick.svg: * svg/text/svg-rtl-text-crash.html: * svg/text/svg-zoom-large-value.xhtml: * svg/text/text-align-01-b.svg: * svg/text/text-align-02-b.svg: * svg/text/text-align-03-b.svg: * svg/text/text-align-04-b.svg: * svg/text/text-align-05-b.svg: * svg/text/text-align-06-b.svg: * svg/text/text-altglyph-01-b.svg: * svg/text/text-assert.svg: * svg/text/text-block-child-crash.xhtml: * svg/text/text-deco-01-b.svg: * svg/text/text-font-anonymous-parent.xhtml: * svg/text/text-font-invalid.html: * svg/text/text-font-uri-invalid.svg: * svg/text/text-fonts-01-t.svg: * svg/text/text-fonts-02-t.svg: * svg/text/text-intro-05-t.svg: * svg/text/text-path-01-b.svg: * svg/text/text-positioning-remove-child-crash.svg: * svg/text/text-property-with-display-none.html: * svg/text/text-spacing-01-b.svg: * svg/text/text-style-invalid.svg: * svg/text/text-style-recalc-crash.html: * svg/text/text-text-01-b.svg: * svg/text/text-text-03-b.svg: * svg/text/text-text-04-t.svg: * svg/text/text-text-05-t.svg: * svg/text/text-text-06-t.svg: * svg/text/text-text-07-t.svg: * svg/text/text-text-08-b.svg: * svg/text/text-tref-01-b.svg: * svg/text/text-tselect-01-b.svg: * svg/text/text-tselect-02-f.svg: * svg/text/text-tspan-01-b.svg: * svg/text/text-ws-01-t.svg: * svg/text/text-ws-02-t.svg: * svg/text/textPathBoundsBug.svg: * svg/text/textpath-reference-crash.html: * svg/text/tref-event-listener-crash.svg: * svg/text/tspan-getComputedTextLength.svg: * svg/transforms/percent-transform-values.xhtml: * svg/transforms/transform-origin-presentation-attribute.xhtml: * svg/webarchive/svg-cursor-subresources-expected.webarchive: * svg/webarchive/svg-cursor-subresources.svg: * svg/webarchive/svg-feimage-subresources-expected.webarchive: * svg/webarchive/svg-feimage-subresources.svg: * svg/webarchive/svg-script-subresouces-expected.webarchive: * svg/webarchive/svg-script-subresouces.svg: * svg/zoom/page/zoom-getBoundingClientRect.xhtml: * svg/zoom/page/zoom-zoom-coords.xhtml: * svg/zoom/resources/testPageZoom.js: (repaintTest): (completeDynamicTest.script.onload): (completeDynamicTest): * svg/zoom/resources/testTextZoom.js: (repaintTest): Canonical link: https://commits.webkit.org/110751@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@124380 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-08-01 23:05:16 +00:00
if (window.testRunner)
testRunner.dumpAsText();
Add new renderer for circles and ellipses https://bugs.webkit.org/show_bug.cgi?id=80423 Patch by Philip Rogers <pdr@google.com> on 2012-03-30 Reviewed by Eric Seidel. Source/WebCore: This patch introduces a special renderer for SVGCircleElements and SVGEllipseElements to avoid having to use the slower path rendering code. This patch includes optimized circle code for the CG platform, and hooks (GC::fillEllipse, GC::strokeEllipse) are available for other platforms as well. Tests: svg/hittest/svg-ellipse-non-scale-stroke.xhtml svg/hittest/svg-ellipse.xhtml Added a test to exercise hit testing on an ellipse, and on an ellipse's stroke, to make sure the formulae in this patch are correct. * CMakeLists.txt: * GNUmakefile.list.am: * Target.pri: * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::fillEllipse): (WebCore): (WebCore::GraphicsContext::strokeEllipse): (WebCore::GraphicsContext::fillEllipseAsPath): (WebCore::GraphicsContext::strokeEllipseAsPath): (WebCore::GraphicsContext::platformFillEllipse): (WebCore::GraphicsContext::platformStrokeEllipse): * platform/graphics/GraphicsContext.h: (GraphicsContext): * platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::platformFillEllipse): (WebCore): (WebCore::GraphicsContext::platformStrokeEllipse): * platform/graphics/skia/GraphicsContextSkia.cpp: (WebCore::GraphicsContext::platformFillEllipse): (WebCore): (WebCore::GraphicsContext::platformStrokeEllipse): * rendering/svg/RenderSVGAllInOne.cpp: * rendering/svg/RenderSVGEllipse.cpp: Added. (WebCore): (WebCore::RenderSVGEllipse::RenderSVGEllipse): (WebCore::RenderSVGEllipse::~RenderSVGEllipse): (WebCore::RenderSVGEllipse::createShape): (WebCore::RenderSVGEllipse::calculateRadiiAndCenter): (WebCore::RenderSVGEllipse::objectBoundingBox): (WebCore::RenderSVGEllipse::strokeBoundingBox): (WebCore::RenderSVGEllipse::fillShape): (WebCore::RenderSVGEllipse::strokeShape): (WebCore::RenderSVGEllipse::shapeDependentStrokeContains): (WebCore::RenderSVGEllipse::shapeDependentFillContains): * rendering/svg/RenderSVGEllipse.h: Added. (WebCore): (RenderSVGEllipse): (WebCore::RenderSVGEllipse::isSVGEllipse): (WebCore::RenderSVGEllipse::renderName): (WebCore::RenderSVGEllipse::isEmpty): * svg/SVGCircleElement.cpp: (WebCore::SVGCircleElement::svgAttributeChanged): (WebCore): (WebCore::SVGCircleElement::createRenderer): * svg/SVGCircleElement.h: (SVGCircleElement): * svg/SVGEllipseElement.cpp: (WebCore::SVGEllipseElement::svgAttributeChanged): (WebCore::SVGEllipseElement::createRenderer): (WebCore): * svg/SVGEllipseElement.h: (SVGEllipseElement): LayoutTests: * platform/chromium/test_expectations.txt: * platform/gtk/Skipped: * platform/mac/Skipped: * 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.txt: * platform/mac/svg/W3C-SVG-1.1-SE/filters-felem-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/linking-uri-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/pservers-pattern-04-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/struct-use-11-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/styling-pres-02-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-02-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-04-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1-SE/types-dom-07-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-21-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-23-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-26-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-28-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-29-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-30-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-31-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-32-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-33-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-37-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-39-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-44-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-80-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-81-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-82-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/animate-elem-83-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/color-prop-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/color-prop-02-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1/color-prop-03-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/coords-units-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/coords-units-02-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/filters-felem-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/filters-offset-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/interact-cursor-01-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1/interact-order-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/interact-order-02-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/interact-zoom-01-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/linking-a-04-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/linking-a-05-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/linking-uri-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/linking-uri-02-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/masking-intro-01-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1/metadata-example-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/painting-marker-01-f-expected.txt: * platform/mac/svg/W3C-SVG-1.1/painting-render-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/script-handle-02-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/script-handle-03-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/script-handle-04-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/shapes-circle-01-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/shapes-circle-02-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/shapes-ellipse-01-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/shapes-ellipse-02-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/shapes-intro-01-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/struct-frag-02-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/struct-frag-03-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/struct-frag-04-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/struct-use-01-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/styling-css-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/styling-css-02-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/styling-css-03-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/styling-inherit-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/styling-pres-01-t-expected.txt: * platform/mac/svg/W3C-SVG-1.1/text-align-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/text-align-05-b-expected.txt: * platform/mac/svg/W3C-SVG-1.1/types-basicDOM-01-b-expected.txt: * platform/mac/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-01-t-expected.txt: * platform/mac/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-02-t-expected.txt: * platform/mac/svg/W3C-SVG-1.2-Tiny/struct-use-recursion-03-t-expected.txt: * platform/mac/svg/as-image/img-preserveAspectRatio-support-1-expected.txt: * platform/mac/svg/as-image/img-preserveAspectRatio-support-2-expected.txt: * platform/mac/svg/as-object/object-box-sizing-no-width-height-expected.txt: * platform/mac/svg/as-object/svg-embedded-in-html-in-iframe-expected.txt: * platform/mac/svg/batik/masking/maskRegions-expected.txt: * platform/mac/svg/batik/paints/patternPreserveAspectRatioA-expected.txt: * platform/mac/svg/batik/paints/patternRegions-expected.txt: * platform/mac/svg/batik/paints/patternRegions-positioned-objects-expected.txt: * platform/mac/svg/batik/text/verticalText-expected.txt: * platform/mac/svg/carto.net/button-expected.txt: * platform/mac/svg/clip-path/clip-in-mask-expected.txt: * platform/mac/svg/clip-path/clip-path-child-clipped-expected.txt: * platform/mac/svg/clip-path/clip-path-evenodd-nonzero-expected.txt: * platform/mac/svg/clip-path/clip-path-nonzero-evenodd-expected.txt: * platform/mac/svg/clip-path/clip-path-nonzero-expected.txt: * platform/mac/svg/clip-path/clip-path-pixelation-expected.txt: * platform/mac/svg/clip-path/clip-path-transform-1-expected.txt: * platform/mac/svg/clip-path/clip-path-use-as-child2-expected.txt: * platform/mac/svg/clip-path/clip-path-use-as-child3-expected.txt: * platform/mac/svg/clip-path/clip-path-use-as-child4-expected.txt: * platform/mac/svg/clip-path/clip-path-use-as-child5-expected.txt: * platform/mac/svg/clip-path/clip-path-with-different-unittypes-expected.txt: * platform/mac/svg/clip-path/clip-path-with-different-unittypes2-expected.txt: * platform/mac/svg/clip-path/deep-nested-clip-in-mask-different-unitTypes-expected.txt: * platform/mac/svg/clip-path/deep-nested-clip-in-mask-expected.txt: * platform/mac/svg/clip-path/deep-nested-clip-in-mask-panning-expected.txt: * platform/mac/svg/clip-path/nested-clip-in-mask-image-based-clipping-expected.txt: * platform/mac/svg/clip-path/nested-clip-in-mask-path-and-image-based-clipping-expected.txt: * platform/mac/svg/clip-path/nested-clip-in-mask-path-based-clipping-expected.txt: * platform/mac/svg/css/shadow-changes-expected.txt: * platform/mac/svg/custom/absolute-sized-content-with-resources-expected.txt: * platform/mac/svg/custom/circle-move-invalidation-expected.txt: * platform/mac/svg/custom/circular-marker-reference-2-expected.txt: * platform/mac/svg/custom/clone-element-with-animated-svg-properties-expected.txt: * platform/mac/svg/custom/dasharrayOrigin-expected.txt: * platform/mac/svg/custom/focus-ring-expected.txt: * platform/mac/svg/custom/getscreenctm-in-scrollable-div-area-expected.txt: * platform/mac/svg/custom/getscreenctm-in-scrollable-div-area-nested-expected.txt: * platform/mac/svg/custom/getscreenctm-in-scrollable-svg-area-expected.txt: * platform/mac/svg/custom/inline-svg-in-xhtml-expected.txt: * platform/mac/svg/custom/invalid-css-expected.txt: * platform/mac/svg/custom/linking-a-03-b-all-expected.txt: * platform/mac/svg/custom/linking-a-03-b-preserveAspectRatio-expected.txt: * platform/mac/svg/custom/linking-a-03-b-transform-expected.txt: * platform/mac/svg/custom/linking-a-03-b-viewBox-expected.txt: * platform/mac/svg/custom/linking-a-03-b-viewBox-transform-expected.txt: * platform/mac/svg/custom/linking-a-03-b-viewTarget-expected.txt: * platform/mac/svg/custom/linking-a-03-b-zoomAndPan-expected.txt: * platform/mac/svg/custom/linking-uri-01-b-expected.txt: * platform/mac/svg/custom/marker-opacity-expected.txt: * platform/mac/svg/custom/mask-colorspace-expected.txt: * platform/mac/svg/custom/mask-on-multiple-objects-expected.txt: * platform/mac/svg/custom/mouse-move-on-svg-container-expected.txt: * platform/mac/svg/custom/mouse-move-on-svg-container-standalone-expected.txt: * platform/mac/svg/custom/mouse-move-on-svg-root-expected.txt: * platform/mac/svg/custom/mouse-move-on-svg-root-standalone-expected.txt: * platform/mac/svg/custom/non-circular-marker-reference-expected.txt: * platform/mac/svg/custom/object-sizing-expected.txt: * platform/mac/svg/custom/object-sizing-explicit-height-expected.txt: * platform/mac/svg/custom/object-sizing-explicit-width-expected.txt: * platform/mac/svg/custom/object-sizing-explicit-width-height-expected.txt: * platform/mac/svg/custom/object-sizing-no-width-height-expected.txt: * platform/mac/svg/custom/path-zero-strokewidth-expected.txt: * platform/mac/svg/custom/pattern-incorrect-tiling-expected.txt: * platform/mac/svg/custom/pattern-no-pixelation-expected.txt: * platform/mac/svg/custom/pattern-referencing-preserve-aspect-ratio-expected.txt: * platform/mac/svg/custom/pattern-rotate-expected.txt: * platform/mac/svg/custom/relative-sized-content-with-resources-expected.txt: * platform/mac/svg/custom/shapes-supporting-markers-expected.txt: * platform/mac/svg/custom/stroked-pattern-expected.txt: * platform/mac/svg/custom/transform-with-shadow-and-gradient-expected.txt: * platform/mac/svg/custom/use-css-events-expected.txt: * platform/mac/svg/custom/use-detach-expected.txt: * platform/mac/svg/custom/use-elementInstance-methods-expected.txt: * platform/mac/svg/custom/use-instanceRoot-modifications-expected.txt: * platform/mac/svg/custom/use-modify-container-in-target-expected.txt: * platform/mac/svg/custom/use-modify-target-container-expected.txt: * platform/mac/svg/custom/use-on-g-containing-use-expected.txt: * platform/mac/svg/custom/use-on-g-expected.txt: * platform/mac/svg/custom/use-on-use-expected.txt: * platform/mac/svg/custom/use-transform-expected.txt: * platform/mac/svg/custom/width-full-percentage-expected.txt: * platform/mac/svg/filters/feDropShadow-expected.txt: * platform/mac/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-objectBoundingBox-expected.txt: * platform/mac/svg/filters/feImage-filterUnits-objectBoundingBox-primitiveUnits-userSpaceOnUse-expected.txt: * platform/mac/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-objectBoundingBox-expected.txt: * platform/mac/svg/filters/feImage-filterUnits-userSpaceOnUse-primitiveUnits-userSpaceOnUse-expected.txt: * platform/mac/svg/filters/feImage-late-indirect-update-expected.txt: * platform/mac/svg/hixie/cascade/001-broken-expected.txt: * platform/mac/svg/hixie/cascade/002-expected.txt: * platform/mac/svg/hixie/error/001-expected.txt: * platform/mac/svg/hixie/error/003-expected.txt: * platform/mac/svg/hixie/error/017-expected.txt: * platform/mac/svg/hixie/mixed/003-expected.txt: * platform/mac/svg/hixie/mixed/004-expected.txt: * platform/mac/svg/hixie/mixed/005-expected.txt: * platform/mac/svg/hixie/mixed/006-expected.txt: * platform/mac/svg/hixie/mixed/008-expected.txt: * platform/mac/svg/hixie/mixed/011-expected.txt: * platform/mac/svg/hixie/perf/001-expected.txt: * platform/mac/svg/hixie/perf/002-expected.txt: * platform/mac/svg/hixie/perf/007-expected.txt: * platform/mac/svg/hixie/rendering-model/001-expected.txt: * platform/mac/svg/hixie/rendering-model/002-expected.txt: * platform/mac/svg/hixie/shapes/path/001-expected.txt: * platform/mac/svg/hixie/transform/001-expected.txt: * platform/mac/svg/in-html/circle-expected.txt: * platform/mac/svg/stroke/zero-length-arc-linecaps-rendering-expected.txt: * platform/mac/svg/stroke/zero-length-path-linecap-rendering-expected.txt: * platform/mac/svg/stroke/zero-length-subpaths-linecap-rendering-expected.txt: * platform/mac/svg/text/small-fonts-3-expected.txt: * platform/mac/svg/text/text-align-01-b-expected.txt: * platform/mac/svg/text/text-align-05-b-expected.txt: * platform/mac/svg/text/text-fill-opacity-expected.txt: * platform/mac/svg/transforms/svg-css-transforms-clip-path-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-hixie-mixed-008-expected.txt: * platform/mac/svg/zoom/page/zoom-img-preserveAspectRatio-support-1-expected.txt: * platform/mac/svg/zoom/page/zoom-mask-with-percentages-expected.txt: * platform/mac/svg/zoom/page/zoom-svg-through-object-with-auto-size-expected.txt: * platform/mac/svg/zoom/text/zoom-hixie-mixed-008-expected.txt: * platform/qt/Skipped: * platform/win/Skipped: * svg/clip-path/clip-in-mask-objectBoundingBox-expected.txt: * svg/clip-path/clip-in-mask-userSpaceOnUse-expected.txt: * svg/clip-path/clip-path-childs-clipped-expected.txt: * svg/clip-path/clip-path-clipped-evenodd-twice-expected.txt: * svg/clip-path/clip-path-clipped-expected.txt: * svg/clip-path/clip-path-clipped-nonzero-expected.txt: * svg/clip-path/clip-path-css-transform-1-expected.txt: * svg/clip-path/clip-path-css-transform-2-expected.txt: * svg/clip-path/clip-path-objectBoundingBox-expected.txt: * svg/clip-path/clip-path-on-clipped-use-expected.txt: * svg/clip-path/clip-path-on-g-and-child-expected.txt: * svg/clip-path/clip-path-on-g-expected.txt: * svg/clip-path/clip-path-on-svg-and-child-expected.txt: * svg/clip-path/clip-path-on-svg-expected.txt: * svg/clip-path/clip-path-transform-2-expected.txt: * svg/clip-path/clip-path-use-as-child-expected.txt: * svg/css/circle-in-mask-with-shadow-expected.txt: * svg/css/mask-with-shadow-expected.txt: * svg/custom/absolute-root-position-masking-expected.txt: * svg/custom/fill-opacity-update-expected.txt: * svg/custom/gradient-stroke-width-expected.txt: * svg/custom/js-late-marker-and-object-creation-expected.txt: * svg/custom/js-late-marker-creation-expected.txt: * svg/custom/js-update-bounce-expected.txt: * svg/custom/marker-changes-expected.txt: * svg/custom/marker-child-changes-css-expected.txt: * svg/custom/marker-child-changes-expected.txt: * svg/custom/marker-strokeWidth-changes-expected.txt: * svg/custom/marker-viewBox-changes-expected.txt: * svg/custom/object-sizing-no-width-height-change-content-box-size-expected.txt: * svg/custom/pattern-scaled-pattern-space-expected.txt: * svg/custom/resource-invalidate-on-target-update-expected.txt: * svg/custom/stroke-opacity-update-expected.txt: * svg/custom/use-setAttribute-crash-expected.txt: * svg/custom/viewBox-hit-expected.txt: * svg/filters/feImage-reference-svg-primitive-expected.txt: * svg/filters/filter-clip-expected.txt: * svg/filters/invalidate-on-child-layout-expected.txt: * svg/hittest/svg-ellipse-expected.txt: Added. * svg/hittest/svg-ellipse-non-scale-stroke-expected.txt: Added. * svg/hittest/svg-ellipse-non-scale-stroke.xhtml: Added. * svg/hittest/svg-ellipse.xhtml: Added. * svg/hixie/links/001-expected.txt: Canonical link: https://commits.webkit.org/100054@main git-svn-id: https://svn.webkit.org/repository/webkit/trunk@112667 268f45cc-cd09-0410-ab3c-d52691b4dbfc
2012-03-30 15:37:16 +00:00
var resultString = "";
var ellipseElement = document.getElementById("ellipse");
var pointsInEllipse = [
{x: 150, y: 150},
{x: 275, y: 150},
{x: 250, y: 225}
];
var pointsNotInEllipse = [
{x: 0, y: 0},
{x: 275, y: 250}
];
var pointsOnEllipseStroke = [
{x: 275, y: 250}, // outer stroke
{x: 300, y: 200} // inner stroke
];
var pointsNotOnEllipseStroke = [
{x: 375, y: 375}, // outside ellipse
{x: 0, y: 0}, // outside ellipse
{x: 150, y: 150} // inside ellipse
];
ellipseElement.style.setProperty("pointer-events", "visibleFill"); // only capture events on the fill
pointsInEllipse.forEach( function(point) {
var pass = (ellipseElement == document.elementFromPoint(point.x, point.y));
resultString += ((pass) ? "PASS" : "FAIL") + " ellipse contains point at (" + point.x + ", " + point.y + ")\n";
});
pointsNotInEllipse.forEach( function(point) {
var pass = (ellipseElement != document.elementFromPoint(point.x, point.y));
resultString += ((pass) ? "PASS" : "FAIL") + " ellipse does not contain point at (" + point.x + ", " + point.y + ")\n";
});
ellipseElement.style.setProperty("pointer-events", "visibleStroke"); // only capture events on the stroke
pointsOnEllipseStroke.forEach( function(point) {
var pass = (ellipseElement == document.elementFromPoint(point.x, point.y));
resultString += ((pass) ? "PASS" : "FAIL") + " ellipse stroke contains point at (" + point.x + ", " + point.y + ")\n";
});
pointsNotOnEllipseStroke.forEach( function(point) {
var pass = (ellipseElement != document.elementFromPoint(point.x, point.y));
resultString += ((pass) ? "PASS" : "FAIL") + " ellipse stroke does not contain point at (" + point.x + ", " + point.y + ")\n";
});
document.getElementById("console").innerHTML = resultString;
]]></script>
</body>
</html>