summaryrefslogtreecommitdiffstats
path: root/WebCore/rendering/RenderSVGResourceContainer.h
diff options
context:
space:
mode:
authorSteve Block <steveblock@google.com>2010-08-04 11:41:34 +0100
committerSteve Block <steveblock@google.com>2010-08-09 12:04:44 +0100
commitdb14019a23d96bc8a444b6576a5da8bd1cfbc8b0 (patch)
tree9f793c5b0f5e1f2aca8247158920e2c4bf962bbf /WebCore/rendering/RenderSVGResourceContainer.h
parentbf916837aa84f1e4b00e6ed6268516c2acd27545 (diff)
downloadexternal_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.h32
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)