2009-05-28  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        Added a new build flag --filters. This replaces the old --svg-filters and enables
        other parts of WebKit to use some basic filters of platform/graphics/filters if needed.
        This patch also fixes a bug in dom/DOMImplementation.cpp where we used SVG_FILTER. This flag
        doesn't exist and was replaced by FILTERS as well as all SVG_FILTERS occurrences.
        Filters are not working yet. This patch is just a preperation. Filters are deactivated by
        default. 

        * Configurations/FeatureDefines.xcconfig:
        * DerivedSources.make:
        * GNUmakefile.am:
        * WebCore.pro:
        * bindings/objc/DOM.mm:
        (WebCore::createElementClassMap):
        * dom/DOMImplementation.cpp:
        (WebCore::isSVG10Feature):
        (WebCore::isSVG11Feature):
        * page/DOMWindow.idl:
        * platform/graphics/filters/FEBlend.cpp:
        * platform/graphics/filters/FEBlend.h:
        * platform/graphics/filters/FEColorMatrix.cpp:
        * platform/graphics/filters/FEColorMatrix.h:
        * platform/graphics/filters/FEComponentTransfer.cpp:
        * platform/graphics/filters/FEComponentTransfer.h:
        * platform/graphics/filters/FEComposite.cpp:
        * platform/graphics/filters/FEComposite.h:
        * platform/graphics/filters/FilterEffect.cpp:
        * platform/graphics/filters/FilterEffect.h:
        * platform/graphics/filters/SourceAlpha.cpp:
        * platform/graphics/filters/SourceAlpha.h:
        * platform/graphics/filters/SourceGraphic.cpp:
        * platform/graphics/filters/SourceGraphic.h:
        * rendering/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::selfWillPaint):
        * rendering/RenderSVGModelObject.cpp:
        * rendering/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::selfWillPaint):
        * rendering/SVGRenderSupport.cpp:
        (WebCore::SVGRenderBase::prepareToRenderSVGContent):
        (WebCore::SVGRenderBase::finishRenderSVGContent):
        (WebCore::SVGRenderBase::filterBoundingBoxForRenderer):
        * svg/Filter.cpp:
        * svg/Filter.h:
        * svg/FilterBuilder.cpp:
        * svg/FilterBuilder.h:
        * svg/SVGComponentTransferFunctionElement.cpp:
        * svg/SVGComponentTransferFunctionElement.h:
        * svg/SVGComponentTransferFunctionElement.idl:
        * svg/SVGFEBlendElement.cpp:
        * svg/SVGFEBlendElement.h:
        * svg/SVGFEBlendElement.idl:
        * svg/SVGFEColorMatrixElement.cpp:
        * svg/SVGFEColorMatrixElement.h:
        * svg/SVGFEColorMatrixElement.idl:
        * svg/SVGFEComponentTransferElement.cpp:
        * svg/SVGFEComponentTransferElement.h:
        * svg/SVGFEComponentTransferElement.idl:
        * svg/SVGFECompositeElement.cpp:
        * svg/SVGFECompositeElement.h:
        * svg/SVGFECompositeElement.idl:
        * svg/SVGFEDiffuseLightingElement.cpp:
        * svg/SVGFEDiffuseLightingElement.h:
        * svg/SVGFEDiffuseLightingElement.idl:
        * svg/SVGFEDisplacementMapElement.cpp:
        * svg/SVGFEDisplacementMapElement.h:
        * svg/SVGFEDisplacementMapElement.idl:
        * svg/SVGFEDistantLightElement.cpp:
        * svg/SVGFEDistantLightElement.h:
        * svg/SVGFEDistantLightElement.idl:
        * svg/SVGFEFloodElement.cpp:
        * svg/SVGFEFloodElement.h:
        * svg/SVGFEFloodElement.idl:
        * svg/SVGFEFuncAElement.cpp:
        * svg/SVGFEFuncAElement.h:
        * svg/SVGFEFuncAElement.idl:
        * svg/SVGFEFuncBElement.cpp:
        * svg/SVGFEFuncBElement.h:
        * svg/SVGFEFuncBElement.idl:
        * svg/SVGFEFuncGElement.cpp:
        * svg/SVGFEFuncGElement.h:
        * svg/SVGFEFuncGElement.idl:
        * svg/SVGFEFuncRElement.cpp:
        * svg/SVGFEFuncRElement.h:
        * svg/SVGFEFuncRElement.idl:
        * svg/SVGFEGaussianBlurElement.cpp:
        * svg/SVGFEGaussianBlurElement.h:
        * svg/SVGFEGaussianBlurElement.idl:
        * svg/SVGFEImageElement.cpp:
        * svg/SVGFEImageElement.h:
        * svg/SVGFEImageElement.idl:
        * svg/SVGFELightElement.cpp:
        * svg/SVGFELightElement.h:
        * svg/SVGFEMergeElement.cpp:
        * svg/SVGFEMergeElement.h:
        * svg/SVGFEMergeElement.idl:
        * svg/SVGFEMergeNodeElement.cpp:
        * svg/SVGFEMergeNodeElement.h:
        * svg/SVGFEMergeNodeElement.idl:
        * svg/SVGFEOffsetElement.cpp:
        * svg/SVGFEOffsetElement.h:
        * svg/SVGFEOffsetElement.idl:
        * svg/SVGFEPointLightElement.cpp:
        * svg/SVGFEPointLightElement.h:
        * svg/SVGFEPointLightElement.idl:
        * svg/SVGFESpecularLightingElement.cpp:
        * svg/SVGFESpecularLightingElement.h:
        * svg/SVGFESpecularLightingElement.idl:
        * svg/SVGFESpotLightElement.cpp:
        * svg/SVGFESpotLightElement.h:
        * svg/SVGFESpotLightElement.idl:
        * svg/SVGFETileElement.cpp:
        * svg/SVGFETileElement.h:
        * svg/SVGFETileElement.idl:
        * svg/SVGFETurbulenceElement.cpp:
        * svg/SVGFETurbulenceElement.h:
        * svg/SVGFETurbulenceElement.idl:
        * svg/SVGFilterElement.cpp:
        * svg/SVGFilterElement.h:
        * svg/SVGFilterElement.idl:
        * svg/SVGFilterPrimitiveStandardAttributes.cpp:
        * svg/SVGFilterPrimitiveStandardAttributes.h:
        * svg/graphics/SVGResourceFilter.cpp:
        * svg/graphics/SVGResourceFilter.h:
        * svg/graphics/cairo/SVGResourceFilterCairo.cpp:
        * svg/graphics/cg/SVGResourceFilterCg.cpp:
        * svg/graphics/cg/SVGResourceFilterCg.mm:
        * svg/graphics/filters/SVGDistantLightSource.h:
        * svg/graphics/filters/SVGFEConvolveMatrix.cpp:
        * svg/graphics/filters/SVGFEConvolveMatrix.h:
        * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
        * svg/graphics/filters/SVGFEDiffuseLighting.h:
        * svg/graphics/filters/SVGFEDisplacementMap.cpp:
        * svg/graphics/filters/SVGFEDisplacementMap.h:
        * svg/graphics/filters/SVGFEFlood.cpp:
        * svg/graphics/filters/SVGFEFlood.h:
        * svg/graphics/filters/SVGFEGaussianBlur.cpp:
        * svg/graphics/filters/SVGFEGaussianBlur.h:
        * svg/graphics/filters/SVGFEImage.cpp:
        * svg/graphics/filters/SVGFEImage.h:
        * svg/graphics/filters/SVGFEMerge.cpp:
        * svg/graphics/filters/SVGFEMerge.h:
        * svg/graphics/filters/SVGFEMorphology.cpp:
        * svg/graphics/filters/SVGFEMorphology.h:
        * svg/graphics/filters/SVGFEOffset.cpp:
        * svg/graphics/filters/SVGFEOffset.h:
        * svg/graphics/filters/SVGFESpecularLighting.cpp:
        * svg/graphics/filters/SVGFESpecularLighting.h:
        * svg/graphics/filters/SVGFETile.cpp:
        * svg/graphics/filters/SVGFETile.h:
        * svg/graphics/filters/SVGFETurbulence.cpp:
        * svg/graphics/filters/SVGFETurbulence.h:
        * svg/graphics/filters/SVGFilterEffect.cpp:
        * svg/graphics/filters/SVGFilterEffect.h:
        * svg/graphics/filters/SVGLightSource.cpp:
        * svg/graphics/filters/SVGLightSource.h:
        * svg/graphics/filters/SVGPointLightSource.h:
        * svg/graphics/filters/SVGSpotLightSource.h:
        * svg/graphics/filters/cg/SVGFEHelpersCg.h:
        * svg/graphics/filters/cg/SVGFEHelpersCg.mm:
        * svg/graphics/filters/cg/SVGFilterEffectCg.mm:
        * svg/graphics/filters/cg/WKArithmeticFilter.h:
        * svg/graphics/filters/cg/WKArithmeticFilter.m:
        * svg/graphics/filters/cg/WKComponentMergeFilter.h:
        * svg/graphics/filters/cg/WKComponentMergeFilter.m:
        * svg/graphics/filters/cg/WKDiffuseLightingFilter.h:
        * svg/graphics/filters/cg/WKDiffuseLightingFilter.m:
        * svg/graphics/filters/cg/WKDiscreteTransferFilter.h:
        * svg/graphics/filters/cg/WKDiscreteTransferFilter.m:
        * svg/graphics/filters/cg/WKDisplacementMapFilter.h
        * svg/graphics/filters/cg/WKDisplacementMapFilter.m:
        * svg/graphics/filters/cg/WKDistantLightFilter.h:
        * svg/graphics/filters/cg/WKDistantLightFilter.m:
        * svg/graphics/filters/cg/WKGammaTransferFilter.h:
        * svg/graphics/filters/cg/WKGammaTransferFilter.m:
        * svg/graphics/filters/cg/WKIdentityTransferFilter.h:
        * svg/graphics/filters/cg/WKIdentityTransferFilter.m:
        * svg/graphics/filters/cg/WKLinearTransferFilter.h:
        * svg/graphics/filters/cg/WKLinearTransferFilter.m:
        * svg/graphics/filters/cg/WKNormalMapFilter.h:
        * svg/graphics/filters/cg/WKNormalMapFilter.m:
        * svg/graphics/filters/cg/WKPointLightFilter.h:
        * svg/graphics/filters/cg/WKPointLightFilter.m:
        * svg/graphics/filters/cg/WKSpecularLightingFilter.h:
        * svg/graphics/filters/cg/WKSpecularLightingFilter.m:
        * svg/graphics/filters/cg/WKSpotLightFilter.h:
        * svg/graphics/filters/cg/WKSpotLightFilter.m:
        * svg/graphics/filters/cg/WKTableTransferFilter.h:
        * svg/graphics/filters/cg/WKTableTransferFilter.m:
        * svg/graphics/mac/SVGResourceFilterPlatformDataMac.h:
        * svg/graphics/mac/SVGResourceFilterPlatformDataMac.mm:
        * svg/graphics/qt/SVGResourceFilterQt.cpp:
        * svg/graphics/skia/SVGResourceFilterSkia.cpp:
        * svg/svgtags.in:

