2010-04-24 Nikolas Zimmermann <nzimmermann@rim.com>
authorzimmermann@webkit.org <zimmermann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 24 Apr 2010 11:42:46 +0000 (11:42 +0000)
committerzimmermann@webkit.org <zimmermann@webkit.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sat, 24 Apr 2010 11:42:46 +0000 (11:42 +0000)
commit50853303a4d32c5c985c215ca38a445f227b3d9a
tree090497b43610ecbe4a5a458390ba5102b065a72d
parent84098893657c2ad720909a64e91bfc933d2682f7
2010-04-24  Nikolas Zimmermann  <nzimmermann@rim.com>

        Reviewed by Dirk Schulze.

        SVGPaintServer needs to be converted to the new RenderSVGResource* system
        https://bugs.webkit.org/show_bug.cgi?id=37986

        Huge speedup for SVG painting using paint servers (gradient/patterns). Cache underlying
        WebCore::Gradient/Pattern datastructures, do not rebuild them on every painting. This marks
        the finish of the SVGResource -> RenderSVGResource transition.

        Outline of same key changes:
        - RenderSVGResource is an abstract base class now, and the previous class is now named RenderSVGResourceContainer
          All resources except RenderSVGResourceSolidColor now inherit from RenderSVGResourceContainer, as they are all
          associated with a SVG*Element class. RenderSVGResourceSolidColor inherits from RenderSVGResource, and is not
          associated with any SVG*Element class. RenderSVGResourceSolidColor is not a render tree object, despite its name.
          The reason for that is consistency with all other painting resources.
        - RenderSVGResourceSolidColor does not live in the render tree, and exists only as static object, which is shared
          and always used when filling/stroking with solid colors - just like the old SVGPaintServerSolid.
        - RenderSVGResourceGradient/RenderSVGResourcePattern now store the underlying WebCore::Gradient/Pattern object
          instead of rebuilding it everytime we're asked to paint -> this is the main difference with the old concept, leading
          to much faster speed.
        - SVGResource has vanished. All resources (clipper/filter/marker/masker/gradient/pattern) now share the same codepaths
          to handle updates and client invalidation - which is a huge benefit, and makes the code easier to understand.

        * Android.mk: Remove svg/graphics/SVGResource*, svg/graphics/SVGPaintServer.h from build.
        * GNUmakefile.am: Ditto.
        * WebCore.gypi: Ditto.
        * WebCore.pro: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * platform/graphics/Gradient.cpp: Add addColorStop() method taking a ColorStop const-reference.
        (WebCore::Gradient::addColorStop):
        * platform/graphics/Gradient.h: Ditto.
        * platform/graphics/TextRun.h: Rename SVGPaintServer to RenderSVGResource
        (WebCore::TextRun::TextRun):
        (WebCore::TextRun::activePaintingResource): Renamed from activePaintServer.
        (WebCore::TextRun::setActivePaintingResource): Renamed from setActivePaintServer.
        * platform/graphics/win/GraphicsContextWin.cpp: Remove references to SVGResourceImage, which was removed a long time ago.
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::toRenderSVGResourceContainer): Renamed from toRenderSVGResource().
        * rendering/RenderObject.h:
        (WebCore::RenderObject::isSVGGradientStop): Added.
        (WebCore::RenderObject::isSVGResourceContainer): Renamed from isSVGResource().
        * rendering/RenderPath.cpp: Utilize RenderSVGResource::fill/strokePaintingResource to request paint servers, instead of SVGPaintServer.
        (WebCore::RenderPath::fillContains): Adapt to new concept.
        (WebCore::RenderPath::strokeContains): Ditto.
        (WebCore::fillAndStrokePath): Ditto.
        (WebCore::RenderPath::paint): Ditto.
        * rendering/RenderSVGGradientStop.cpp:
        (WebCore::RenderSVGGradientStop::styleDidChange): Ditto.
        * rendering/RenderSVGGradientStop.h: Fixed indention.
        * rendering/RenderSVGResource.cpp: Refactored old SVGPaintServer code to request fill/stroke painting resources, splitted up in several methods to aid readability.
        (WebCore::registerPendingResource):
        (WebCore::adjustColorForPseudoRules):
        (WebCore::RenderSVGResource::fillPaintingResource):
        (WebCore::RenderSVGResource::strokePaintingResource):
        (WebCore::RenderSVGResource::sharedSolidPaintingResource):
        (WebCore::RenderSVGResource::markForLayoutAndResourceInvalidation):
        * rendering/RenderSVGResource.h: Make RenderSVGResource an abstract base class, see above for the reasoning.
        (WebCore::RenderSVGResource::RenderSVGResource):
        (WebCore::RenderSVGResource::~RenderSVGResource):
        (WebCore::RenderSVGResource::postApplyResource):
        * rendering/RenderSVGResourceClipper.cpp: Inherit from RenderSVGResourceContainer instead of RenderSVGResource.
        (WebCore::RenderSVGResourceClipper::RenderSVGResourceClipper):
        (WebCore::RenderSVGResourceClipper::invalidateClient):
        (WebCore::RenderSVGResourceClipper::applyResource): Adapt to signature changes (add RenderStyle* and resource mode parameters)
        (WebCore::RenderSVGResourceClipper::applyClippingToContext):
        * rendering/RenderSVGResourceClipper.h:
        * rendering/RenderSVGResourceContainer.h: Added. Renamed from RenderSVGResource. Now inherits from RenderSVGHiddenContainer and RenderSVGResource.
        (WebCore::RenderSVGResourceContainer::RenderSVGResourceContainer):
        (WebCore::RenderSVGResourceContainer::~RenderSVGResourceContainer):
        (WebCore::RenderSVGResourceContainer::idChanged):
        (WebCore::RenderSVGResourceContainer::isSVGResourceContainer):
        (WebCore::RenderSVGResourceContainer::drawsContents):
        (WebCore::RenderSVGResourceContainer::toRenderSVGResourceContainer):
        (WebCore::getRenderSVGResourceContainerById):
        (WebCore::getRenderSVGResourceById):
        * rendering/RenderSVGResourceFilter.cpp: Inherit from RenderSVGResourceContainer instead of RenderSVGResource.
        (WebCore::RenderSVGResourceFilter::RenderSVGResourceFilter):
        (WebCore::RenderSVGResourceFilter::invalidateClient):
        (WebCore::RenderSVGResourceFilter::applyResource): Adapt to signature changes (add RenderStyle* and resource mode parameters)
        (WebCore::RenderSVGResourceFilter::postApplyResource):
        * rendering/RenderSVGResourceFilter.h:
        * rendering/RenderSVGResourceGradient.cpp: Moved from SVGPaintServerGradient, cleaned up and refactored.
        (WebCore::RenderSVGResourceGradient::RenderSVGResourceGradient):
        (WebCore::RenderSVGResourceGradient::~RenderSVGResourceGradient):
        (WebCore::RenderSVGResourceGradient::invalidateClients):
        (WebCore::RenderSVGResourceGradient::invalidateClient):
        (WebCore::createMaskAndSwapContextForTextGradient):
        (WebCore::clipToTextMask):
        (WebCore::RenderSVGResourceGradient::applyResource):
        * rendering/RenderSVGResourceGradient.h:
        (WebCore::RenderSVGResourceGradient::resourceBoundingBox):
        * rendering/RenderSVGResourceLinearGradient.cpp: Moved from SVGPaintServerLinearGradient, cleaned up and refactored.
        (WebCore::RenderSVGResourceLinearGradient::RenderSVGResourceLinearGradient):
        (WebCore::RenderSVGResourceLinearGradient::~RenderSVGResourceLinearGradient):
        (WebCore::RenderSVGResourceLinearGradient::buildGradient):
        * rendering/RenderSVGResourceLinearGradient.h:
        (WebCore::RenderSVGResourceLinearGradient::renderName):
        (WebCore::RenderSVGResourceLinearGradient::resourceType):
        * rendering/RenderSVGResourceMarker.cpp: Inherit from RenderSVGResourceContainer instead of RenderSVGResource.
        (WebCore::RenderSVGResourceMarker::RenderSVGResourceMarker):
        (WebCore::RenderSVGResourceMarker::invalidateClient):
        * rendering/RenderSVGResourceMarker.h:
        (WebCore::RenderSVGResourceMarker::applyResource):
        * rendering/RenderSVGResourceMasker.cpp: Inherit from RenderSVGResourceContainer instead of RenderSVGResource.
        (WebCore::RenderSVGResourceMasker::RenderSVGResourceMasker):
        (WebCore::RenderSVGResourceMasker::invalidateClient):
        (WebCore::RenderSVGResourceMasker::applyResource):
        * rendering/RenderSVGResourceMasker.h:
        (WebCore::MaskerData::MaskerData):
        * rendering/RenderSVGResourcePattern.cpp: Moved from SVGPaintServerPattern, cleaned up and refactored.
        (WebCore::RenderSVGResourcePattern::RenderSVGResourcePattern):
        (WebCore::RenderSVGResourcePattern::~RenderSVGResourcePattern):
        (WebCore::RenderSVGResourcePattern::invalidateClients):
        (WebCore::RenderSVGResourcePattern::invalidateClient):
        (WebCore::RenderSVGResourcePattern::applyResource):
        (WebCore::RenderSVGResourcePattern::postApplyResource):
        (WebCore::calculatePatternBoundaries):
        (WebCore::RenderSVGResourcePattern::calculatePatternBoundariesIncludingOverflow):
        (WebCore::RenderSVGResourcePattern::createTileImage):
        (WebCore::RenderSVGResourcePattern::buildPattern):
        * rendering/RenderSVGResourcePattern.h:
        (WebCore::RenderSVGResourcePattern::renderName):
        (WebCore::RenderSVGResourcePattern::resourceBoundingBox):
        (WebCore::RenderSVGResourcePattern::resourceType):
        * rendering/RenderSVGResourceRadialGradient.cpp: Moved from SVGPaintServerRadialGradient, cleaned up and refactored.
        (WebCore::RenderSVGResourceRadialGradient::RenderSVGResourceRadialGradient):
        (WebCore::RenderSVGResourceRadialGradient::~RenderSVGResourceRadialGradient):
        (WebCore::RenderSVGResourceRadialGradient::buildGradient):
        * rendering/RenderSVGResourceRadialGradient.h:
        (WebCore::RenderSVGResourceRadialGradient::renderName):
        (WebCore::RenderSVGResourceRadialGradient::resourceType):
        * rendering/RenderSVGResourceSolidColor.cpp: Moved from SVGPaintServerSolid, cleaned up and refactored.
        (WebCore::RenderSVGResourceSolidColor::RenderSVGResourceSolidColor):
        (WebCore::RenderSVGResourceSolidColor::~RenderSVGResourceSolidColor):
        (WebCore::RenderSVGResourceSolidColor::applyResource):
        (WebCore::RenderSVGResourceSolidColor::postApplyResource):
        * rendering/RenderSVGResourceSolidColor.h:
        (WebCore::RenderSVGResourceSolidColor::invalidateClients):
        (WebCore::RenderSVGResourceSolidColor::invalidateClient):
        (WebCore::RenderSVGResourceSolidColor::resourceBoundingBox):
        (WebCore::RenderSVGResourceSolidColor::resourceType):
        (WebCore::RenderSVGResourceSolidColor::color):
        (WebCore::RenderSVGResourceSolidColor::setColor):
        * rendering/RenderSVGText.cpp:
        (WebCore::RenderSVGText::paint): Early exit if painting is disabled.
        * rendering/RenderTreeAsText.cpp:
        (WebCore::write): Add RenderSVGGradientStop dumping.
        (WebCore::externalRepresentation): Remove SVGResource dumping.
        * rendering/SVGInlineTextBox.cpp: Adapt to SVGPaintServer changes (paint server request).
        (WebCore::SVGInlineTextBox::paintCharacters):
        (WebCore::SVGInlineTextBox::paintDecoration):
        * rendering/SVGInlineTextBox.h: Ditto.
        (WebCore::SVGTextPaintInfo::SVGTextPaintInfo):
        * rendering/SVGRenderSupport.cpp: Ditto.
        (WebCore::SVGRenderBase::prepareToRenderSVGContent):
        (WebCore::SVGRenderBase::finishRenderSVGContent):
        (WebCore::invalidatePaintingResource):
        (WebCore::deregisterFromResources):
        (WebCore::dashArrayFromRenderingStyle): Moved here from SVGPaintServer.
        (WebCore::applyStrokeStyleToContext): Ditto.
        * rendering/SVGRenderSupport.h:
        * rendering/SVGRenderTreeAsText.cpp: Add new gradient/pattern dumping code. Stops are now properly dumped as well!
        (WebCore::operator<<):
        (WebCore::writeSVGPaintingResource):
        (WebCore::writeStyle):
        (WebCore::boundingBoxModeString):
        (WebCore::writeCommonGradientProperties):
        (WebCore::writeSVGResourceContainer):
        (WebCore::writeSVGGradientStop):
        * rendering/SVGRenderTreeAsText.h:
        * rendering/SVGRootInlineBox.cpp: Adapt to SVGPaintServer changes (paint server request).
        (WebCore::SVGRootInlineBoxPaintWalker::SVGRootInlineBoxPaintWalker):
        (WebCore::SVGRootInlineBoxPaintWalker::~SVGRootInlineBoxPaintWalker):
        (WebCore::SVGRootInlineBoxPaintWalker::teardownFillPaintServer):
        (WebCore::SVGRootInlineBoxPaintWalker::teardownStrokePaintServer):
        (WebCore::SVGRootInlineBoxPaintWalker::setupBackground):
        (WebCore::SVGRootInlineBoxPaintWalker::setupFill):
        (WebCore::SVGRootInlineBoxPaintWalker::setupFillSelection):
        (WebCore::SVGRootInlineBoxPaintWalker::setupStroke):
        (WebCore::SVGRootInlineBoxPaintWalker::setupStrokeSelection):
        (WebCore::SVGRootInlineBoxPaintWalker::setupForeground):
        (WebCore::SVGRootInlineBoxPaintWalker::activePaintingResource):
        (WebCore::SVGRootInlineBoxPaintWalker::paintChunk):
        * svg/GradientAttributes.h: Remove SVGGradientStop, use Gradient::ColorStop vector. Cleanup.
        (WebCore::GradientAttributes::stops):
        (WebCore::GradientAttributes::setStops):
        * svg/LinearGradientAttributes.h: Move ENABLE(SVG) guard to correct location.
        * svg/PatternAttributes.h: Add missing includes and class forwards.
        * svg/RadialGradientAttributes.h: Move ENABLE(SVG) guard to correct location.
        * svg/SVGClipPathElement.cpp: Rename invalidateCanvasResources() to invalidateResourceClients().
        (WebCore::SVGClipPathElement::svgAttributeChanged):
        (WebCore::SVGClipPathElement::childrenChanged): Only call invalidateResourceClients() when !changedByParser is set.
        * svg/SVGClipPathElement.h:
        * svg/SVGDocumentExtensions.cpp: Change HashMaps to hash AtomicStrings instead of Strings. Rename RenderSVGResource to RenderSVGResourceContainer.
        (WebCore::SVGDocumentExtensions::addResource):
        (WebCore::SVGDocumentExtensions::removeResource):
        (WebCore::SVGDocumentExtensions::resourceById):
        (WebCore::SVGDocumentExtensions::addPendingResource):
        * svg/SVGDocumentExtensions.h:
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::insertedIntoDocument): Remove reference to SVGResource::invalidateClients(), handled differently now.
        (WebCore::SVGElement::updateAnimatedSVGAttribute): Change assertion, that is incorrect now.
        * svg/SVGElement.h: Make updateAnimatedSVGAttribute() public.
        * svg/SVGFont.cpp: Adapt to SVGPaintServer changes (paint server request).
        (WebCore::Font::drawTextUsingSVGFont):
        * svg/SVGGElement.cpp: If style()->display() is NONE, create a RenderSVGHiddenContainer, removing hacks in SVGStopElement for pservers-grad-19-b.svg (yes, SVG is crazy.)
        (WebCore::SVGGElement::createRenderer):
        * svg/SVGGElement.h: Remove childrenChanged() method which _always_ called renderer->setNeedsLayout(true), which is completly wrong and unnecessary.
        (WebCore::SVGGElement::rendererIsNeeded): Always return true.
        * svg/SVGGradientElement.cpp: Adapt to new RenderSVGResourceGradient code.
        (WebCore::SVGGradientElement::svgAttributeChanged):
        (WebCore::SVGGradientElement::childrenChanged): Only call invalidateResourceClients() when !changedByParser is set.
        (WebCore::SVGGradientElement::buildStops):
        * svg/SVGGradientElement.h:
        * svg/SVGLinearGradientElement.cpp: Adapt to new RenderSVGResourceLinearGradient code.
        (WebCore::SVGLinearGradientElement::svgAttributeChanged):
        (WebCore::SVGLinearGradientElement::createRenderer):
        (WebCore::SVGLinearGradientElement::collectGradientProperties):
        (WebCore::SVGLinearGradientElement::calculateStartEndPoints):
        * svg/SVGLinearGradientElement.h:
        * svg/SVGMarkerElement.cpp: Rename invalidateCanvasResources() to invalidateResourceClients().
        (WebCore::SVGMarkerElement::svgAttributeChanged):
        (WebCore::SVGMarkerElement::childrenChanged): Only call invalidateResourceClients() when !changedByParser is set.
        (WebCore::SVGMarkerElement::setOrientToAuto):
        (WebCore::SVGMarkerElement::setOrientToAngle):
        * svg/SVGMaskElement.cpp: Rename invalidateCanvasResources() to invalidateResourceClients().
        (WebCore::SVGMaskElement::svgAttributeChanged):
        (WebCore::SVGMaskElement::childrenChanged): Only call invalidateResourceClients() when !changedByParser is set.
        * svg/SVGPatternElement.cpp: Rename invalidateCanvasResources() to invalidateResourceClients().
        (WebCore::SVGPatternElement::svgAttributeChanged):
        (WebCore::SVGPatternElement::childrenChanged): Only call invalidateResourceClients() when !changedByParser is set.
        (WebCore::SVGPatternElement::createRenderer):
        * svg/SVGPatternElement.h:
        * svg/SVGPolyElement.h: Remove unneded rendererIsNeeded() override.
        * svg/SVGRadialGradientElement.cpp: Adapt to new RenderSVGResourceRadialGradient code.
        (WebCore::SVGRadialGradientElement::svgAttributeChanged):
        (WebCore::SVGRadialGradientElement::createRenderer):
        (WebCore::SVGRadialGradientElement::collectGradientProperties):
        (WebCore::SVGRadialGradientElement::calculateFocalCenterPointsAndRadius):
        * svg/SVGRadialGradientElement.h:
        * svg/SVGStopElement.cpp: Clean up code, moved stop color calculation from SVGGradientElement to here, where it belongs.
        (WebCore::SVGStopElement::parseMappedAttribute):
        (WebCore::SVGStopElement::stopColorIncludingOpacity):
        * svg/SVGStopElement.h:
        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::~SVGStyledElement):
        (WebCore::SVGStyledElement::svgAttributeChanged): Only invalidateResourcesInAncestorChain()/deregisterFromResources() when we're not parsing.
        (WebCore::SVGStyledElement::invalidateResourcesInAncestorChain): Early exit if we find a parent resources, there is no resource nesting.
        (WebCore::SVGStyledElement::invalidateResourceClients): Renamed from invalidateCanvasResources()
        (WebCore::SVGStyledElement::childrenChanged): Only invalidate SVGElementInstances when !changedByParser is set.
        * svg/SVGStyledElement.h: Remove canvasResource() logic, remove detach() method.
        * svg/SVGTextPathElement.h:
        * svg/graphics/SVGPaintServer.h: Removed.
        * svg/graphics/SVGResource.cpp: Removed.
        * svg/graphics/SVGResource.h: Removed.
