Changeset 66823 in webkit
- Timestamp:
- Sep 6, 2010 6:26:29 AM (14 years ago)
- Location:
- trunk
- Files:
-
- 2 added
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/LayoutTests/ChangeLog
r66820 r66823 1 2010-09-06 Zoltan Herczeg <zherczeg@webkit.org> 2 3 Reviewed by Dirk Schulze. 4 5 An individual renderer should be assigned to each SVGFE*Element class 6 https://bugs.webkit.org/show_bug.cgi?id=43954 7 8 The layout test below is fixed by this patch. 9 10 * platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-lighting-color-css-prop-expected.checksum: 11 * platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-lighting-color-css-prop-expected.png: 12 1 13 2010-08-26 Jeremy Orlow <jorlow@chromium.org> 2 14 -
trunk/LayoutTests/platform/mac/svg/dynamic-updates/SVGFEDiffuseLightingElement-lighting-color-css-prop-expected.checksum
r65138 r66823 1 d53a2e4153d3748984be458e53e813f2 1 b843a316e79ec04f5744a15d667492da -
trunk/WebCore/Android.mk
r66365 r66823 658 658 rendering/RenderSVGResourceContainer.cpp \ 659 659 rendering/RenderSVGResourceFilter.cpp \ 660 rendering/RenderSVGResourceFilterPrimitive.cpp \ 660 661 rendering/RenderSVGResourceGradient.cpp \ 661 662 rendering/RenderSVGResourceLinearGradient.cpp \ -
trunk/WebCore/CMakeLists.txt
r66587 r66823 1616 1616 rendering/RenderSVGResourceContainer.cpp 1617 1617 rendering/RenderSVGResourceFilter.cpp 1618 rendering/RenderSVGResourceFilterPrimitive.cpp 1618 1619 rendering/RenderSVGResourceGradient.cpp 1619 1620 rendering/RenderSVGResourceLinearGradient.cpp -
trunk/WebCore/ChangeLog
r66822 r66823 1 2010-09-06 Zoltan Herczeg <zherczeg@webkit.org> 2 3 Reviewed by Dirk Schulze. 4 5 An individual renderer should be assigned to each SVGFE*Element class 6 https://bugs.webkit.org/show_bug.cgi?id=43954 7 8 RenderSVGResourceFilterPrimitive renderer is added to 9 the project, and assigned to each object, which class is 10 derived from SVGFilterPrimitiveStandardAttributes. The patch 11 mainly contains build system changes, and it fixes one layout 12 test in svg/dynamic-updates. 13 14 * Android.mk: 15 * CMakeLists.txt: 16 * GNUmakefile.am: 17 * WebCore.gypi: 18 * WebCore.pro: 19 * WebCore.vcproj/WebCore.vcproj: 20 * WebCore.xcodeproj/project.pbxproj: 21 * rendering/RenderObject.h: 22 (WebCore::RenderObject::isSVGResourceFilterPrimitive): 23 * rendering/RenderSVGResourceFilterPrimitive.cpp: Added. 24 (WebCore::RenderSVGResourceFilterPrimitive::RenderSVGResourceFilterPrimitive): 25 * rendering/RenderSVGResourceFilterPrimitive.h: Added. 26 (WebCore::RenderSVGResourceFilterPrimitive::isSVGResourceFilterPrimitive): 27 * rendering/SVGRenderTreeAsText.cpp: 28 (WebCore::writeSVGContainer): 29 * svg/SVGFEDiffuseLightingElement.cpp: 30 (WebCore::SVGFEDiffuseLightingElement::svgAttributeChanged): 31 * svg/SVGFELightElement.cpp: 32 (WebCore::SVGFELightElement::svgAttributeChanged): 33 (WebCore::SVGFELightElement::childrenChanged): 34 * svg/SVGFEOffsetElement.cpp: 35 (WebCore::SVGFEOffsetElement::svgAttributeChanged): 36 * svg/SVGFilterElement.h: 37 * svg/SVGFilterPrimitiveStandardAttributes.cpp: 38 (WebCore::SVGFilterPrimitiveStandardAttributes::svgAttributeChanged): 39 (WebCore::SVGFilterPrimitiveStandardAttributes::childrenChanged): 40 (WebCore::SVGFilterPrimitiveStandardAttributes::createRenderer): 41 * svg/SVGFilterPrimitiveStandardAttributes.h: 42 (WebCore::SVGFilterPrimitiveStandardAttributes::invalidate): 43 1 44 2010-09-06 Gyuyoung Kim <gyuyoung.kim@samsung.com> 2 45 -
trunk/WebCore/GNUmakefile.am
r66774 r66823 3904 3904 WebCore/rendering/RenderSVGResourceFilter.cpp \ 3905 3905 WebCore/rendering/RenderSVGResourceFilter.h \ 3906 WebCore/rendering/RenderSVGResourceFilterPrimitive.cpp \ 3907 WebCore/rendering/RenderSVGResourceFilterPrimitive.h \ 3906 3908 WebCore/rendering/RenderSVGResourceGradient.cpp \ 3907 3909 WebCore/rendering/RenderSVGResourceGradient.h \ -
trunk/WebCore/WebCore.gypi
r66783 r66823 3463 3463 'rendering/RenderSVGResourceFilter.cpp', 3464 3464 'rendering/RenderSVGResourceFilter.h', 3465 'rendering/RenderSVGResourceFilterPrimitive.cpp', 3466 'rendering/RenderSVGResourceFilterPrimitive.h', 3465 3467 'rendering/RenderSVGResourceGradient.cpp', 3466 3468 'rendering/RenderSVGResourceGradient.h', -
trunk/WebCore/WebCore.pro
r66774 r66823 1907 1907 rendering/RenderSVGResourceContainer.h \ 1908 1908 rendering/RenderSVGResourceFilter.h \ 1909 rendering/RenderSVGResourceFilterPrimitive.h \ 1909 1910 rendering/RenderSVGResourceGradient.h \ 1910 1911 rendering/RenderSVGResourceLinearGradient.h \ … … 3053 3054 rendering/RenderSVGResourceContainer.cpp \ 3054 3055 rendering/RenderSVGResourceFilter.cpp \ 3056 rendering/RenderSVGResourceFilterPrimitive.cpp \ 3055 3057 rendering/RenderSVGResourceGradient.cpp \ 3056 3058 rendering/RenderSVGResourceLinearGradient.cpp \ -
trunk/WebCore/WebCore.vcproj/WebCore.vcproj
r66774 r66823 30958 30958 </File> 30959 30959 <File 30960 RelativePath="..\rendering\RenderSVGResourceFilterPrimitive.cpp" 30961 > 30962 <FileConfiguration 30963 Name="Debug|Win32" 30964 ExcludedFromBuild="true" 30965 > 30966 <Tool 30967 Name="VCCLCompilerTool" 30968 /> 30969 </FileConfiguration> 30970 <FileConfiguration 30971 Name="Release|Win32" 30972 ExcludedFromBuild="true" 30973 > 30974 <Tool 30975 Name="VCCLCompilerTool" 30976 /> 30977 </FileConfiguration> 30978 <FileConfiguration 30979 Name="Debug_Internal|Win32" 30980 ExcludedFromBuild="true" 30981 > 30982 <Tool 30983 Name="VCCLCompilerTool" 30984 /> 30985 </FileConfiguration> 30986 <FileConfiguration 30987 Name="Debug_Cairo|Win32" 30988 ExcludedFromBuild="true" 30989 > 30990 <Tool 30991 Name="VCCLCompilerTool" 30992 /> 30993 </FileConfiguration> 30994 <FileConfiguration 30995 Name="Release_Cairo|Win32" 30996 ExcludedFromBuild="true" 30997 > 30998 <Tool 30999 Name="VCCLCompilerTool" 31000 /> 31001 </FileConfiguration> 31002 <FileConfiguration 31003 Name="Debug_All|Win32" 31004 ExcludedFromBuild="true" 31005 > 31006 <Tool 31007 Name="VCCLCompilerTool" 31008 /> 31009 </FileConfiguration> 31010 </File> 31011 <File 31012 RelativePath="..\rendering\RenderSVGResourceFilterPrimitive.h" 31013 > 31014 </File> 31015 <File 30960 31016 RelativePath="..\rendering\RenderSVGResourceGradient.cpp" 30961 31017 > -
trunk/WebCore/WebCore.xcodeproj/project.pbxproj
r66783 r66823 325 325 1921327411C0E6BB00456238 /* SVGFEConvolveMatrixElement.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1921327111C0E6BB00456238 /* SVGFEConvolveMatrixElement.cpp */; }; 326 326 1921327511C0E6BB00456238 /* SVGFEConvolveMatrixElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 1921327211C0E6BB00456238 /* SVGFEConvolveMatrixElement.h */; }; 327 19423B501234E86B00D1EE9E /* RenderSVGResourceFilterPrimitive.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 19423B4E1234E86B00D1EE9E /* RenderSVGResourceFilterPrimitive.cpp */; }; 328 19423B511234E86B00D1EE9E /* RenderSVGResourceFilterPrimitive.h in Headers */ = {isa = PBXBuildFile; fileRef = 19423B4F1234E86B00D1EE9E /* RenderSVGResourceFilterPrimitive.h */; }; 327 329 19BFF64B11C0F2AC00B8C04D /* DOMSVGFEConvolveMatrixElement.h in Headers */ = {isa = PBXBuildFile; fileRef = 19BFF64611C0F2AC00B8C04D /* DOMSVGFEConvolveMatrixElement.h */; }; 328 330 19BFF64C11C0F2AC00B8C04D /* DOMSVGFEConvolveMatrixElement.mm in Sources */ = {isa = PBXBuildFile; fileRef = 19BFF64711C0F2AC00B8C04D /* DOMSVGFEConvolveMatrixElement.mm */; }; … … 6137 6139 1921327211C0E6BB00456238 /* SVGFEConvolveMatrixElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SVGFEConvolveMatrixElement.h; sourceTree = "<group>"; }; 6138 6140 1921327311C0E6BB00456238 /* SVGFEConvolveMatrixElement.idl */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = SVGFEConvolveMatrixElement.idl; sourceTree = "<group>"; }; 6141 19423B4E1234E86B00D1EE9E /* RenderSVGResourceFilterPrimitive.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = RenderSVGResourceFilterPrimitive.cpp; sourceTree = "<group>"; }; 6142 19423B4F1234E86B00D1EE9E /* RenderSVGResourceFilterPrimitive.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RenderSVGResourceFilterPrimitive.h; sourceTree = "<group>"; }; 6139 6143 19BFF64611C0F2AC00B8C04D /* DOMSVGFEConvolveMatrixElement.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DOMSVGFEConvolveMatrixElement.h; sourceTree = "<group>"; }; 6140 6144 19BFF64711C0F2AC00B8C04D /* DOMSVGFEConvolveMatrixElement.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = DOMSVGFEConvolveMatrixElement.mm; sourceTree = "<group>"; }; … … 17246 17250 841FDC241178C9BE00F8AC9B /* RenderSVGResourceFilter.cpp */, 17247 17251 841FDC251178C9BE00F8AC9B /* RenderSVGResourceFilter.h */, 17252 19423B4E1234E86B00D1EE9E /* RenderSVGResourceFilterPrimitive.cpp */, 17253 19423B4F1234E86B00D1EE9E /* RenderSVGResourceFilterPrimitive.h */, 17248 17254 08C34AF11179C056002D7456 /* RenderSVGResourceGradient.cpp */, 17249 17255 08C34AF21179C057002D7456 /* RenderSVGResourceGradient.h */, … … 19724 19730 08082373117987C100241DE8 /* RenderSVGResourceContainer.h in Headers */, 19725 19731 841FDC271178C9BE00F8AC9B /* RenderSVGResourceFilter.h in Headers */, 19732 19423B511234E86B00D1EE9E /* RenderSVGResourceFilterPrimitive.h in Headers */, 19726 19733 08C34AF61179C057002D7456 /* RenderSVGResourceGradient.h in Headers */, 19727 19734 08C34AF81179C057002D7456 /* RenderSVGResourceLinearGradient.h in Headers */, … … 22278 22285 086A400611F6D6B7002CEC53 /* RenderSVGResourceContainer.cpp in Sources */, 22279 22286 841FDC261178C9BE00F8AC9B /* RenderSVGResourceFilter.cpp in Sources */, 22287 19423B501234E86B00D1EE9E /* RenderSVGResourceFilterPrimitive.cpp in Sources */, 22280 22288 08C34AF51179C057002D7456 /* RenderSVGResourceGradient.cpp in Sources */, 22281 22289 08C34AF71179C057002D7456 /* RenderSVGResourceLinearGradient.cpp in Sources */, -
trunk/WebCore/rendering/RenderObject.h
r66776 r66823 321 321 virtual bool isSVGForeignObject() const { return false; } 322 322 virtual bool isSVGResourceContainer() const { return false; } 323 virtual bool isSVGResourceFilterPrimitive() const { return false; } 323 324 virtual bool isSVGShadowTreeRootContainer() const { return false; } 324 325 -
trunk/WebCore/rendering/SVGRenderTreeAsText.cpp
r65116 r66823 677 677 void writeSVGContainer(TextStream& ts, const RenderObject& container, int indent) 678 678 { 679 // Currently RenderSVGResourceFilterPrimitive has no meaningful output. 680 if (container.isSVGResourceFilterPrimitive()) 681 return; 679 682 writeStandardPrefix(ts, container, indent); 680 683 writePositionAndStyle(ts, container); -
trunk/WebCore/svg/SVGFEDiffuseLightingElement.cpp
r66498 r66823 76 76 || attrName == SVGNames::kernelUnitLengthAttr 77 77 || attrName == SVGNames::lighting_colorAttr) 78 SVGFilterElement::invalidateFilter(this);78 invalidate(); 79 79 } 80 80 -
trunk/WebCore/svg/SVGFELightElement.cpp
r66397 r66823 26 26 27 27 #include "Attribute.h" 28 #include "RenderSVGResource.h" 28 29 #include "SVGFilterElement.h" 29 30 #include "SVGNames.h" … … 77 78 || attrName == SVGNames::pointsAtZAttr 78 79 || attrName == SVGNames::specularExponentAttr 79 || attrName == SVGNames::limitingConeAngleAttr) 80 SVGFilterElement::invalidateFilter(this); 80 || attrName == SVGNames::limitingConeAngleAttr) { 81 if (Node* parentNode = parent()) { 82 RenderObject* renderer = parentNode->renderer(); 83 if (renderer && renderer->isSVGResourceFilterPrimitive()) 84 RenderSVGResource::markForLayoutAndParentResourceInvalidation(renderer); 85 } 86 } 81 87 } 82 88 … … 125 131 SVGElement::childrenChanged(changedByParser, beforeChange, afterChange, childCountDelta); 126 132 127 if (!changedByParser) 128 SVGFilterElement::invalidateFilter(this); 133 if (!changedByParser) { 134 if (Node* parentNode = parent()) { 135 RenderObject* renderer = parentNode->renderer(); 136 if (renderer && renderer->isSVGResourceFilterPrimitive()) 137 RenderSVGResource::markForLayoutAndParentResourceInvalidation(renderer); 138 } 139 } 129 140 } 130 141 -
trunk/WebCore/svg/SVGFEOffsetElement.cpp
r66498 r66823 58 58 || attrName == SVGNames::dxAttr 59 59 || attrName == SVGNames::dyAttr) 60 SVGFilterElement::invalidateFilter(this);60 invalidate(); 61 61 } 62 62 -
trunk/WebCore/svg/SVGFilterElement.h
r66397 r66823 46 46 FloatRect filterBoundingBox(const FloatRect&) const; 47 47 48 static void invalidateFilter(SVGElement* element)49 {50 ASSERT(element);51 if (!element->inDocument())52 return;53 Node* parent = element->parentNode();54 while (parent && !parent->hasTagName(SVGNames::filterTag))55 parent = parent->parentNode();56 57 if (!parent)58 return;59 60 if (RenderObject* object = parent->renderer())61 object->setNeedsLayout(true);62 }63 64 48 private: 65 49 SVGFilterElement(const QualifiedName&, Document*); -
trunk/WebCore/svg/SVGFilterPrimitiveStandardAttributes.cpp
r66397 r66823 27 27 #include "Attribute.h" 28 28 #include "FilterEffect.h" 29 #include "RenderSVGResourceFilterPrimitive.h" 29 30 #include "SVGLength.h" 30 31 #include "SVGNames.h" … … 71 72 || attrName == SVGNames::heightAttr 72 73 || attrName == SVGNames::resultAttr) 73 SVGFilterElement::invalidateFilter(this);74 invalidate(); 74 75 } 75 76 … … 104 105 105 106 if (!changedByParser) 106 SVGFilterElement::invalidateFilter(this);107 invalidate(); 107 108 } 108 109 … … 137 138 } 138 139 140 RenderObject* SVGFilterPrimitiveStandardAttributes::createRenderer(RenderArena* arena, RenderStyle*) 141 { 142 return new (arena) RenderSVGResourceFilterPrimitive(this); 143 } 144 139 145 } 140 146 -
trunk/WebCore/svg/SVGFilterPrimitiveStandardAttributes.h
r66397 r66823 24 24 #if ENABLE(SVG) && ENABLE(FILTERS) 25 25 #include "FilterEffect.h" 26 #include "RenderSVGResource.h" 26 27 #include "SVGFilterBuilder.h" 27 28 #include "SVGFilterElement.h" … … 48 49 virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0); 49 50 51 protected: 52 inline void invalidate() 53 { 54 if (RenderObject* primitiveRenderer = renderer()) 55 RenderSVGResource::markForLayoutAndParentResourceInvalidation(primitiveRenderer); 56 } 57 50 58 private: 51 59 virtual bool isFilterEffect() const { return true; } 52 60 53 virtual bool rendererIsNeeded(RenderStyle*) { return false; }61 virtual RenderObject* createRenderer(RenderArena*, RenderStyle*); 54 62 55 63 DECLARE_ANIMATED_PROPERTY(SVGFilterPrimitiveStandardAttributes, SVGNames::xAttr, SVGLength, X, x)
Note: See TracChangeset
for help on using the changeset viewer.