Skip to content
Permalink
Browse files
[LBSE] Add support for 'image' elements
https://bugs.webkit.org/show_bug.cgi?id=243499

Reviewed by Rob Buis.

Rename RenderSVGImage -> LegacyRenderSVGImage, to prepare the LBSE-aware RenderSVGImage introduction.

Re-introduce RenderSVGImage, largely based on RenderImage, unlike LegacyRenderSVGImage.
Supports all features that the legacy engine did, just way more aligned with RenderImage.

Covered by existing tests, fixes 18 additional SVG 1.1 testcases.

* LayoutTests/platform/mac-monterey-wk2-lbse-text/TestExpectations:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-30-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-36-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-39-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/animate-elem-40-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/color-prof-01-f-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/coords-viewattr-02-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/filters-blend-01-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/filters-conv-01-f-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/filters-diffuse-01-f-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/filters-light-01-f-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/filters-specular-01-f-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/masking-path-04-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/render-groups-01-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/render-groups-03-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/struct-image-01-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/struct-image-02-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/struct-image-03-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/struct-image-04-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/struct-image-05-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/struct-image-06-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/struct-image-07-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/struct-image-08-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/struct-image-09-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/struct-image-10-t-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/struct-symbol-01-b-expected.txt:
* LayoutTests/platform/mac-monterey-wk2-lbse-text/svg/W3C-SVG-1.1/struct-use-01-t-expected.txt:
* Source/WebCore/Sources.txt:
* Source/WebCore/WebCore.xcodeproj/project.pbxproj:
* Source/WebCore/accessibility/AccessibilitySVGElement.cpp:
(WebCore::AccessibilitySVGElement::accessibilityDescription const):
(WebCore::AccessibilitySVGElement::determineAccessibilityRole):
* Source/WebCore/loader/ImageLoader.cpp:
(WebCore::ImageLoader::renderImageResource):
* Source/WebCore/rendering/RenderObject.h:
(WebCore::RenderObject::isLegacySVGImage const):
(WebCore::RenderObject::isSVGImageOrLegacySVGImage const):
* Source/WebCore/rendering/RenderTreeAsText.cpp:
(WebCore::write):
* Source/WebCore/rendering/svg/LegacyRenderSVGImage.cpp: Renamed from Source/WebCore/rendering/svg/RenderSVGImage.cpp.
(WebCore::LegacyRenderSVGImage::LegacyRenderSVGImage):
(WebCore::LegacyRenderSVGImage::willBeDestroyed):
(WebCore::LegacyRenderSVGImage::imageElement const):
(WebCore::LegacyRenderSVGImage::calculateObjectBoundingBox const):
(WebCore::LegacyRenderSVGImage::updateImageViewport):
(WebCore::LegacyRenderSVGImage::layout):
(WebCore::LegacyRenderSVGImage::paint):
(WebCore::LegacyRenderSVGImage::paintForeground):
(WebCore::LegacyRenderSVGImage::invalidateBufferedForeground):
(WebCore::LegacyRenderSVGImage::nodeAtFloatPoint):
(WebCore::LegacyRenderSVGImage::imageChanged):
(WebCore::LegacyRenderSVGImage::addFocusRingRects):
* Source/WebCore/rendering/svg/LegacyRenderSVGImage.h: Renamed from Source/WebCore/rendering/svg/RenderSVGImage.h.
* Source/WebCore/rendering/svg/LegacyRenderSVGModelObject.cpp:
(WebCore::isGraphicsElement):
* Source/WebCore/rendering/svg/SVGBoundingBoxComputation.cpp:
(WebCore::SVGBoundingBoxComputation::computeDecoratedBoundingBox const):
* Source/WebCore/rendering/svg/SVGRenderSupport.cpp:
* Source/WebCore/rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeSVGImage):
* Source/WebCore/rendering/svg/SVGRenderTreeAsText.h:
* Source/WebCore/rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::bufferForeground):
* Source/WebCore/svg/SVGElement.cpp:
(WebCore::createSVGLayerAwareElementSet):
* Source/WebCore/svg/SVGImageElement.cpp:
(WebCore::SVGImageElement::hasSingleSecurityOrigin const):
(WebCore::SVGImageElement::svgAttributeChanged):
(WebCore::SVGImageElement::createElementRenderer):
(WebCore::SVGImageElement::didAttachRenderers):

