Bug 736890 - Speed up building of layout/svg/base/src by cleaning up #include directives in its header files. r=dholbert.

This commit is contained in:
Jonathan Watt 2012-03-20 12:15:55 +00:00
parent c9836192c8
commit e30bc57157
47 changed files with 274 additions and 116 deletions

View File

@ -97,6 +97,7 @@
#include "gfxFont.h"
#include "gfxBlur.h"
#include "gfxUtils.h"
#include "nsRenderingContext.h"
#include "nsFrameManager.h"
#include "nsFrameLoader.h"

View File

@ -52,6 +52,8 @@
#include "prdtoa.h"
#include "nsSVGUtils.h"
#include "nsMathUtils.h"
#include "nsMemory.h"
#include "nsReadableUtils.h"
#include <stdlib.h>
#include <math.h>

View File

@ -71,6 +71,7 @@
#include "nsINameSpaceManager.h"
#include "nsBlockFrame.h"
#include "gfxContext.h"
#include "nsRenderingContext.h"
#include "nsIInterfaceRequestorUtils.h"
#include "gfxPlatform.h"
#include "gfxImageSurface.h"

View File

@ -69,6 +69,7 @@
#include "gfxRect.h"
#include "gfxContext.h"
#include "gfxFont.h"
#include "nsRenderingContext.h"
#include "nsIInterfaceRequestorUtils.h"
#include "nsCSSRendering.h"
#include "nsContentUtils.h"

View File

@ -124,6 +124,7 @@
#include "nsDeckFrame.h"
#include "gfxContext.h"
#include "nsRenderingContext.h"
#include "CSSCalc.h"
#include "nsAbsoluteContainingBlock.h"

View File

@ -39,21 +39,21 @@
#ifndef __NS_ISVGCHILDFRAME_H__
#define __NS_ISVGCHILDFRAME_H__
#include "nsQueryFrame.h"
#include "nsCOMPtr.h"
#include "nsRect.h"
#include "gfxRect.h"
#include "gfxMatrix.h"
#include "nsQueryFrame.h"
#include "nsRect.h"
class gfxContext;
class gfxMatrix;
class nsIFrame;
class nsRenderingContext;
struct nsPoint;
namespace mozilla {
class SVGAnimatedNumberList;
class SVGNumberList;
class SVGAnimatedLengthList;
class SVGAnimatedNumberList;
class SVGLengthList;
class SVGNumberList;
class SVGUserUnitList;
}

View File

