Changeset 163316 in webkit


Ignore:
Timestamp:
Feb 3, 2014 10:52:12 AM (10 years ago)
Author:
akling@apple.com
Message:

CTTE: Grab bag of SVGRenderTreeAsText cleanups.
<https://webkit.org/b/128099>

Made some of the DRT SVG functions take more specific types than
RenderObject. Removed some redundant casts.

Reviewed by Anders Carlsson.

  • rendering/RenderTreeAsText.cpp:

(WebCore::write):

  • rendering/svg/SVGRenderTreeAsText.h:
  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::writeSVGResourceContainer):
(WebCore::writeSVGContainer):

Make writeSVGResourceContainer() and writeSVGContainer() take the
final type instead of RenderObject.

(WebCore::writeStyle):
(WebCore::writePositionAndStyle):

Make these take RenderElement instead of RenderObject.

(WebCore::writeChildren):

Use child renderer iterator.

(WebCore::writeResources):

Remove unnecessary cast.

Location:
trunk/Source/WebCore
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/Source/WebCore/ChangeLog

    r163310 r163316  
     12014-02-03  Andreas Kling  <akling@apple.com>
     2
     3        CTTE: Grab bag of SVGRenderTreeAsText cleanups.
     4        <https://webkit.org/b/128099>
     5
     6        Made some of the DRT SVG functions take more specific types than
     7        RenderObject. Removed some redundant casts.
     8
     9        Reviewed by Anders Carlsson.
     10
     11        * rendering/RenderTreeAsText.cpp:
     12        (WebCore::write):
     13        * rendering/svg/SVGRenderTreeAsText.h:
     14        * rendering/svg/SVGRenderTreeAsText.cpp:
     15        (WebCore::writeSVGResourceContainer):
     16        (WebCore::writeSVGContainer):
     17
     18            Make writeSVGResourceContainer() and writeSVGContainer() take the
     19            final type instead of RenderObject.
     20
     21        (WebCore::writeStyle):
     22        (WebCore::writePositionAndStyle):
     23
     24            Make these take RenderElement instead of RenderObject.
     25
     26        (WebCore::writeChildren):
     27
     28            Use child renderer iterator.
     29
     30        (WebCore::writeResources):
     31
     32            Remove unnecessary cast.
     33
    1342014-01-25  Darin Adler  <darin@apple.com>
    235
  • trunk/Source/WebCore/rendering/RenderTreeAsText.cpp

    r163079 r163316  
    6767#include "RenderSVGInlineText.h"
    6868#include "RenderSVGPath.h"
     69#include "RenderSVGResourceContainer.h"
    6970#include "RenderSVGRoot.h"
    7071#include "RenderSVGText.h"
     
    519520    }
    520521    if (o.isSVGResourceContainer()) {
    521         writeSVGResourceContainer(ts, o, indent);
     522        writeSVGResourceContainer(ts, toRenderSVGResourceContainer(o), indent);
    522523        return;
    523524    }
    524525    if (o.isSVGContainer()) {
    525         writeSVGContainer(ts, o, indent);
     526        writeSVGContainer(ts, toRenderSVGContainer(o), indent);
    526527        return;
    527528    }
  • trunk/Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp

    r163283 r163316  
    3636#include "NodeRenderStyle.h"
    3737#include "RenderImage.h"
     38#include "RenderIterator.h"
    3839#include "RenderSVGGradientStop.h"
    3940#include "RenderSVGImage.h"
     
    251252}
    252253
    253 static void writeStyle(TextStream& ts, const RenderObject& object)
    254 {
    255     const RenderStyle& style = object.style();
     254static void writeStyle(TextStream& ts, const RenderElement& renderer)
     255{
     256    const RenderStyle& style = renderer.style();
    256257    const SVGRenderStyle& svgStyle = style.svgStyle();
    257258
    258     if (!object.localTransform().isIdentity())
    259         writeNameValuePair(ts, "transform", object.localTransform());
     259    if (!renderer.localTransform().isIdentity())
     260        writeNameValuePair(ts, "transform", renderer.localTransform());
    260261    writeIfNotDefault(ts, "image rendering", style.imageRendering(), RenderStyle::initialImageRendering());
    261262    writeIfNotDefault(ts, "opacity", style.opacity(), RenderStyle::initialOpacity());
    262     if (object.isSVGShape()) {
    263         const RenderSVGShape& shape = static_cast<const RenderSVGShape&>(object);
     263    if (renderer.isSVGShape()) {
     264        const auto& shape = toRenderSVGShape(renderer);
    264265
    265266        Color fallbackColor;
     
    308309}
    309310
    310 static TextStream& writePositionAndStyle(TextStream& ts, const RenderObject& object)
    311 {
    312     ts << " " << enclosingIntRect(const_cast<RenderObject&>(object).absoluteClippedOverflowRect());
    313     writeStyle(ts, object);
     311static TextStream& writePositionAndStyle(TextStream& ts, const RenderElement& renderer)
     312{
     313    ts << " " << enclosingIntRect(renderer.absoluteClippedOverflowRect());
     314    writeStyle(ts, renderer);
    314315    return ts;
    315316}
     
    452453}
    453454
    454 static void writeChildren(TextStream& ts, const RenderObject& object, int indent)
    455 {
    456     for (RenderObject* child = object.firstChildSlow(); child; child = child->nextSibling())
    457         write(ts, *child, indent + 1);
     455static void writeChildren(TextStream& ts, const RenderElement& parent, int indent)
     456{
     457    for (const auto& child : childrenOfType<RenderObject>(parent))
     458        write(ts, child, indent + 1);
    458459}
    459460
     
    469470}
    470471
    471 void writeSVGResourceContainer(TextStream& ts, const RenderObject& object, int indent)
    472 {
    473     writeStandardPrefix(ts, object, indent);
    474 
    475     Element* element = toElement(object.node());
    476     const AtomicString& id = element->getIdAttribute();
     472void writeSVGResourceContainer(TextStream& ts, const RenderSVGResourceContainer& resource, int indent)
     473{
     474    writeStandardPrefix(ts, resource, indent);
     475
     476    const AtomicString& id = resource.element().getIdAttribute();
    477477    writeNameAndQuotedValue(ts, "id", id);   
    478 
    479     const auto& resource = toRenderSVGResourceContainer(object);
    480478
    481479    if (resource.resourceType() == MaskerResourceType) {
     
    553551    } else
    554552        ts << "\n";
    555     writeChildren(ts, object, indent);
    556 }
    557 
    558 void writeSVGContainer(TextStream& ts, const RenderObject& container, int indent)
     553    writeChildren(ts, resource, indent);
     554}
     555
     556void writeSVGContainer(TextStream& ts, const RenderSVGContainer& container, int indent)
    559557{
    560558    // Currently RenderSVGResourceFilterPrimitive has no meaningful output.
     
    617615}
    618616
    619 void writeResources(TextStream& ts, const RenderObject& object, int indent)
    620 {
    621     const RenderStyle& style = object.style();
     617void writeResources(TextStream& ts, const RenderObject& renderer, int indent)
     618{
     619    const RenderStyle& style = renderer.style();
    622620    const SVGRenderStyle& svgStyle = style.svgStyle();
    623621
    624622    // FIXME: We want to use SVGResourcesCache to determine which resources are present, instead of quering the resource <-> id cache.
    625623    // For now leave the DRT output as is, but later on we should change this so cycles are properly ignored in the DRT output.
    626     RenderObject& renderer = const_cast<RenderObject&>(object);
    627624    if (!svgStyle.maskerResource().isEmpty()) {
    628         if (RenderSVGResourceMasker* masker = getRenderSVGResourceById<RenderSVGResourceMasker>(object.document(), svgStyle.maskerResource())) {
     625        if (RenderSVGResourceMasker* masker = getRenderSVGResourceById<RenderSVGResourceMasker>(renderer.document(), svgStyle.maskerResource())) {
    629626            writeIndent(ts, indent);
    630627            ts << " ";
     
    636633    }
    637634    if (!svgStyle.clipperResource().isEmpty()) {
    638         if (RenderSVGResourceClipper* clipper = getRenderSVGResourceById<RenderSVGResourceClipper>(object.document(), svgStyle.clipperResource())) {
     635        if (RenderSVGResourceClipper* clipper = getRenderSVGResourceById<RenderSVGResourceClipper>(renderer.document(), svgStyle.clipperResource())) {
    639636            writeIndent(ts, indent);
    640637            ts << " ";
     
    647644#if ENABLE(FILTERS)
    648645    if (!svgStyle.filterResource().isEmpty()) {
    649         if (RenderSVGResourceFilter* filter = getRenderSVGResourceById<RenderSVGResourceFilter>(object.document(), svgStyle.filterResource())) {
     646        if (RenderSVGResourceFilter* filter = getRenderSVGResourceById<RenderSVGResourceFilter>(renderer.document(), svgStyle.filterResource())) {
    650647            writeIndent(ts, indent);
    651648            ts << " ";
  • trunk/Source/WebCore/rendering/svg/SVGRenderTreeAsText.h

    r101517 r163316  
    3939class RenderImage;
    4040class RenderObject;
     41class RenderSVGContainer;
    4142class RenderSVGGradientStop;
    4243class RenderSVGImage;
    4344class RenderSVGInlineText;
     45class RenderSVGResourceContainer;
    4446class RenderSVGShape;
    4547class RenderSVGRoot;
     
    5254void write(TextStream&, const RenderSVGRoot&, int indent);
    5355void writeSVGGradientStop(TextStream&, const RenderSVGGradientStop&, int indent);
    54 void writeSVGResourceContainer(TextStream&, const RenderObject&, int indent);
    55 void writeSVGContainer(TextStream&, const RenderObject&, int indent);
     56void writeSVGResourceContainer(TextStream&, const RenderSVGResourceContainer&, int indent);
     57void writeSVGContainer(TextStream&, const RenderSVGContainer&, int indent);
    5658void writeSVGImage(TextStream&, const RenderSVGImage&, int indent);
    5759void writeSVGInlineText(TextStream&, const RenderSVGInlineText&, int indent);
Note: See TracChangeset for help on using the changeset viewer.