diff options
author | Steve Block <steveblock@google.com> | 2010-08-04 11:41:34 +0100 |
---|---|---|
committer | Steve Block <steveblock@google.com> | 2010-08-09 12:04:44 +0100 |
commit | db14019a23d96bc8a444b6576a5da8bd1cfbc8b0 (patch) | |
tree | 9f793c5b0f5e1f2aca8247158920e2c4bf962bbf /WebCore/rendering/RenderSVGResourceContainer.h | |
parent | bf916837aa84f1e4b00e6ed6268516c2acd27545 (diff) | |
download | external_webkit-db14019a23d96bc8a444b6576a5da8bd1cfbc8b0.zip external_webkit-db14019a23d96bc8a444b6576a5da8bd1cfbc8b0.tar.gz external_webkit-db14019a23d96bc8a444b6576a5da8bd1cfbc8b0.tar.bz2 |
Merge WebKit at r64523 : Initial merge by git.
Change-Id: Ibb796c6802e757b1d9b40f58205cfbe4da95fcd4
Diffstat (limited to 'WebCore/rendering/RenderSVGResourceContainer.h')
-rw-r--r-- | WebCore/rendering/RenderSVGResourceContainer.h | 32 |
1 files changed, 21 insertions, 11 deletions
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<RenderObject*> m_clients; }; inline RenderSVGResourceContainer* getRenderSVGResourceContainerById(Document* document, const AtomicString& id) |