*WebKit/mac/
2009-05-28  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        Added new build flag --filters. More details in WebCore/ChangeLog.

        * Configurations/FeatureDefines.xcconfig:

*.
2009-05-28  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        Enable the new build flag --filters for Gtk. More details in WebCore/ChangeLog.

        * configure.ac:

*JavaScriptCore/
2009-05-28  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        Added new build flag --filters for Mac. More details in WebCore/ChangeLog.

        * Configurations/FeatureDefines.xcconfig:

*WebKitTools
2009-05-28  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        Added new build flag --filters. More details in WebCore/ChangeLog.

        * Scripts/build-webkit:


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@44253 268f45cc-cd09-0410-ab3c-d52691b4dbfc
diff --git a/WebCore/WebCore.pro b/WebCore/WebCore.pro
index e5060b8e..1242097 100644
--- a/WebCore/WebCore.pro
+++ b/WebCore/WebCore.pro
@@ -104,6 +104,7 @@
 }
 
 !contains(DEFINES, ENABLE_DASHBOARD_SUPPORT=.): DEFINES += ENABLE_DASHBOARD_SUPPORT=0
+!contains(DEFINES, ENABLE_FILTERS=.): DEFINES += ENABLE_FILTERS=0
 !contains(DEFINES, ENABLE_XPATH=.): DEFINES += ENABLE_XPATH=1
 !contains(DEFINES, ENABLE_XSLT=.): DEFINES += ENABLE_XSLT=0
 #!contains(DEFINES, ENABLE_XBL=.): DEFINES += ENABLE_XBL=1