2010-04-24  Nikolas Zimmermann  <nzimmermann@rim.com>

        Reviewed by Dirk Schulze.

        SVGPaintServer needs to be converted to the new RenderSVGResource* system
        https://bugs.webkit.org/show_bug.cgi?id=37986

        Rebaseline SVG tests, after the RenderSVGResource transition.

        NOTE: This WILL affect _any_ platform with custom svg results for tests using gradients/patterns.
              That means I have to wait for the bot results, and update them ASAP. Therefore landing out
              of california business hours and on the weekend - please stay tuned I'll fix any breakages soon.
              (Except for chromium whose test results are not available on build.webkit.org, sorry.)

        * platform/mac/svg/W3C-SVG-1.1/animate-elem-31-t-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/animate-elem-78-t-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/color-prop-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/coords-units-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-color-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/filters-comptran-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/masking-mask-01-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/masking-mask-01-b-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/masking-mask-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/painting-render-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-02-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-03-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-04-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-05-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-05-b-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-05-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-06-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-07-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-09-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-10-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-11-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-12-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-13-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-14-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-15-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-16-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-17-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-18-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-19-b-expected.checksum:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-19-b-expected.png:
        * platform/mac/svg/W3C-SVG-1.1/pservers-grad-19-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/pservers-pattern-01-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/struct-group-03-t-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/struct-use-05-b-expected.txt:
        * platform/mac/svg/W3C-SVG-1.1/styling-inherit-01-b-expected.txt:
        * platform/mac/svg/batik/filters/feTile-expected.txt:
        * platform/mac/svg/batik/masking/maskRegions-expected.txt:
        * platform/mac/svg/batik/paints/gradientLimit-expected.txt:
        * platform/mac/svg/batik/paints/patternPreserveAspectRatioA-expected.txt:
        * platform/mac/svg/batik/paints/patternRegionA-expected.txt:
        * platform/mac/svg/batik/paints/patternRegions-expected.txt:
        * platform/mac/svg/batik/text/textEffect-expected.txt:
        * platform/mac/svg/batik/text/textEffect2-expected.txt:
        * platform/mac/svg/batik/text/textEffect3-expected.txt:
        * platform/mac/svg/batik/text/textProperties-expected.txt:
        * platform/mac/svg/carto.net/colourpicker-expected.txt:
        * platform/mac/svg/carto.net/tabgroup-expected.txt:
        * platform/mac/svg/css/circle-in-mask-with-shadow-expected.txt:
        * platform/mac/svg/css/mask-with-shadow-expected.txt:
        * platform/mac/svg/custom/broken-internal-references-expected.txt:
        * platform/mac/svg/custom/deep-dynamic-updates-expected.txt:
        * platform/mac/svg/custom/dominant-baseline-hanging-expected.checksum:
        * platform/mac/svg/custom/dominant-baseline-hanging-expected.png:
        * platform/mac/svg/custom/dominant-baseline-hanging-expected.txt:
        * platform/mac/svg/custom/feComponentTransfer-Discrete-expected.txt:
        * platform/mac/svg/custom/feComponentTransfer-Gamma-expected.txt:
        * platform/mac/svg/custom/feComponentTransfer-Linear-expected.txt:
        * platform/mac/svg/custom/feComponentTransfer-Table-expected.txt:
        * platform/mac/svg/custom/fill-fallback-expected.txt:
        * platform/mac/svg/custom/gradient-add-stops-expected.txt:
        * platform/mac/svg/custom/gradient-attr-update-expected.txt:
        * platform/mac/svg/custom/gradient-cycle-detection-expected.txt:
        * platform/mac/svg/custom/gradient-deep-referencing-expected.txt:
        * platform/mac/svg/custom/gradient-rotated-bbox-expected.txt:
        * platform/mac/svg/custom/gradient-stop-corner-cases-expected.txt:
        * platform/mac/svg/custom/gradient-stop-style-change-expected.txt:
        * platform/mac/svg/custom/gradient-stroke-width-expected.checksum:
        * platform/mac/svg/custom/gradient-stroke-width-expected.png:
        * platform/mac/svg/custom/gradient-stroke-width-expected.txt:
        * platform/mac/svg/custom/gradient-userSpaceOnUse-with-percentage-expected.txt:
        * platform/mac/svg/custom/grayscale-gradient-mask-expected.txt:
        * platform/mac/svg/custom/group-opacity-expected.txt:
        * platform/mac/svg/custom/inline-svg-in-xhtml-expected.txt:
        * platform/mac/svg/custom/invalid-css-expected.txt:
        * platform/mac/svg/custom/js-late-gradient-and-object-creation-expected.txt:
        * platform/mac/svg/custom/js-late-gradient-creation-expected.txt:
        * platform/mac/svg/custom/js-late-pattern-and-object-creation-expected.txt:
        * platform/mac/svg/custom/js-late-pattern-creation-expected.txt:
        * platform/mac/svg/custom/js-update-gradient-expected.checksum:
        * platform/mac/svg/custom/js-update-gradient-expected.png:
        * platform/mac/svg/custom/js-update-gradient-expected.txt:
        * platform/mac/svg/custom/js-update-pattern-child-expected.txt:
        * platform/mac/svg/custom/js-update-pattern-expected.txt:
        * platform/mac/svg/custom/js-update-stop-expected.txt:
        * platform/mac/svg/custom/large-bounding-box-percents-expected.txt:
        * platform/mac/svg/custom/pattern-cycle-detection-expected.txt:
        * platform/mac/svg/custom/pattern-deep-referencing-expected.txt:
        * platform/mac/svg/custom/pattern-excessive-malloc-expected.txt:
        * platform/mac/svg/custom/pattern-in-defs-expected.txt:
        * platform/mac/svg/custom/pattern-rotate-expected.txt:
        * platform/mac/svg/custom/pattern-size-bigger-than-target-size-expected.txt:
        * platform/mac/svg/custom/pattern-skew-transformed-expected.txt:
        * platform/mac/svg/custom/pattern-with-transformation-expected.txt:
        * platform/mac/svg/custom/pattern-y-offset-expected.txt:
        * platform/mac/svg/custom/resource-client-removal-expected.txt:
        * platform/mac/svg/custom/stroke-fallback-expected.txt:
        * platform/mac/svg/custom/stroked-pattern-expected.txt:
        * platform/mac/svg/custom/text-gradient-no-content-expected.txt:
        * platform/mac/svg/custom/use-on-symbol-inside-pattern-expected.txt:
        * platform/mac/svg/custom/use-recalcStyle-crash-expected.txt:
        * platform/mac/svg/filters/big-sized-filter-expected.txt:
        * platform/mac/svg/filters/feDisplacementMap-expected.txt:
        * platform/mac/svg/filters/feTile-expected.txt:
        * platform/mac/svg/filters/filterRes-expected.txt:
        * platform/mac/svg/hixie/error/003-expected.txt:
        * platform/mac/svg/hixie/perf/005-expected.txt:
        * platform/mac/svg/hixie/perf/006-expected.txt:
        * platform/mac/svg/text/selection-background-color-expected.txt:
        * platform/mac/svg/text/selection-styles-expected.txt:
        * platform/mac/svg/text/text-gradient-positioning-expected.txt:
        * platform/mac/svg/transforms/text-with-pattern-inside-transformed-html-expected.txt:
        * platform/mac/svg/transforms/text-with-pattern-with-svg-transform-expected.txt:
        * platform/win/svg/custom/broken-internal-references-expected.txt:
        * svg/custom/gradient-with-1d-boundingbox-expected.txt:
        * svg/custom/radial-gradient-with-outstanding-focalPoint-expected.txt:

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@58212 268f45cc-cd09-0410-ab3c-d52691b4dbfc
196 files changed:
LayoutTests/ChangeLog
LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-31-t-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/animate-elem-78-t-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/color-prop-01-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/coords-units-01-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/filters-color-01-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/filters-comptran-01-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-mask-01-b-expected.checksum
LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-mask-01-b-expected.png
LayoutTests/platform/mac/svg/W3C-SVG-1.1/masking-mask-01-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/painting-render-01-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-01-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-02-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-03-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-04-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-05-b-expected.checksum
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-05-b-expected.png
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-05-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-06-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-07-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-08-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-09-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-10-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-11-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-12-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-13-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-14-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-15-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-16-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-17-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-18-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-19-b-expected.checksum
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-19-b-expected.png
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-grad-19-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/pservers-pattern-01-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/struct-group-03-t-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/struct-use-05-b-expected.txt
LayoutTests/platform/mac/svg/W3C-SVG-1.1/styling-inherit-01-b-expected.txt
LayoutTests/platform/mac/svg/batik/filters/feTile-expected.txt
LayoutTests/platform/mac/svg/batik/masking/maskRegions-expected.txt
LayoutTests/platform/mac/svg/batik/paints/gradientLimit-expected.txt
LayoutTests/platform/mac/svg/batik/paints/patternPreserveAspectRatioA-expected.txt
LayoutTests/platform/mac/svg/batik/paints/patternRegionA-expected.txt
LayoutTests/platform/mac/svg/batik/paints/patternRegions-expected.txt
LayoutTests/platform/mac/svg/batik/text/textEffect-expected.txt
LayoutTests/platform/mac/svg/batik/text/textEffect2-expected.txt
LayoutTests/platform/mac/svg/batik/text/textEffect3-expected.txt
LayoutTests/platform/mac/svg/batik/text/textProperties-expected.txt
LayoutTests/platform/mac/svg/carto.net/colourpicker-expected.txt
LayoutTests/platform/mac/svg/carto.net/tabgroup-expected.txt
LayoutTests/platform/mac/svg/css/circle-in-mask-with-shadow-expected.txt
LayoutTests/platform/mac/svg/css/mask-with-shadow-expected.txt
LayoutTests/platform/mac/svg/custom/broken-internal-references-expected.txt
LayoutTests/platform/mac/svg/custom/deep-dynamic-updates-expected.txt
LayoutTests/platform/mac/svg/custom/dominant-baseline-hanging-expected.checksum
LayoutTests/platform/mac/svg/custom/dominant-baseline-hanging-expected.png
LayoutTests/platform/mac/svg/custom/dominant-baseline-hanging-expected.txt
LayoutTests/platform/mac/svg/custom/feComponentTransfer-Discrete-expected.txt
LayoutTests/platform/mac/svg/custom/feComponentTransfer-Gamma-expected.txt
LayoutTests/platform/mac/svg/custom/feComponentTransfer-Linear-expected.txt
LayoutTests/platform/mac/svg/custom/feComponentTransfer-Table-expected.txt
LayoutTests/platform/mac/svg/custom/fill-fallback-expected.txt
LayoutTests/platform/mac/svg/custom/gradient-add-stops-expected.txt
LayoutTests/platform/mac/svg/custom/gradient-attr-update-expected.txt
LayoutTests/platform/mac/svg/custom/gradient-cycle-detection-expected.txt
LayoutTests/platform/mac/svg/custom/gradient-deep-referencing-expected.txt
LayoutTests/platform/mac/svg/custom/gradient-rotated-bbox-expected.txt
LayoutTests/platform/mac/svg/custom/gradient-stop-corner-cases-expected.txt
LayoutTests/platform/mac/svg/custom/gradient-stop-style-change-expected.txt
LayoutTests/platform/mac/svg/custom/gradient-stroke-width-expected.checksum
LayoutTests/platform/mac/svg/custom/gradient-stroke-width-expected.png
LayoutTests/platform/mac/svg/custom/gradient-stroke-width-expected.txt
LayoutTests/platform/mac/svg/custom/gradient-userSpaceOnUse-with-percentage-expected.txt
LayoutTests/platform/mac/svg/custom/grayscale-gradient-mask-expected.txt
LayoutTests/platform/mac/svg/custom/group-opacity-expected.txt
LayoutTests/platform/mac/svg/custom/inline-svg-in-xhtml-expected.txt
LayoutTests/platform/mac/svg/custom/invalid-css-expected.txt
LayoutTests/platform/mac/svg/custom/js-late-gradient-and-object-creation-expected.txt
LayoutTests/platform/mac/svg/custom/js-late-gradient-creation-expected.txt
LayoutTests/platform/mac/svg/custom/js-late-pattern-and-object-creation-expected.txt
LayoutTests/platform/mac/svg/custom/js-late-pattern-creation-expected.txt
LayoutTests/platform/mac/svg/custom/js-update-gradient-expected.checksum
LayoutTests/platform/mac/svg/custom/js-update-gradient-expected.png
LayoutTests/platform/mac/svg/custom/js-update-gradient-expected.txt
LayoutTests/platform/mac/svg/custom/js-update-pattern-child-expected.txt
LayoutTests/platform/mac/svg/custom/js-update-pattern-expected.txt
LayoutTests/platform/mac/svg/custom/js-update-stop-expected.txt
LayoutTests/platform/mac/svg/custom/large-bounding-box-percents-expected.txt
LayoutTests/platform/mac/svg/custom/pattern-cycle-detection-expected.txt
LayoutTests/platform/mac/svg/custom/pattern-deep-referencing-expected.txt
LayoutTests/platform/mac/svg/custom/pattern-excessive-malloc-expected.txt
LayoutTests/platform/mac/svg/custom/pattern-in-defs-expected.txt
LayoutTests/platform/mac/svg/custom/pattern-rotate-expected.txt
LayoutTests/platform/mac/svg/custom/pattern-size-bigger-than-target-size-expected.txt
LayoutTests/platform/mac/svg/custom/pattern-skew-transformed-expected.txt
LayoutTests/platform/mac/svg/custom/pattern-with-transformation-expected.txt
LayoutTests/platform/mac/svg/custom/pattern-y-offset-expected.txt
LayoutTests/platform/mac/svg/custom/resource-client-removal-expected.txt
LayoutTests/platform/mac/svg/custom/stroke-fallback-expected.txt
LayoutTests/platform/mac/svg/custom/stroked-pattern-expected.txt
LayoutTests/platform/mac/svg/custom/text-gradient-no-content-expected.txt
LayoutTests/platform/mac/svg/custom/use-on-symbol-inside-pattern-expected.txt
LayoutTests/platform/mac/svg/custom/use-recalcStyle-crash-expected.txt
LayoutTests/platform/mac/svg/filters/big-sized-filter-expected.txt
LayoutTests/platform/mac/svg/filters/feDisplacementMap-expected.txt
LayoutTests/platform/mac/svg/filters/feTile-expected.txt
LayoutTests/platform/mac/svg/filters/filterRes-expected.txt
LayoutTests/platform/mac/svg/hixie/error/003-expected.txt
LayoutTests/platform/mac/svg/hixie/perf/005-expected.txt
LayoutTests/platform/mac/svg/hixie/perf/006-expected.txt
LayoutTests/platform/mac/svg/text/selection-background-color-expected.txt
LayoutTests/platform/mac/svg/text/selection-styles-expected.txt
LayoutTests/platform/mac/svg/text/text-gradient-positioning-expected.txt
LayoutTests/platform/mac/svg/transforms/text-with-pattern-inside-transformed-html-expected.txt
LayoutTests/platform/mac/svg/transforms/text-with-pattern-with-svg-transform-expected.txt
LayoutTests/platform/win/svg/custom/broken-internal-references-expected.txt
LayoutTests/svg/custom/gradient-with-1d-boundingbox-expected.txt
LayoutTests/svg/custom/radial-gradient-with-outstanding-focalPoint-expected.txt
WebCore/Android.mk
WebCore/ChangeLog
WebCore/GNUmakefile.am
WebCore/WebCore.gypi
WebCore/WebCore.pro
WebCore/WebCore.vcproj/WebCore.vcproj
WebCore/WebCore.xcodeproj/project.pbxproj
WebCore/platform/graphics/Gradient.cpp
WebCore/platform/graphics/Gradient.h
WebCore/platform/graphics/TextRun.h
WebCore/platform/graphics/win/GraphicsContextWin.cpp
WebCore/rendering/RenderObject.cpp
WebCore/rendering/RenderObject.h
WebCore/rendering/RenderPath.cpp
WebCore/rendering/RenderSVGGradientStop.cpp
WebCore/rendering/RenderSVGGradientStop.h
WebCore/rendering/RenderSVGResource.cpp
WebCore/rendering/RenderSVGResource.h
WebCore/rendering/RenderSVGResourceClipper.cpp
WebCore/rendering/RenderSVGResourceClipper.h
WebCore/rendering/RenderSVGResourceContainer.h [new file with mode: 0644]
WebCore/rendering/RenderSVGResourceFilter.cpp
WebCore/rendering/RenderSVGResourceFilter.h
WebCore/rendering/RenderSVGResourceGradient.cpp
WebCore/rendering/RenderSVGResourceGradient.h
WebCore/rendering/RenderSVGResourceLinearGradient.cpp
WebCore/rendering/RenderSVGResourceLinearGradient.h
WebCore/rendering/RenderSVGResourceMarker.cpp
WebCore/rendering/RenderSVGResourceMarker.h
WebCore/rendering/RenderSVGResourceMasker.cpp
WebCore/rendering/RenderSVGResourceMasker.h
WebCore/rendering/RenderSVGResourcePattern.cpp
WebCore/rendering/RenderSVGResourcePattern.h
WebCore/rendering/RenderSVGResourceRadialGradient.cpp
WebCore/rendering/RenderSVGResourceRadialGradient.h
WebCore/rendering/RenderSVGResourceSolidColor.cpp
WebCore/rendering/RenderSVGResourceSolidColor.h
WebCore/rendering/RenderSVGText.cpp
WebCore/rendering/RenderTreeAsText.cpp
WebCore/rendering/SVGInlineTextBox.cpp
WebCore/rendering/SVGInlineTextBox.h
WebCore/rendering/SVGRenderSupport.cpp
WebCore/rendering/SVGRenderSupport.h
WebCore/rendering/SVGRenderTreeAsText.cpp
WebCore/rendering/SVGRenderTreeAsText.h
WebCore/rendering/SVGRootInlineBox.cpp
WebCore/svg/GradientAttributes.h
WebCore/svg/LinearGradientAttributes.h
WebCore/svg/PatternAttributes.h
WebCore/svg/RadialGradientAttributes.h
WebCore/svg/SVGClipPathElement.cpp
WebCore/svg/SVGClipPathElement.h
WebCore/svg/SVGDocumentExtensions.cpp
WebCore/svg/SVGDocumentExtensions.h
WebCore/svg/SVGElement.cpp
WebCore/svg/SVGElement.h
WebCore/svg/SVGFont.cpp
WebCore/svg/SVGGElement.cpp
WebCore/svg/SVGGElement.h
WebCore/svg/SVGGradientElement.cpp
WebCore/svg/SVGGradientElement.h
WebCore/svg/SVGLinearGradientElement.cpp
WebCore/svg/SVGLinearGradientElement.h
WebCore/svg/SVGMarkerElement.cpp
WebCore/svg/SVGMaskElement.cpp
WebCore/svg/SVGPatternElement.cpp
WebCore/svg/SVGPatternElement.h
WebCore/svg/SVGPolyElement.h
WebCore/svg/SVGRadialGradientElement.cpp
WebCore/svg/SVGRadialGradientElement.h
WebCore/svg/SVGStopElement.cpp
WebCore/svg/SVGStopElement.h
WebCore/svg/SVGStyledElement.cpp
WebCore/svg/SVGStyledElement.h
WebCore/svg/SVGTextPathElement.h
WebCore/svg/graphics/SVGPaintServer.h [deleted file]
WebCore/svg/graphics/SVGResource.cpp [deleted file]
WebCore/svg/graphics/SVGResource.h [deleted file]