Canonical link: https://commits.webkit.org/253793@main
  • Loading branch information
nikolaszimmermann committed Aug 25, 2022
1 parent 4a0a7c3 commit 4b8776daaa578ce17f6ada73fe7c92704e1945eb
Show file tree
Hide file tree
Showing 45 changed files with 1,099 additions and 325 deletions.
@@ -37,15 +37,15 @@ svg/W3C-SVG-1.1/animate-elem-26-t.svg [ Pass ]
svg/W3C-SVG-1.1/animate-elem-27-t.svg [ Pass ]
svg/W3C-SVG-1.1/animate-elem-28-t.svg [ Pass ]
svg/W3C-SVG-1.1/animate-elem-29-b.svg [ Pass ]
svg/W3C-SVG-1.1/animate-elem-30-t.svg [ ImageOnlyFailure ]
svg/W3C-SVG-1.1/animate-elem-30-t.svg [ Pass ]
svg/W3C-SVG-1.1/animate-elem-31-t.svg [ Pass ]
svg/W3C-SVG-1.1/animate-elem-32-t.svg [ Pass ]
svg/W3C-SVG-1.1/animate-elem-33-t.svg [ ImageOnlyFailure ]
svg/W3C-SVG-1.1/animate-elem-34-t.svg [ Pass ]
svg/W3C-SVG-1.1/animate-elem-36-t.svg [ ImageOnlyFailure ]
svg/W3C-SVG-1.1/animate-elem-36-t.svg [ Pass ]
svg/W3C-SVG-1.1/animate-elem-37-t.svg [ Pass ]
svg/W3C-SVG-1.1/animate-elem-39-t.svg [ ImageOnlyFailure ]
svg/W3C-SVG-1.1/animate-elem-40-t.svg [ ImageOnlyFailure ]
svg/W3C-SVG-1.1/animate-elem-39-t.svg [ Pass ]
svg/W3C-SVG-1.1/animate-elem-40-t.svg [ Pass ]
svg/W3C-SVG-1.1/animate-elem-41-t.svg [ Pass ]
svg/W3C-SVG-1.1/animate-elem-44-t.svg [ Pass ]
svg/W3C-SVG-1.1/animate-elem-46-t.svg [ ImageOnlyFailure ]
@@ -69,7 +69,7 @@ svg/W3C-SVG-1.1/animate-elem-82-t.svg [ Pass ImageOnlyFailure ]
svg/W3C-SVG-1.1/animate-elem-83-t.svg [ Pass ]
svg/W3C-SVG-1.1/animate-elem-84-t.svg [ ImageOnlyFailure ]
svg/W3C-SVG-1.1/animate-elem-85-t.svg [ Pass ]
svg/W3C-SVG-1.1/color-prof-01-f.svg [ ImageOnlyFailure ]
svg/W3C-SVG-1.1/color-prof-01-f.svg [ Pass ]
svg/W3C-SVG-1.1/color-prop-01-b.svg [ ImageOnlyFailure ]
svg/W3C-SVG-1.1/color-prop-02-f.svg [ Pass ]
svg/W3C-SVG-1.1/color-prop-03-t.svg [ Pass ]
@@ -85,7 +85,7 @@ svg/W3C-SVG-1.1/coords-units-01-b.svg [ ImageOnlyFailure ]
svg/W3C-SVG-1.1/coords-units-02-b.svg [ Pass ]
svg/W3C-SVG-1.1/coords-units-03-b.svg [ Pass ]
svg/W3C-SVG-1.1/coords-viewattr-01-b.svg [ Pass ]
svg/W3C-SVG-1.1/coords-viewattr-02-b.svg [ ImageOnlyFailure ]
svg/W3C-SVG-1.1/coords-viewattr-02-b.svg [ Pass ]
svg/W3C-SVG-1.1/coords-viewattr-03-b.svg [ Pass ]
svg/W3C-SVG-1.1/extend-namespace-01-f.svg [ ImageOnlyFailure ]
svg/W3C-SVG-1.1/filters-blend-01-b.svg [ ImageOnlyFailure ]
@@ -232,18 +232,18 @@ svg/W3C-SVG-1.1/struct-frag-06-t.svg [ Pass ]
svg/W3C-SVG-1.1/struct-group-01-t.svg [ Pass ]
svg/W3C-SVG-1.1/struct-group-02-b.svg [ Pass ]
svg/W3C-SVG-1.1/struct-group-03-t.svg [ Pass ]
svg/W3C-SVG-1.1/struct-image-01-t.svg [ ImageOnlyFailure ]
svg/W3C-SVG-1.1/struct-image-02-b.svg [ ImageOnlyFailure ]
svg/W3C-SVG-1.1/struct-image-03-t.svg [ ImageOnlyFailure ]
svg/W3C-SVG-1.1/struct-image-04-t.svg [ ImageOnlyFailure ]
svg/W3C-SVG-1.1/struct-image-05-b.svg [ ImageOnlyFailure ]
svg/W3C-SVG-1.1/struct-image-06-t.svg [ ImageOnlyFailure ]
svg/W3C-SVG-1.1/struct-image-07-t.svg [ ImageOnlyFailure ]
svg/W3C-SVG-1.1/struct-image-08-t.svg [ ImageOnlyFailure ]
svg/W3C-SVG-1.1/struct-image-09-t.svg [ ImageOnlyFailure ]
svg/W3C-SVG-1.1/struct-image-10-t.svg [ ImageOnlyFailure ]
svg/W3C-SVG-1.1/struct-symbol-01-b.svg [ ImageOnlyFailure ]
svg/W3C-SVG-1.1/struct-use-01-t.svg [ ImageOnlyFailure ]
svg/W3C-SVG-1.1/struct-image-01-t.svg [ Pass ]
svg/W3C-SVG-1.1/struct-image-02-b.svg [ Pass ]
svg/W3C-SVG-1.1/struct-image-03-t.svg [ Pass ]
svg/W3C-SVG-1.1/struct-image-04-t.svg [ Pass ]
svg/W3C-SVG-1.1/struct-image-05-b.svg [ Pass ]
svg/W3C-SVG-1.1/struct-image-06-t.svg [ Pass ]
svg/W3C-SVG-1.1/struct-image-07-t.svg [ Pass ]
svg/W3C-SVG-1.1/struct-image-08-t.svg [ Pass ]
svg/W3C-SVG-1.1/struct-image-09-t.svg [ Pass ]
svg/W3C-SVG-1.1/struct-image-10-t.svg [ Pass ]
svg/W3C-SVG-1.1/struct-symbol-01-b.svg [ Pass ]
svg/W3C-SVG-1.1/struct-use-01-t.svg [ Pass ]
svg/W3C-SVG-1.1/struct-use-03-t.svg [ Pass ]
svg/W3C-SVG-1.1/struct-use-05-b.svg [ Pass ]
svg/W3C-SVG-1.1/styling-css-01-b.svg [ Pass ]
@@ -4,96 +4,104 @@ layer at (0,0) size 480x360
RenderSVGRoot {svg} at (0,0) size 480x360
layer at (0,0) size 480x360
RenderSVGViewportContainer at (0,0) size 480x360
layer at (10,8) size 310x203
RenderSVGTransformableContainer {g} at (10,7) size 310x203
layer at (170,40) size 40x151
RenderSVGPath {path} at (160,32) size 40x151 [stroke={[type=SOLID] [color=#B4B4B4]}] [data="M 210 40 C 210 40 210 100 170 190"]
layer at (171,174) size 10x15
RenderSVGPath {path} at (161,166) size 10x15 [fill={[type=SOLID] [color=#B4B4B4]}] [data="M 171 188 L 181 178 L 171 174 Z"]
layer at (200,20) size 20x41
RenderSVGPath {polyline} at (190,12) size 20x41 [stroke={[type=SOLID] [color=#B4B4B4] [stroke width=2.00]}] [points="200 20 200 40 220 40 220 60"]
layer at (200,120) size 20x41
RenderSVGPath {polyline} at (190,112) size 20x41 [stroke={[type=SOLID] [color=#B4B4B4] [stroke width=9.00]}] [points="200 120 200 140 220 140 220 160"]
layer at (20,10) size 20x41
RenderSVGPath {line} at (10,2) size 20x41 [stroke={[type=SOLID] [color=#B4B4B4] [stroke width=3.00]}] [fill={[type=SOLID] [color=#000000]}] [x1=40.00] [y1=50.00] [x2=20.00] [y2=10.00]
layer at (80,10) size 80x41
RenderSVGPath {line} at (70,2) size 80x41 [stroke={[type=SOLID] [color=#B4B4B4] [stroke width=3.00]}] [fill={[type=SOLID] [color=#000000]}] [x1=160.00] [y1=50.00] [x2=80.00] [y2=10.00]
layer at (10,5) size 310x205
RenderSVGTransformableContainer {g} at (10,5) size 310x205
layer at (170,40) size 40x150
RenderSVGPath {path} at (160,35) size 40x150 [stroke={[type=SOLID] [color=#B4B4B4]}] [data="M 210 40 C 210 40 210 100 170 190"]
layer at (171,174) size 10x14
RenderSVGPath {path} at (161,169) size 10x14 [fill={[type=SOLID] [color=#B4B4B4]}] [data="M 171 188 L 181 178 L 171 174 Z"]
layer at (200,20) size 20x40
RenderSVGPath {polyline} at (190,15) size 20x40 [stroke={[type=SOLID] [color=#B4B4B4] [stroke width=2.00]}] [points="200 20 200 40 220 40 220 60"]
layer at (200,120) size 20x40
RenderSVGPath {polyline} at (190,115) size 20x40 [stroke={[type=SOLID] [color=#B4B4B4] [stroke width=9.00]}] [points="200 120 200 140 220 140 220 160"]
layer at (20,10) size 20x40
RenderSVGPath {line} at (10,5) size 20x40 [stroke={[type=SOLID] [color=#B4B4B4] [stroke width=3.00]}] [fill={[type=SOLID] [color=#000000]}] [x1=40.00] [y1=50.00] [x2=20.00] [y2=10.00]
layer at (80,10) size 80x40
RenderSVGPath {line} at (70,5) size 80x40 [stroke={[type=SOLID] [color=#B4B4B4] [stroke width=3.00]}] [fill={[type=SOLID] [color=#000000]}] [x1=160.00] [y1=50.00] [x2=80.00] [y2=10.00]
layer at (30,30) size 90x0
RenderSVGPath {line} at (20,22) size 90x0 [stroke={[type=SOLID] [color=#B4B4B4]}] [fill={[type=SOLID] [color=#000000]}] [x1=30.00] [y1=30.00] [x2=120.00] [y2=30.00]
layer at (110,27) size 10x7
RenderSVGPath {path} at (100,19) size 10x7 [fill={[type=SOLID] [color=#B4B4B4]}] [data="M 120 30 L 110 33 L 110 27 Z"]
RenderSVGPath {line} at (20,25) size 90x0 [stroke={[type=SOLID] [color=#B4B4B4]}] [fill={[type=SOLID] [color=#000000]}] [x1=30.00] [y1=30.00] [x2=120.00] [y2=30.00]
layer at (110,27) size 10x6
RenderSVGPath {path} at (100,22) size 10x6 [fill={[type=SOLID] [color=#B4B4B4]}] [data="M 120 30 L 110 33 L 110 27 Z"]
layer at (70,70) size 75x0
RenderSVGPath {line} at (60,62) size 75x0 [stroke={[type=SOLID] [color=#B4B4B4]}] [fill={[type=SOLID] [color=#000000]}] [x1=70.00] [y1=70.00] [x2=145.00] [y2=70.00]
layer at (10,60) size 60x21
RenderSVGRect {rect} at (0,52) size 60x21 [stroke={[type=SOLID] [color=#B4B4B4] [stroke width=2.00]}] [fill={[type=SOLID] [color=#B4B4B4]}] [x=10.00] [y=60.00] [width=60.00] [height=20.00]
layer at (145,60) size 30x41
RenderSVGRect {rect} at (135,52) size 30x41 [stroke={[type=SOLID] [color=#B4B4B4] [stroke width=2.00]}] [fill={[type=SOLID] [color=#B4B4B4]}] [x=145.00] [y=60.00] [width=30.00] [height=40.00]
layer at (135,67) size 10x7
RenderSVGPath {path} at (125,59) size 10x7 [fill={[type=SOLID] [color=#B4B4B4]}] [data="M 145 70 L 135 73 L 135 67 Z"]
layer at (20,90) size 20x21
RenderSVGEllipse {circle} at (10,82) size 20x21 [stroke={[type=SOLID] [color=#B4B4B4]}] [fill={[type=SOLID] [color=#B4B4B4]}] [cx=30.00] [cy=100.00] [r=10.00]
layer at (85,180) size 30x31
RenderSVGEllipse {circle} at (75,172) size 30x31 [stroke={[type=SOLID] [color=#B4B4B4]}] [fill={[type=SOLID] [color=#B4B4B4]}] [cx=100.00] [cy=195.00] [r=15.00]
layer at (37,107) size 52x78
RenderSVGPath {line} at (27,99) size 52x78 [stroke={[type=SOLID] [color=#B4B4B4]}] [fill={[type=SOLID] [color=#000000]}] [x1=37.00] [y1=107.00] [x2=89.00] [y2=184.00]
layer at (81,173) size 9x13
RenderSVGPath {path} at (71,165) size 9x13 [fill={[type=SOLID] [color=#B4B4B4]}] [data="M 90 185 L 87 173 L 81 178 Z"]
layer at (300,10) size 20x21
RenderSVGRect {rect} at (290,2) size 20x21 [stroke={[type=SOLID] [color=#B4B4B4] [stroke width=2.00]}] [fill={[type=SOLID] [color=#B4B4B4]}] [x=300.00] [y=10.00] [width=20.00] [height=20.00]
layer at (300,170) size 20x41
RenderSVGRect {rect} at (290,162) size 20x41 [stroke={[type=SOLID] [color=#B4B4B4] [stroke width=2.00]}] [fill={[type=SOLID] [color=#B4B4B4]}] [x=300.00] [y=170.00] [width=20.00] [height=40.00]
layer at (310,30) size 0x141
RenderSVGPath {line} at (300,22) size 0x141 [stroke={[type=SOLID] [color=#B4B4B4]}] [fill={[type=SOLID] [color=#000000]}] [x1=310.00] [y1=30.00] [x2=310.00] [y2=170.00]
layer at (307,160) size 6x11
RenderSVGPath {path} at (297,152) size 6x11 [fill={[type=SOLID] [color=#B4B4B4]}] [data="M 310 170 L 307 160 L 313 160 Z"]
RenderSVGPath {line} at (60,65) size 75x0 [stroke={[type=SOLID] [color=#B4B4B4]}] [fill={[type=SOLID] [color=#000000]}] [x1=70.00] [y1=70.00] [x2=145.00] [y2=70.00]
layer at (10,60) size 60x20
RenderSVGRect {rect} at (0,55) size 60x20 [stroke={[type=SOLID] [color=#B4B4B4] [stroke width=2.00]}] [fill={[type=SOLID] [color=#B4B4B4]}] [x=10.00] [y=60.00] [width=60.00] [height=20.00]
layer at (145,60) size 30x40
RenderSVGRect {rect} at (135,55) size 30x40 [stroke={[type=SOLID] [color=#B4B4B4] [stroke width=2.00]}] [fill={[type=SOLID] [color=#B4B4B4]}] [x=145.00] [y=60.00] [width=30.00] [height=40.00]
layer at (135,67) size 10x6
RenderSVGPath {path} at (125,62) size 10x6 [fill={[type=SOLID] [color=#B4B4B4]}] [data="M 145 70 L 135 73 L 135 67 Z"]
layer at (20,90) size 20x20
RenderSVGEllipse {circle} at (10,85) size 20x20 [stroke={[type=SOLID] [color=#B4B4B4]}] [fill={[type=SOLID] [color=#B4B4B4]}] [cx=30.00] [cy=100.00] [r=10.00]
layer at (85,180) size 30x30
RenderSVGEllipse {circle} at (75,175) size 30x30 [stroke={[type=SOLID] [color=#B4B4B4]}] [fill={[type=SOLID] [color=#B4B4B4]}] [cx=100.00] [cy=195.00] [r=15.00]
layer at (37,107) size 52x77
RenderSVGPath {line} at (27,102) size 52x77 [stroke={[type=SOLID] [color=#B4B4B4]}] [fill={[type=SOLID] [color=#000000]}] [x1=37.00] [y1=107.00] [x2=89.00] [y2=184.00]
layer at (81,173) size 9x12
RenderSVGPath {path} at (71,168) size 9x12 [fill={[type=SOLID] [color=#B4B4B4]}] [data="M 90 185 L 87 173 L 81 178 Z"]
layer at (300,10) size 20x20
RenderSVGRect {rect} at (290,5) size 20x20 [stroke={[type=SOLID] [color=#B4B4B4] [stroke width=2.00]}] [fill={[type=SOLID] [color=#B4B4B4]}] [x=300.00] [y=10.00] [width=20.00] [height=20.00]
layer at (300,170) size 20x40
RenderSVGRect {rect} at (290,165) size 20x40 [stroke={[type=SOLID] [color=#B4B4B4] [stroke width=2.00]}] [fill={[type=SOLID] [color=#B4B4B4]}] [x=300.00] [y=170.00] [width=20.00] [height=40.00]
layer at (310,30) size 0x140
RenderSVGPath {line} at (300,25) size 0x140 [stroke={[type=SOLID] [color=#B4B4B4]}] [fill={[type=SOLID] [color=#000000]}] [x1=310.00] [y1=30.00] [x2=310.00] [y2=170.00]
layer at (307,160) size 6x10
RenderSVGPath {path} at (297,155) size 6x10 [fill={[type=SOLID] [color=#B4B4B4]}] [data="M 310 170 L 307 160 L 313 160 Z"]
layer at (230,8) size 40x8
RenderSVGRect {rect} at (220,0) size 40x8 [fill={[type=SOLID] [color=#B4B4B4]}] [x=230.00] [y=7.50] [width=40.00] [height=7.50]
layer at (230,170) size 40x31
RenderSVGRect {rect} at (220,162) size 40x31 [fill={[type=SOLID] [color=#B4B4B4]}] [x=230.00] [y=170.00] [width=40.00] [height=30.00]
layer at (250,10) size 0x161
RenderSVGPath {line} at (240,2) size 0x161 [stroke={[type=SOLID] [color=#B4B4B4]}] [fill={[type=SOLID] [color=#000000]}] [x1=250.00] [y1=10.00] [x2=250.00] [y2=170.00]
layer at (247,160) size 6x11
RenderSVGPath {path} at (237,152) size 6x11 [fill={[type=SOLID] [color=#B4B4B4]}] [data="M 250 170 L 247 160 L 253 160 Z"]
layer at (10,10) size 20x41
RenderSVGHiddenContainer {defs} at (0,2) size 20x41
RenderSVGRect {rect} at (220,2) size 40x8 [fill={[type=SOLID] [color=#B4B4B4]}] [x=230.00] [y=7.50] [width=40.00] [height=7.50]
layer at (230,170) size 40x30
RenderSVGRect {rect} at (220,165) size 40x30 [fill={[type=SOLID] [color=#B4B4B4]}] [x=230.00] [y=170.00] [width=40.00] [height=30.00]
layer at (250,10) size 0x160
RenderSVGPath {line} at (240,5) size 0x160 [stroke={[type=SOLID] [color=#B4B4B4]}] [fill={[type=SOLID] [color=#000000]}] [x1=250.00] [y1=10.00] [x2=250.00] [y2=170.00]
layer at (247,160) size 6x10
RenderSVGPath {path} at (237,155) size 6x10 [fill={[type=SOLID] [color=#B4B4B4]}] [data="M 250 170 L 247 160 L 253 160 Z"]
layer at (10,10) size 20x40
RenderSVGHiddenContainer {defs} at (0,5) size 20x40
layer at (10,10) size 20x40
RenderSVGPath {line} at (0,0) size 20x40 [stroke={[type=SOLID] [color=#105D8C] [stroke width=3.00]}] [fill={[type=SOLID] [color=#000000]}] [x1=30.00] [y1=50.00] [x2=10.00] [y2=10.00]
layer at (10,60) size 60x21
RenderSVGHiddenContainer {defs} at (0,52) size 60x21
layer at (10,60) size 60x20
RenderSVGHiddenContainer {defs} at (0,55) size 60x20
layer at (10,60) size 60x20
RenderSVGRect {rect} at (0,0) size 60x20 [stroke={[type=SOLID] [color=#000000] [stroke width=2.00]}] [fill={[type=SOLID] [color=#FFFFFF]}] [x=10.00] [y=60.00] [width=60.00] [height=20.00]
layer at (10,90) size 20x21
RenderSVGHiddenContainer {defs} at (0,82) size 20x21
layer at (10,90) size 20x20
RenderSVGHiddenContainer {defs} at (0,85) size 20x20
layer at (10,90) size 20x20
RenderSVGEllipse {circle} at (0,0) size 20x20 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#105D8C]}] [cx=20.00] [cy=100.00] [r=10.00]
layer at (200,20) size 20x41
RenderSVGHiddenContainer {defs} at (190,12) size 20x41
layer at (200,20) size 20x40
RenderSVGHiddenContainer {defs} at (190,15) size 20x40
layer at (200,20) size 20x40
RenderSVGPath {polyline} at (0,0) size 20x40 [stroke={[type=SOLID] [color=#105D8C] [stroke width=2.00]}] [points="200 20 200 40 220 40 220 60"]
layer at (240,20) size 20x21
RenderSVGHiddenContainer {defs} at (230,12) size 20x21
layer at (240,20) size 20x20
RenderSVGHiddenContainer {defs} at (230,15) size 20x20
layer at (240,20) size 20x20
RenderSVGPath {polygon} at (0,0) size 20x20 [stroke={[type=SOLID] [color=#000000] [stroke width=2.00]}] [fill={[type=SOLID] [color=#FFFFFF]}] [points="240 20 240 40 260 40 260 20"]
layer at (10,10) size 20x41
RenderSVGTransformableContainer {use} at (0,2) size 20x41
layer at (230,5) size 40x80
RenderSVGHiddenContainer {defs} at (220,0) size 40x80
layer at (230,5) size 40x80
RenderSVGImage {image} at (0,0) size 40x80
layer at (10,10) size 20x40
RenderSVGTransformableContainer {use} at (0,5) size 20x40
layer at (10,10) size 20x40
RenderSVGPath {line} at (0,0) size 20x40 [stroke={[type=SOLID] [color=#105D8C] [stroke width=3.00]}] [fill={[type=SOLID] [color=#000000]}] [x1=30.00] [y1=50.00] [x2=10.00] [y2=10.00]
layer at (10,60) size 60x21
RenderSVGTransformableContainer {use} at (0,52) size 60x21
layer at (10,60) size 60x20
RenderSVGTransformableContainer {use} at (0,55) size 60x20
layer at (10,60) size 60x20
RenderSVGRect {rect} at (0,0) size 60x20 [stroke={[type=SOLID] [color=#000000] [stroke width=2.00]}] [fill={[type=SOLID] [color=#FFFFFF]}] [x=10.00] [y=60.00] [width=60.00] [height=20.00]
layer at (10,90) size 20x21
RenderSVGTransformableContainer {use} at (0,82) size 20x21
layer at (10,90) size 20x20
RenderSVGTransformableContainer {use} at (0,85) size 20x20
layer at (10,90) size 20x20
RenderSVGEllipse {circle} at (0,0) size 20x20 [stroke={[type=SOLID] [color=#000000]}] [fill={[type=SOLID] [color=#105D8C]}] [cx=20.00] [cy=100.00] [r=10.00]
layer at (200,20) size 20x41
RenderSVGTransformableContainer {use} at (190,12) size 20x41
layer at (200,20) size 20x40
RenderSVGTransformableContainer {use} at (190,15) size 20x40
layer at (200,20) size 20x40
RenderSVGPath {polyline} at (0,0) size 20x40 [stroke={[type=SOLID] [color=#105D8C] [stroke width=2.00]}] [points="200 20 200 40 220 40 220 60"]
layer at (240,20) size 20x21
RenderSVGTransformableContainer {use} at (230,12) size 20x21
layer at (240,20) size 20x20
RenderSVGTransformableContainer {use} at (230,15) size 20x20
layer at (240,20) size 20x20
RenderSVGPath {polygon} at (0,0) size 20x20 [stroke={[type=SOLID] [color=#000000] [stroke width=2.00]}] [fill={[type=SOLID] [color=#FFFFFF]}] [points="240 20 240 40 260 40 260 20"]
layer at (230,5) size 40x80
RenderSVGTransformableContainer {use} at (220,0) size 40x80
layer at (230,5) size 40x80
RenderSVGImage {image} at (0,0) size 40x80
layer at (10,304) size 263x46
RenderSVGText {text} at (10,304) size 264x46 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 264x46
@@ -102,10 +102,12 @@ layer at (-20,26) size 39x18 backgroundClip at (0,0) size 480x360 clip at (0,0)
RenderSVGText {text} at (0,56) size 40x18 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 40x18
chunk 1 (middle anchor) text run 1 at (-19.69,40.00) startOffset 0 endOffset 5 width 39.38: "<use>"
layer at (-29,46) size 58x19 backgroundClip at (0,0) size 480x360 clip at (0,0) size 480x360
RenderSVGTransformableContainer {g} at (5,78) size 58x19
layer at (-29,46) size 57x18 backgroundClip at (0,0) size 480x360 clip at (0,0) size 480x360
RenderSVGText {text} at (0,0) size 58x18 contains 1 chunk(s)
layer at (-30,-30) size 61x95 backgroundClip at (0,0) size 480x360 clip at (0,0) size 480x360
RenderSVGTransformableContainer {g} at (3,2) size 61x95
layer at (-30,-30) size 60x60 backgroundClip at (0,0) size 480x360 clip at (0,0) size 480x360
RenderSVGImage {image} at (0,0) size 60x60
layer at (-29,46) size 58x18 backgroundClip at (0,0) size 480x360 clip at (0,0) size 480x360
RenderSVGText {text} at (1,76) size 58x18 contains 1 chunk(s)
RenderSVGInlineText {#text} at (0,0) size 58x18
chunk 1 (middle anchor) text run 1 at (-28.57,60.00) startOffset 0 endOffset 7 width 57.14: "<image>"
layer at (-30,-30) size 61x95 backgroundClip at (0,0) size 480x360 clip at (0,0) size 480x360

0 comments on commit 4b8776d

Please sign in to comment.