@@ -119,10 +120,8 @@
     !contains(DEFINES, ENABLE_SVG_ANIMATION=.): DEFINES += ENABLE_SVG_ANIMATION=1
     !contains(DEFINES, ENABLE_SVG_AS_IMAGE=.): DEFINES += ENABLE_SVG_AS_IMAGE=1
     !contains(DEFINES, ENABLE_SVG_USE=.): DEFINES += ENABLE_SVG_USE=1
-    # disabled due svg filter rework
-    !contains(DEFINES, ENABLE_SVG_FILTERS=.): DEFINES += ENABLE_SVG_FILTERS=0
 } else {
-    DEFINES += ENABLE_SVG_FONTS=0 ENABLE_SVG_FILTERS=0 ENABLE_SVG_FOREIGN_OBJECT=0 ENABLE_SVG_ANIMATION=0 ENABLE_SVG_AS_IMAGE=0 ENABLE_SVG_USE=0
+    DEFINES += ENABLE_SVG_FONTS=0 ENABLE_SVG_FOREIGN_OBJECT=0 ENABLE_SVG_ANIMATION=0 ENABLE_SVG_AS_IMAGE=0 ENABLE_SVG_USE=0
 }
 
 # HTML5 media support
@@ -1487,6 +1486,19 @@
     FEATURE_DEFINES_JAVASCRIPT += ENABLE_XBL=1
 }
 
