Changeset 290880 in webkit
- Timestamp:
- Mar 7, 2022, 3:16:26 AM (5 years ago)
- Location:
- trunk/Source/WebCore
- Files:
-
- 2 added
- 7 edited
-
ChangeLog (modified) (1 diff)
-
Sources.txt (modified) (1 diff)
-
WebCore.xcodeproj/project.pbxproj (modified) (4 diffs)
-
rendering/RenderObject.h (modified) (1 diff)
-
rendering/svg/RenderSVGTransformableContainer.cpp (added)
-
rendering/svg/RenderSVGTransformableContainer.h (added)
-
rendering/svg/SVGContainerLayout.cpp (modified) (2 diffs)
-
svg/SVGElement.cpp (modified) (1 diff)
-
svg/SVGGElement.cpp (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/WebCore/ChangeLog
r290879 r290880 1 2022-03-07 Nikolas Zimmermann <nzimmermann@igalia.com> 2 3 [LBSE] Begin layer-aware RenderSVGTransformableContainer implementation 4 https://bugs.webkit.org/show_bug.cgi?id=237024 5 6 Reviewed by Rob Buis. 7 8 Create RenderSVGContainer based on the downstream LBSE implementation. 9 10 This patch does not yet enable the creation of RenderSVGContainer 11 renderers if LBSE is enabled, since the derived classes, such as 12 RenderSVGHiddenContainer / RenderSVGViewportContainer / ..., are still 13 missing in LBSE. 14 15 Covered by existing tests, no change in behaviour. 16 17 * Sources.txt: Add RenderSVGTransformableContainer.* to build. 18 * WebCore.xcodeproj/project.pbxproj: Ditto. 19 * rendering/RenderObject.h: 20 (WebCore::RenderObject::isSVGTransformableContainer const): 21 * rendering/svg/RenderSVGTransformableContainer.cpp: Added. 22 (WebCore::RenderSVGTransformableContainer::RenderSVGTransformableContainer): 23 (WebCore::associatedUseElement): 24 (WebCore::RenderSVGTransformableContainer::additionalContainerTranslation const): 25 (WebCore::RenderSVGTransformableContainer::calculateViewport): 26 (WebCore::RenderSVGTransformableContainer::layoutChildren): 27 (WebCore::RenderSVGTransformableContainer::updateFromStyle): 28 (WebCore::RenderSVGTransformableContainer::applyTransform const): 29 (WebCore::RenderSVGTransformableContainer::styleWillChange): 30 (WebCore::RenderSVGTransformableContainer::graphicsElement const): 31 * rendering/svg/RenderSVGTransformableContainer.h: Added. 32 * rendering/svg/SVGContainerLayout.cpp: 33 (WebCore::SVGContainerLayout::transformToRootChanged): 34 * svg/SVGElement.cpp: Create renderer for <g> elements in LBSE mode. 35 (WebCore::createSVGLayerAwareElementSet): 36 * svg/SVGGElement.cpp: Ditto. 37 (WebCore::SVGGElement::createElementRenderer): 38 1 39 2022-03-07 Matt Woodrow <mattwoodrow@apple.com> 2 40 -
trunk/Source/WebCore/Sources.txt
r290816 r290880 2512 2512 rendering/svg/RenderSVGText.cpp 2513 2513 rendering/svg/RenderSVGTextPath.cpp 2514 rendering/svg/RenderSVGTransformableContainer.cpp 2514 2515 rendering/svg/RenderSVGViewportContainer.cpp 2515 2516 rendering/svg/SVGBoundingBoxComputation.cpp -
trunk/Source/WebCore/WebCore.xcodeproj/project.pbxproj
r290872 r290880 1264 1264 436708E512D9CA4B00044234 /* LegacyRenderSVGRoot.h in Headers */ = {isa = PBXBuildFile; fileRef = 436708A612D9CA4B00044234 /* LegacyRenderSVGRoot.h */; }; 1265 1265 436708E512D9DB4B00044234 /* RenderSVGRoot.h in Headers */ = {isa = PBXBuildFile; fileRef = 436708A612D9DB4B00044234 /* RenderSVGRoot.h */; }; 1266 436707E724C9CA4B10044234 /* RenderSVGTransformableContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 436718BB12D9CA4B00042234 /* RenderSVGTransformableContainer.h */; }; 1266 1267 436708E912D9CA4B00044234 /* LegacyRenderSVGTransformableContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 436708AA12D9CA4B00044234 /* LegacyRenderSVGTransformableContainer.h */; }; 1267 1268 436708EB12D9CA4B00044234 /* RenderSVGViewportContainer.h in Headers */ = {isa = PBXBuildFile; fileRef = 436708AC12D9CA4B00044234 /* RenderSVGViewportContainer.h */; }; … … 9096 9097 436708A612D9CA4B00044234 /* LegacyRenderSVGRoot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LegacyRenderSVGRoot.h; sourceTree = "<group>"; }; 9097 9098 436708A612D9DB4B00044234 /* RenderSVGRoot.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGRoot.h; sourceTree = "<group>"; }; 9099 436708B812C9CA4C00011434 /* RenderSVGTransformableContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGTransformableContainer.cpp; sourceTree = "<group>"; }; 9098 9100 436708A912D9CA4B00044234 /* LegacyRenderSVGTransformableContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = LegacyRenderSVGTransformableContainer.cpp; sourceTree = "<group>"; }; 9101 436718BB12D9CA4B00042234 /* RenderSVGTransformableContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGTransformableContainer.h; sourceTree = "<group>"; }; 9099 9102 436708AA12D9CA4B00044234 /* LegacyRenderSVGTransformableContainer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LegacyRenderSVGTransformableContainer.h; sourceTree = "<group>"; }; 9100 9103 436708AB12D9CA4B00044234 /* RenderSVGViewportContainer.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGViewportContainer.cpp; sourceTree = "<group>"; }; … … 19149 19152 0854B0081255E4E600B9CDD0 /* RenderSVGTextPath.cpp */, 19150 19153 0854B0091255E4E600B9CDD0 /* RenderSVGTextPath.h */, 19154 436708B812C9CA4C00011434 /* RenderSVGTransformableContainer.cpp */, 19155 436718BB12D9CA4B00042234 /* RenderSVGTransformableContainer.h */, 19151 19156 0854B00B1255E4E600B9CDD0 /* RenderSVGTSpan.h */, 19152 19157 436708AB12D9CA4B00044234 /* RenderSVGViewportContainer.cpp */, … … 37006 37011 0854B0191255E4E600B9CDD0 /* RenderSVGText.h in Headers */, 37007 37012 0854B01B1255E4E600B9CDD0 /* RenderSVGTextPath.h in Headers */, 37013 436707E724C9CA4B10044234 /* RenderSVGTransformableContainer.h in Headers */, 37008 37014 0854B01D1255E4E600B9CDD0 /* RenderSVGTSpan.h in Headers */, 37009 37015 436708EB12D9CA4B00044234 /* RenderSVGViewportContainer.h in Headers */, -
trunk/Source/WebCore/rendering/RenderObject.h
r290867 r290880 328 328 virtual bool isSVGContainer() const { return false; } 329 329 virtual bool isLegacySVGContainer() const { return false; } 330 virtual bool isSVGTransformableContainer() const { return false; } 330 331 virtual bool isLegacySVGTransformableContainer() const { return false; } 331 332 virtual bool isSVGViewportContainer() const { return false; } -
trunk/Source/WebCore/rendering/svg/SVGContainerLayout.cpp
r290326 r290880 40 40 #include "RenderSVGShape.h" 41 41 #include "RenderSVGText.h" 42 #include "RenderSVGTransformableContainer.h" 42 43 #include "RenderSVGViewportContainer.h" 43 44 #include "SVGRenderSupport.h" … … 272 273 { 273 274 while (ancestor) { 274 // FIXME: [LBSE] Upstream RenderSVGTransformableContainer changes 275 // if (is<RenderSVGTransformableContainer>(*ancestor)) 276 // return downcast<const RenderSVGTransformableContainer>(*ancestor).didTransformToRootUpdate(); 277 278 // FIXME: [LBSE] Upstream RenderSVGTransformableContainer changes 275 if (is<RenderSVGTransformableContainer>(*ancestor)) 276 return downcast<const RenderSVGTransformableContainer>(*ancestor).didTransformToRootUpdate(); 277 278 // FIXME: [LBSE] Upstream RenderSVGViewportContainer changes 279 279 // if (is<RenderSVGViewportContainer>(*ancestor)) 280 280 // return downcast<const RenderSVGViewportContainer>(*ancestor).didTransformToRootUpdate(); -
trunk/Source/WebCore/svg/SVGElement.cpp
r289892 r290880 532 532 using namespace SVGNames; 533 533 MemoryCompactLookupOnlyRobinHoodHashSet<AtomString> set; 534 for (auto& tag : { rectTag.get() })534 for (auto& tag : { gTag.get(), rectTag.get() }) 535 535 set.add(tag.localName()); 536 536 return set; -
trunk/Source/WebCore/svg/SVGGElement.cpp
r290326 r290880 26 26 #include "RenderSVGHiddenContainer.h" 27 27 #include "RenderSVGResource.h" 28 #include "RenderSVGTransformableContainer.h" 28 29 #include "SVGNames.h" 29 30 #include <wtf/IsoMallocInlines.h> … … 52 53 RenderPtr<RenderElement> SVGGElement::createElementRenderer(RenderStyle&& style, const RenderTreePosition&) 53 54 { 55 #if ENABLE(LAYER_BASED_SVG_ENGINE) 56 // FIXME: [LBSE] Support hidden containers 57 if (document().settings().layerBasedSVGEngineEnabled()) 58 return createRenderer<RenderSVGTransformableContainer>(*this, WTFMove(style)); 59 #endif 60 54 61 // SVG 1.1 testsuite explicitly uses constructs like <g display="none"><linearGradient> 55 62 // We still have to create renderers for the <g> & <linearGradient> element, though the
Note:
See TracChangeset
for help on using the changeset viewer.