@ -43,6 +43,7 @@
#include "nsQueryFrame.h"
class nsIDOMSVGPoint;
class nsSVGGlyphFrame;
class nsISVGGlyphFragmentNode : public nsQueryFrame
{

View File

@ -34,10 +34,12 @@
*
* ***** END LICENSE BLOCK ***** */
#include "nsSVGClipPathFrame.h"
#include "nsIDOMDocument.h"
#include "nsIDocument.h"
#include "nsIDOMSVGClipPathElement.h"
#include "nsSVGClipPathFrame.h"
#include "nsRenderingContext.h"
#include "nsGkAtoms.h"
#include "nsSVGUtils.h"
#include "nsSVGEffects.h"

View File

@ -37,9 +37,9 @@
#ifndef __NS_SVGCLIPPATHFRAME_H__
#define __NS_SVGCLIPPATHFRAME_H__
#include "gfxMatrix.h"
#include "nsSVGContainerFrame.h"
#include "nsSVGUtils.h"
#include "gfxMatrix.h"
class nsRenderingContext;

View File

@ -37,12 +37,22 @@
#ifndef NS_SVGCONTAINERFRAME_H
#define NS_SVGCONTAINERFRAME_H
#include "nsContainerFrame.h"
#include "nsISVGChildFrame.h"
#include "gfxRect.h"
#include "gfxMatrix.h"
#include "gfxRect.h"
#include "nsContainerFrame.h"
#include "nsFrame.h"
#include "nsIFrame.h"
#include "nsISVGChildFrame.h"
#include "nsQueryFrame.h"
#include "nsRect.h"
class nsFrameList;
class nsIContent;
class nsIPresShell;
class nsRenderingContext;
class nsStyleContext;
struct nsPoint;
typedef nsContainerFrame nsSVGContainerFrameBase;

View File

@ -38,14 +38,25 @@
#ifndef NSSVGEFFECTS_H_
#define NSSVGEFFECTS_H_
#include "nsIContent.h"
#include "FramePropertyTable.h"
#include "mozilla/dom/Element.h"
#include "nsHashKeys.h"
#include "nsID.h"
#include "nsIFrame.h"
#include "nsIMutationObserver.h"
#include "nsInterfaceHashtable.h"
#include "nsISupportsBase.h"
#include "nsISupportsImpl.h"
#include "nsReferencedElement.h"
#include "nsStubMutationObserver.h"
#include "nsSVGUtils.h"
#include "nsInterfaceHashtable.h"
#include "nsTHashtable.h"
#include "nsTraceRefcnt.h"
#include "nsURIHashKey.h"
class nsIAtom;
class nsIPresShell;
class nsIURI;
class nsSVGClipPathFrame;
class nsSVGFilterFrame;
class nsSVGMaskFrame;

View File

@ -35,6 +35,8 @@
* ***** END LICENSE BLOCK ***** */
#include "nsSVGFilterFrame.h"
#include "nsRenderingContext.h"
#include "nsIDocument.h"
#include "nsSVGOuterSVGFrame.h"
#include "nsGkAtoms.h"

View File

@ -37,14 +37,22 @@
#ifndef __NS_SVGFILTERFRAME_H__
#define __NS_SVGFILTERFRAME_H__
#include "nsFrame.h"
#include "nsQueryFrame.h"
#include "nsRect.h"
#include "nsSVGContainerFrame.h"
#include "nsSVGUtils.h"
class nsIAtom;
class nsIContent;
class nsIFrame;
class nsIPresShell;
class nsRenderingContext;
class nsStyleContext;
class nsSVGFilterPaintCallback;
typedef nsSVGContainerFrame nsSVGFilterFrameBase;
class nsSVGFilterFrame : public nsSVGFilterFrameBase
{
friend nsIFrame*

View File

@ -35,6 +35,8 @@
* ***** END LICENSE BLOCK ***** */
#include "nsSVGFilterInstance.h"
#include "nsRenderingContext.h"
#include "nsSVGUtils.h"
#include "nsIDOMSVGUnitTypes.h"
#include "gfxPlatform.h"

View File

@ -37,21 +37,24 @@
#ifndef __NS_SVGFILTERINSTANCE_H__
#define __NS_SVGFILTERINSTANCE_H__
#include "nsIDOMSVGLength.h"
#include "nsIDOMSVGFilters.h"
#include "gfxMatrix.h"
#include "gfxPoint.h"
#include "gfxRect.h"
#include "nsCOMPtr.h"
#include "nsHashKeys.h"
#include "nsPoint.h"
#include "nsRect.h"
#include "nsIContent.h"
#include "nsAutoPtr.h"
#include "nsSize.h"
#include "nsSVGFilters.h"
#include "nsSVGNumber2.h"
#include "nsSVGNumberPair.h"
#include "nsTArray.h"
#include "gfxImageSurface.h"
class nsSVGElement;
class gfxASurface;
class gfxImageSurface;
class nsIFrame;
class nsSVGFilterElement;
class nsSVGFilterPaintCallback;
struct gfxRect;
/**
* This class performs all filter processing.

View File

@ -37,11 +37,11 @@
#ifndef __NS_SVGFILTERPAINTCALLBACK_H__
#define __NS_SVGFILTERPAINTCALLBACK_H__
#include "nsRect.h"
class nsIFrame;
class nsRenderingContext;
struct nsIntRect;
class nsSVGFilterPaintCallback {
public:
/**

View File

@ -42,6 +42,7 @@
#include "nsIDOMSVGSVGElement.h"
#include "nsSVGOuterSVGFrame.h"
#include "nsRegion.h"
#include "nsRenderingContext.h"
#include "nsGkAtoms.h"
#include "nsLayoutUtils.h"
#include "nsSVGUtils.h"

View File

@ -40,11 +40,10 @@
#define NSSVGFOREIGNOBJECTFRAME_H__
#include "nsContainerFrame.h"
#include "nsISVGChildFrame.h"
#include "nsSVGUtils.h"
#include "nsRegion.h"
#include "nsIPresShell.h"
#include "mozilla/Attributes.h"
#include "nsISVGChildFrame.h"
#include "nsRegion.h"
#include "nsSVGUtils.h"
class nsRenderingContext;
class nsSVGOuterSVGFrame;

View File

@ -39,8 +39,8 @@
#ifndef NSSVGGFRAME_H
#define NSSVGGFRAME_H
#include "nsSVGContainerFrame.h"
#include "gfxMatrix.h"
#include "nsSVGContainerFrame.h"
typedef nsSVGDisplayContainerFrame nsSVGGFrameBase;

View File

@ -39,10 +39,16 @@
#ifndef __NS_SVGGENERICCONTAINERFRAME_H__
#define __NS_SVGGENERICCONTAINERFRAME_H__
#include "nsIDOMSVGGElement.h"
#include "nsSVGContainerFrame.h"
#include "nsGkAtoms.h"
#include "gfxMatrix.h"
#include "nsFrame.h"
#include "nsLiteralString.h"
#include "nsQueryFrame.h"
#include "nsSVGContainerFrame.h"
class nsIAtom;
class nsIFrame;
class nsIPresShell;
class nsStyleContext;
typedef nsSVGDisplayContainerFrame nsSVGGenericContainerFrameBase;

View File

@ -38,11 +38,19 @@
#ifndef __NS_SVGGEOMETRYFRAME_H__
#define __NS_SVGGEOMETRYFRAME_H__
#include "nsFrame.h"
#include "gfxMatrix.h"
#include "gfxTypes.h"
#include "nsFrame.h"
#include "nsIFrame.h"
#include "nsQueryFrame.h"
#include "nsRect.h"
class nsSVGPaintServerFrame;
class gfxContext;
class nsIContent;
class nsStyleContext;
class nsSVGPaintServerFrame;
struct nsStyleSVGPaint;
typedef nsFrame nsSVGGeometryFrameBase;

View File

@ -36,6 +36,9 @@
*
* ***** END LICENSE BLOCK ***** */
#include "nsSVGGlyphFrame.h"
#include "nsRenderingContext.h"
#include "nsSVGTextFrame.h"
#include "mozilla/LookAndFeel.h"
#include "nsTextFragment.h"
@ -45,7 +48,6 @@
#include "nsIDOMSVGLength.h"
#include "nsIDOMSVGRect.h"
#include "DOMSVGPoint.h"
#include "nsSVGGlyphFrame.h"
#include "nsSVGTextPathFrame.h"
#include "nsSVGPathElement.h"
#include "nsSVGRect.h"

View File

@ -39,19 +39,21 @@
#ifndef __NS_SVGGLYPHFRAME_H__
#define __NS_SVGGLYPHFRAME_H__
#include "nsSVGGeometryFrame.h"
#include "gfxFont.h"
#include "nsISVGGlyphFragmentNode.h"
#include "nsISVGChildFrame.h"
#include "nsSVGGeometryFrame.h"
#include "nsSVGUtils.h"
#include "gfxContext.h"
#include "gfxFont.h"
#include "nsTextFragment.h"
class CharacterIterator;
class gfxContext;
class nsIDOMSVGRect;
class nsRenderingContext;
class nsSVGGlyphFrame;
class nsSVGTextFrame;
class nsSVGTextPathFrame;
class nsSVGGlyphFrame;
class CharacterIterator;
struct CharacterPosition;
typedef gfxFont::DrawMode DrawMode;

View File

@ -172,6 +172,19 @@ nsSVGGradientFrame::GetEnumValue(PRUint32 aIndex, nsIContent *aDefault)
mEnumAttributes[aIndex].GetAnimValue();
}
PRUint16
nsSVGGradientFrame::GetGradientUnits()
{
// This getter is called every time the others are called - maybe cache it?
return GetEnumValue(nsSVGGradientElement::GRADIENTUNITS);
}
PRUint16
nsSVGGradientFrame::GetSpreadMethod()
{
return GetEnumValue(nsSVGGradientElement::SPREADMETHOD);
}
const SVGAnimatedTransformList*
nsSVGGradientFrame::GetGradientTransformList(nsIContent* aDefault)
{

View File

@ -39,11 +39,26 @@
#ifndef __NS_SVGGRADIENTFRAME_H__
#define __NS_SVGGRADIENTFRAME_H__
#include "gfxMatrix.h"
#include "nsCOMPtr.h"
#include "nsFrame.h"
#include "nsLiteralString.h"
#include "nsSVGPaintServerFrame.h"
#include "nsSVGElement.h"
#include "gfxPattern.h"
class nsIDOMSVGStopElement;
class gfxPattern;
class nsIAtom;
class nsIContent;
class nsIFrame;
class nsIPresShell;
class nsStyleContext;
class nsSVGLinearGradientElement;
class nsSVGRadialGradientElement;
struct gfxRect;
namespace mozilla {
class SVGAnimatedTransformList;
}
typedef nsSVGPaintServerFrame nsSVGGradientFrameBase;
@ -112,15 +127,8 @@ protected:
{
return GetEnumValue(aIndex, mContent);
}
PRUint16 GetGradientUnits()
{
// This getter is called every time the others are called - maybe cache it?
return GetEnumValue(nsSVGGradientElement::GRADIENTUNITS);
}
PRUint16 GetSpreadMethod()
{
return GetEnumValue(nsSVGGradientElement::SPREADMETHOD);
}
PRUint16 GetGradientUnits();
PRUint16 GetSpreadMethod();
// Gradient-type-specific lookups since the length values differ between
// linear and radial gradients

View File

@ -35,6 +35,8 @@
* ***** END LICENSE BLOCK ***** */
#include "nsSVGPathGeometryFrame.h"
#include "nsRenderingContext.h"
#include "imgIContainer.h"
#include "nsStubImageDecoderObserver.h"
#include "nsImageLoadingContent.h"

View File

@ -37,6 +37,8 @@
* ***** END LICENSE BLOCK ***** */
#include "nsSVGInnerSVGFrame.h"
#include "nsRenderingContext.h"
#include "nsIFrame.h"
#include "nsISVGChildFrame.h"
#include "nsIDOMSVGAnimatedRect.h"

View File

@ -37,6 +37,7 @@
#include "nsSVGIntegrationUtils.h"
#include "nsRenderingContext.h"
#include "nsSVGUtils.h"
#include "nsSVGEffects.h"
#include "nsRegion.h"

View File

@ -38,17 +38,19 @@
#ifndef NSSVGINTEGRATIONUTILS_H_
#define NSSVGINTEGRATIONUTILS_H_
#include "nsPoint.h"
#include "nsRect.h"
#include "gfxRect.h"
#include "gfxMatrix.h"
#include "gfxPattern.h"
#include "gfxRect.h"
#include "nsRect.h"
class nsIFrame;
class nsDisplayListBuilder;
class nsDisplayList;
class nsDisplayListBuilder;
class nsIFrame;
class nsRenderingContext;
struct nsPoint;
struct nsSize;
/***** Integration of SVG effects with regular frame painting *****/
class nsSVGIntegrationUtils

View File

@ -34,10 +34,12 @@
*
* ***** END LICENSE BLOCK ***** */
#include "nsSVGMarkerFrame.h"
#include "nsIDOMSVGAnimatedRect.h"
#include "nsIDOMSVGRect.h"
#include "nsIDocument.h"
#include "nsSVGMarkerFrame.h"
#include "nsRenderingContext.h"
#include "nsSVGPathGeometryFrame.h"
#include "nsSVGEffects.h"
#include "nsSVGMarkerElement.h"

View File

@ -37,16 +37,23 @@
#ifndef __NS_SVGMARKERFRAME_H__
#define __NS_SVGMARKERFRAME_H__
#include "gfxMatrix.h"
#include "gfxRect.h"
#include "nsFrame.h"
#include "nsLiteralString.h"
#include "nsQueryFrame.h"
#include "nsSVGContainerFrame.h"
#include "nsSVGUtils.h"
#include "gfxMatrix.h"
class gfxContext;
class nsIAtom;
class nsIContent;
class nsIFrame;
class nsIPresShell;
class nsRenderingContext;
class nsStyleContext;
class nsSVGPathGeometryFrame;
class nsSVGSVGElement;
class nsIURI;
class nsIContent;
struct nsSVGMark;
typedef nsSVGContainerFrame nsSVGMarkerFrameBase;

View File

@ -34,8 +34,10 @@
*
* ***** END LICENSE BLOCK ***** */
#include "nsIDocument.h"
#include "nsSVGMaskFrame.h"
#include "nsIDocument.h"
#include "nsRenderingContext.h"
#include "nsSVGContainerFrame.h"
#include "nsSVGMaskElement.h"
#include "nsSVGEffects.h"

View File

@ -37,10 +37,10 @@
#ifndef __NS_SVGMASKFRAME_H__
#define __NS_SVGMASKFRAME_H__
#include "nsSVGContainerFrame.h"
#include "nsSVGUtils.h"
#include "gfxPattern.h"
#include "gfxMatrix.h"
#include "nsSVGContainerFrame.h"
#include "nsSVGUtils.h"
class gfxContext;
class nsRenderingContext;

View File

@ -37,7 +37,9 @@
* ***** END LICENSE BLOCK ***** */
#include "nsSVGOuterSVGFrame.h"
#include "nsIDOMSVGSVGElement.h"
#include "nsRenderingContext.h"
#include "nsSVGSVGElement.h"
#include "nsSVGTextFrame.h"
#include "DOMSVGTests.h"

View File

@ -39,11 +39,9 @@
#ifndef __NS_SVGOUTERSVGFRAME_H__
#define __NS_SVGOUTERSVGFRAME_H__
#include "nsSVGContainerFrame.h"
#include "nsISVGSVGFrame.h"
#include "nsIDOMSVGPoint.h"
#include "nsIDOMSVGNumber.h"
#include "gfxMatrix.h"
#include "nsISVGSVGFrame.h"
#include "nsSVGContainerFrame.h"
////////////////////////////////////////////////////////////////////////
// nsSVGOuterSVGFrame class

View File

@ -37,12 +37,20 @@
#ifndef __NS_SVGPAINTSERVERFRAME_H__
#define __NS_SVGPAINTSERVERFRAME_H__
#include "nsCOMPtr.h"
#include "nsFrame.h"
#include "nsIFrame.h"
#include "nsQueryFrame.h"
#include "nsSVGContainerFrame.h"
#include "nsSVGUtils.h"
class gfxContext;
class gfxPattern;
class nsStyleContext;
class nsSVGGeometryFrame;
struct gfxRect;
typedef nsSVGContainerFrame nsSVGPaintServerFrameBase;
class nsSVGPaintServerFrame : public nsSVGPaintServerFrameBase

View File

@ -37,7 +37,9 @@
* ***** END LICENSE BLOCK ***** */
#include "nsSVGPathGeometryFrame.h"
#include "nsGkAtoms.h"
#include "nsRenderingContext.h"
#include "nsSVGMarkerFrame.h"
#include "nsSVGUtils.h"
#include "nsSVGEffects.h"

View File

@ -39,16 +39,27 @@
#ifndef __NS_SVGPATHGEOMETRYFRAME_H__
#define __NS_SVGPATHGEOMETRYFRAME_H__
#include "gfxMatrix.h"
#include "gfxRect.h"
#include "nsFrame.h"
#include "nsISVGChildFrame.h"
#include "nsSVGUtils.h"
#include "nsGkAtoms.h"
#include "nsLiteralString.h"
#include "nsQueryFrame.h"
#include "nsRect.h"
#include "nsSVGGeometryFrame.h"
#include "nsSVGUtils.h"
class gfxContext;
class nsIAtom;
class nsIFrame;
class nsIPresShell;
class nsRenderingContext;
class nsStyleContext;
class nsSVGMarkerFrame;
class nsSVGMarkerProperty;
struct nsPoint;
typedef nsSVGGeometryFrame nsSVGPathGeometryFrameBase;
class nsSVGPathGeometryFrame : public nsSVGPathGeometryFrameBase,

View File

@ -40,6 +40,7 @@
#include "nsGkAtoms.h"
#include "nsIDOMSVGAnimatedRect.h"
#include "nsRenderingContext.h"
#include "SVGAnimatedTransformList.h"
#include "nsStyleContext.h"
#include "nsINameSpaceManager.h"

View File

@ -39,16 +39,15 @@
#ifndef __NS_SVGPATTERNFRAME_H__
#define __NS_SVGPATTERNFRAME_H__
#include "nsSVGPaintServerFrame.h"
#include "gfxMatrix.h"
#include "nsIDOMSVGAnimTransformList.h"
#include "nsSVGPaintServerFrame.h"
class nsIFrame;
class nsSVGLength2;
class nsSVGElement;
class nsSVGViewBox;
class gfxContext;
class gfxASurface;
class gfxContext;
class nsIFrame;
class nsSVGElement;
class nsSVGLength2;
class nsSVGViewBox;
namespace mozilla {
class SVGAnimatedPreserveAspectRatio;

View File

@ -39,9 +39,20 @@
#ifndef NSSVGTSPANFRAME_H
#define NSSVGTSPANFRAME_H
#include "nsSVGTextContainerFrame.h"
#include "nsISVGGlyphFragmentNode.h"
#include "gfxMatrix.h"
#include "nsFrame.h"
#include "nsISVGGlyphFragmentNode.h"
#include "nsLiteralString.h"
#include "nsQueryFrame.h"
#include "nsSVGTextContainerFrame.h"
class nsIAtom;
class nsIContent;
class nsIDOMSVGPoint;
class nsIFrame;
class nsIPresShell;
class nsStyleContext;
class nsSVGGlyphFrame;
typedef nsSVGTextContainerFrame nsSVGTSpanFrameBase;

View File

@ -37,13 +37,20 @@
#ifndef NS_SVGTEXTCONTAINERFRAME_H
#define NS_SVGTEXTCONTAINERFRAME_H
#include "nsFrame.h"
#include "nsIFrame.h"
#include "nsISVGChildFrame.h"
#include "nsQueryFrame.h"
#include "nsSVGContainerFrame.h"
#include "nsTArray.h"
class nsFrameList;
class nsIDOMSVGPoint;
class nsIDOMSVGRect;
class nsISVGGlyphFragmentNode;
class nsSVGTextFrame;
class nsStyleContext;
class nsSVGGlyphFrame;
class nsSVGTextFrame;
class nsSVGTextContainerFrame : public nsSVGDisplayContainerFrame
{

View File

@ -39,9 +39,9 @@
#ifndef NS_SVGTEXTFRAME_H
#define NS_SVGTEXTFRAME_H
#include "nsSVGTextContainerFrame.h"
#include "gfxRect.h"
#include "gfxMatrix.h"
#include "gfxRect.h"
#include "nsSVGTextContainerFrame.h"
class nsRenderingContext;

View File

@ -35,6 +35,7 @@
* ***** END LICENSE BLOCK ***** */
#include "nsSVGTextPathFrame.h"
#include "nsIDOMSVGTextPathElement.h"
#include "nsSVGLength2.h"
#include "nsIDOMSVGURIReference.h"
@ -42,6 +43,7 @@
#include "nsContentUtils.h"
#include "nsSVGPathElement.h"
#include "nsSVGTextPathElement.h"
#include "SVGLengthList.h"
using namespace mozilla;

View File

@ -37,8 +37,20 @@
#ifndef NSSVGTEXTPATHFRAME_H
#define NSSVGTEXTPATHFRAME_H
#include "gfxTypes.h"
#include "nsCOMPtr.h"
#include "nsFrame.h"
#include "nsISVGChildFrame.h"
#include "nsLiteralString.h"
#include "nsQueryFrame.h"
#include "nsSVGTSpanFrame.h"
#include "SVGLengthList.h"
class gfxFlattenedPath;
class nsIAtom;
class nsIContent;
class nsIFrame;
class nsIPresShell;
class nsStyleContext;
namespace mozilla {
class SVGNumberList;
@ -48,6 +60,8 @@ typedef nsSVGTSpanFrame nsSVGTextPathFrameBase;
class nsSVGTextPathFrame : public nsSVGTextPathFrameBase
{
typedef mozilla::SVGNumberList SVGNumberList;
friend nsIFrame*
NS_NewSVGTextPathFrame(nsIPresShell* aPresShell, nsStyleContext* aContext);
protected:

View File

@ -36,9 +36,11 @@
// include nsSVGUtils.h first to ensure definition of M_SQRT1_2 is picked up
#include "nsSVGUtils.h"
#include "nsIDOMDocument.h"
#include "nsIDOMSVGElement.h"
#include "nsIDOMSVGSVGElement.h"
#include "nsRenderingContext.h"
#include "nsStyleCoord.h"
#include "nsPresContext.h"
#include "nsSVGSVGElement.h"

View File

@ -41,43 +41,42 @@
#define _USE_MATH_DEFINES
#include <math.h>
#include "nscore.h"
#include "nsCOMPtr.h"
#include "nsRect.h"
#include "gfxContext.h"
#include "nsRenderingContext.h"
#include "gfxRect.h"
#include "gfxMatrix.h"
#include "nsStyleStruct.h"
#include "gfxPoint.h"
#include "gfxRect.h"
#include "nsAlgorithm.h"
#include "nsColor.h"
#include "nsCOMPtr.h"
#include "nsID.h"
#include "nsISupportsBase.h"
#include "nsMathUtils.h"
#include "nsPoint.h"
#include "nsRect.h"
class nsIDocument;
class nsPresContext;
class gfxASurface;
class gfxContext;
class gfxImageSurface;
class gfxPattern;
class nsFrameList;
class nsIContent;
class nsIDocument;
class nsIDOMSVGElement;
class nsIFrame;
class nsPresContext;
class nsRenderingContext;
class nsStyleContext;
class nsStyleCoord;
class nsFrameList;
class nsIFrame;
struct nsStyleSVGPaint;
class nsIDOMSVGElement;
class nsIDOMSVGLength;
class nsIURI;
class nsSVGOuterSVGFrame;
class nsIAtom;
class nsSVGLength2;
class nsSVGElement;
class nsSVGSVGElement;
class nsAttrValue;
class gfxContext;
class gfxASurface;
class gfxPattern;
class gfxImageSurface;
struct gfxSize;
struct nsStyleFont;
class nsSVGEnum;
class nsISVGChildFrame;
class nsSVGGeometryFrame;
class nsSVGPathGeometryFrame;
class nsSVGDisplayContainerFrame;
class nsSVGElement;
class nsSVGEnum;
class nsSVGGeometryFrame;
class nsSVGLength2;
class nsSVGOuterSVGFrame;
class nsSVGPathGeometryFrame;
class nsSVGSVGElement;
struct nsStyleSVG;
struct nsStyleSVGPaint;
namespace mozilla {
class SVGAnimatedPreserveAspectRatio;