+contains(DEFINES, ENABLE_FILTERS=1) {
+    SOURCES += \
+        platform/graphics/filters/FEBlend.cpp \
+        platform/graphics/filters/FEColorMatrix.cpp \
+        platform/graphics/filters/FEComponentTransfer.cpp \
+        platform/graphics/filters/FEComposite.cpp \
+        platform/graphics/filters/FilterEffect.cpp \
+        platform/graphics/filters/SourceAlpha.cpp \
+        platform/graphics/filters/SourceGraphic.cpp
+
+    FEATURE_DEFINES_JAVASCRIPT += ENABLE_FILTERS=1
+}
+
 contains(DEFINES, ENABLE_WML=1) {
     SOURCES += \
         wml/WMLAElement.cpp \
@@ -1841,13 +1853,6 @@
         svg/animation/SMILTime.cpp \
         svg/animation/SMILTimeContainer.cpp \
         svg/animation/SVGSMILElement.cpp \
-        platform/graphics/filters/FEBlend.cpp \
-        platform/graphics/filters/FEColorMatrix.cpp \
-        platform/graphics/filters/FEComponentTransfer.cpp \
-        platform/graphics/filters/FEComposite.cpp \
-        platform/graphics/filters/FilterEffect.cpp \
-        platform/graphics/filters/SourceAlpha.cpp \
-        platform/graphics/filters/SourceGraphic.cpp \
         svg/graphics/filters/SVGFEConvolveMatrix.cpp \
         svg/graphics/filters/SVGFEDiffuseLighting.cpp \
         svg/graphics/filters/SVGFEDisplacementMap.cpp \