From db14019a23d96bc8a444b6576a5da8bd1cfbc8b0 Mon Sep 17 00:00:00 2001 From: Steve Block Date: Wed, 4 Aug 2010 11:41:34 +0100 Subject: Merge WebKit at r64523 : Initial merge by git. Change-Id: Ibb796c6802e757b1d9b40f58205cfbe4da95fcd4 --- WebCore/rendering/RenderSVGResourceContainer.h | 32 +++++++++++++++++--------- 1 file changed, 21 insertions(+), 11 deletions(-) (limited to 'WebCore/rendering/RenderSVGResourceContainer.h') diff --git a/WebCore/rendering/RenderSVGResourceContainer.h b/WebCore/rendering/RenderSVGResourceContainer.h index d57b1db..4271a5f 100644 --- a/WebCore/rendering/RenderSVGResourceContainer.h +++ b/WebCore/rendering/RenderSVGResourceContainer.h @@ -23,10 +23,7 @@ #if ENABLE(SVG) #include "RenderSVGHiddenContainer.h" - -#include "SVGStyledTransformableElement.h" #include "RenderSVGResource.h" -#include "RenderSVGShadowTreeRootContainer.h" namespace WebCore { @@ -36,27 +33,40 @@ public: RenderSVGResourceContainer(SVGStyledElement*); virtual ~RenderSVGResourceContainer(); - void idChanged(); + virtual void layout(); + virtual void destroy(); + virtual void styleDidChange(StyleDifference, const RenderStyle* oldStyle); virtual bool isSVGResourceContainer() const { return true; } virtual bool drawsContents() { return false; } - virtual RenderSVGResourceContainer* toRenderSVGResourceContainer() { return this; } - virtual bool childElementReferencesResource(const SVGRenderStyle*, const String&) const { return false; } static AffineTransform transformOnNonScalingStroke(RenderObject*, const AffineTransform& resourceTransform); - bool containsCyclicReference(const Node* startNode) const; + void idChanged(); + +protected: + enum InvalidationMode { + LayoutAndBoundariesInvalidation, + BoundariesInvalidation, + RepaintInvalidation + }; + + // Used from the invalidateClient/invalidateClients methods from classes, inheriting from us. + void markAllClientsForInvalidation(InvalidationMode); + void markClientForInvalidation(RenderObject*, InvalidationMode); private: friend class SVGResourcesCache; - - // FIXME: No-ops for now, until follow-up patch on bug 43031 lands. - void addClient(RenderObject*) { } - void removeClient(RenderObject*) { } + void addClient(RenderObject*); + void removeClient(RenderObject*); private: + void registerResource(); + AtomicString m_id; + bool m_registered; + HashSet m_clients; }; inline RenderSVGResourceContainer* getRenderSVGResourceContainerById(Document* document, const AtomicString& id) -- cgit v1.1