Changeset 163316 in webkit
- Timestamp:
- Feb 3, 2014 10:52:12 AM (10 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 4 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r163310 r163316 1 2014-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 1 34 2014-01-25 Darin Adler <darin@apple.com> 2 35 -
trunk/Source/WebCore/rendering/RenderTreeAsText.cpp
r163079 r163316 67 67 #include "RenderSVGInlineText.h" 68 68 #include "RenderSVGPath.h" 69 #include "RenderSVGResourceContainer.h" 69 70 #include "RenderSVGRoot.h" 70 71 #include "RenderSVGText.h" … … 519 520 } 520 521 if (o.isSVGResourceContainer()) { 521 writeSVGResourceContainer(ts, o, indent);522 writeSVGResourceContainer(ts, toRenderSVGResourceContainer(o), indent); 522 523 return; 523 524 } 524 525 if (o.isSVGContainer()) { 525 writeSVGContainer(ts, o, indent);526 writeSVGContainer(ts, toRenderSVGContainer(o), indent); 526 527 return; 527 528 } -
trunk/Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp
r163283 r163316 36 36 #include "NodeRenderStyle.h" 37 37 #include "RenderImage.h" 38 #include "RenderIterator.h" 38 39 #include "RenderSVGGradientStop.h" 39 40 #include "RenderSVGImage.h" … … 251 252 } 252 253 253 static void writeStyle(TextStream& ts, const Render Object& object)254 { 255 const RenderStyle& style = object.style();254 static void writeStyle(TextStream& ts, const RenderElement& renderer) 255 { 256 const RenderStyle& style = renderer.style(); 256 257 const SVGRenderStyle& svgStyle = style.svgStyle(); 257 258 258 if (! object.localTransform().isIdentity())259 writeNameValuePair(ts, "transform", object.localTransform());259 if (!renderer.localTransform().isIdentity()) 260 writeNameValuePair(ts, "transform", renderer.localTransform()); 260 261 writeIfNotDefault(ts, "image rendering", style.imageRendering(), RenderStyle::initialImageRendering()); 261 262 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); 264 265 265 266 Color fallbackColor; … … 308 309 } 309 310 310 static TextStream& writePositionAndStyle(TextStream& ts, const Render Object& object)311 { 312 ts << " " << enclosingIntRect( const_cast<RenderObject&>(object).absoluteClippedOverflowRect());313 writeStyle(ts, object);311 static TextStream& writePositionAndStyle(TextStream& ts, const RenderElement& renderer) 312 { 313 ts << " " << enclosingIntRect(renderer.absoluteClippedOverflowRect()); 314 writeStyle(ts, renderer); 314 315 return ts; 315 316 } … … 452 453 } 453 454 454 static void writeChildren(TextStream& ts, const Render Object& object, int indent)455 { 456 for ( RenderObject* child = object.firstChildSlow(); child; child = child->nextSibling())457 write(ts, *child, indent + 1);455 static void writeChildren(TextStream& ts, const RenderElement& parent, int indent) 456 { 457 for (const auto& child : childrenOfType<RenderObject>(parent)) 458 write(ts, child, indent + 1); 458 459 } 459 460 … … 469 470 } 470 471 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(); 472 void writeSVGResourceContainer(TextStream& ts, const RenderSVGResourceContainer& resource, int indent) 473 { 474 writeStandardPrefix(ts, resource, indent); 475 476 const AtomicString& id = resource.element().getIdAttribute(); 477 477 writeNameAndQuotedValue(ts, "id", id); 478 479 const auto& resource = toRenderSVGResourceContainer(object);480 478 481 479 if (resource.resourceType() == MaskerResourceType) { … … 553 551 } else 554 552 ts << "\n"; 555 writeChildren(ts, object, indent);556 } 557 558 void writeSVGContainer(TextStream& ts, const Render Object& container, int indent)553 writeChildren(ts, resource, indent); 554 } 555 556 void writeSVGContainer(TextStream& ts, const RenderSVGContainer& container, int indent) 559 557 { 560 558 // Currently RenderSVGResourceFilterPrimitive has no meaningful output. … … 617 615 } 618 616 619 void writeResources(TextStream& ts, const RenderObject& object, int indent)620 { 621 const RenderStyle& style = object.style();617 void writeResources(TextStream& ts, const RenderObject& renderer, int indent) 618 { 619 const RenderStyle& style = renderer.style(); 622 620 const SVGRenderStyle& svgStyle = style.svgStyle(); 623 621 624 622 // FIXME: We want to use SVGResourcesCache to determine which resources are present, instead of quering the resource <-> id cache. 625 623 // 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);627 624 if (!svgStyle.maskerResource().isEmpty()) { 628 if (RenderSVGResourceMasker* masker = getRenderSVGResourceById<RenderSVGResourceMasker>( object.document(), svgStyle.maskerResource())) {625 if (RenderSVGResourceMasker* masker = getRenderSVGResourceById<RenderSVGResourceMasker>(renderer.document(), svgStyle.maskerResource())) { 629 626 writeIndent(ts, indent); 630 627 ts << " "; … … 636 633 } 637 634 if (!svgStyle.clipperResource().isEmpty()) { 638 if (RenderSVGResourceClipper* clipper = getRenderSVGResourceById<RenderSVGResourceClipper>( object.document(), svgStyle.clipperResource())) {635 if (RenderSVGResourceClipper* clipper = getRenderSVGResourceById<RenderSVGResourceClipper>(renderer.document(), svgStyle.clipperResource())) { 639 636 writeIndent(ts, indent); 640 637 ts << " "; … … 647 644 #if ENABLE(FILTERS) 648 645 if (!svgStyle.filterResource().isEmpty()) { 649 if (RenderSVGResourceFilter* filter = getRenderSVGResourceById<RenderSVGResourceFilter>( object.document(), svgStyle.filterResource())) {646 if (RenderSVGResourceFilter* filter = getRenderSVGResourceById<RenderSVGResourceFilter>(renderer.document(), svgStyle.filterResource())) { 650 647 writeIndent(ts, indent); 651 648 ts << " "; -
trunk/Source/WebCore/rendering/svg/SVGRenderTreeAsText.h
r101517 r163316 39 39 class RenderImage; 40 40 class RenderObject; 41 class RenderSVGContainer; 41 42 class RenderSVGGradientStop; 42 43 class RenderSVGImage; 43 44 class RenderSVGInlineText; 45 class RenderSVGResourceContainer; 44 46 class RenderSVGShape; 45 47 class RenderSVGRoot; … … 52 54 void write(TextStream&, const RenderSVGRoot&, int indent); 53 55 void writeSVGGradientStop(TextStream&, const RenderSVGGradientStop&, int indent); 54 void writeSVGResourceContainer(TextStream&, const Render Object&, int indent);55 void writeSVGContainer(TextStream&, const Render Object&, int indent);56 void writeSVGResourceContainer(TextStream&, const RenderSVGResourceContainer&, int indent); 57 void writeSVGContainer(TextStream&, const RenderSVGContainer&, int indent); 56 58 void writeSVGImage(TextStream&, const RenderSVGImage&, int indent); 57 59 void writeSVGInlineText(TextStream&, const RenderSVGInlineText&, int indent);
Note: See TracChangeset
for help on using the changeset viewer.