Index: Source/core/svg/SVGElement.h |
diff --git a/Source/core/svg/SVGElement.h b/Source/core/svg/SVGElement.h |
index 741a43ec220f48897878eb8374b549cddfe4fe1d..49cc827b53b73be57bb8730334df6c020ae1e513 100644 |
--- a/Source/core/svg/SVGElement.h |
+++ b/Source/core/svg/SVGElement.h |
@@ -155,6 +155,27 @@ public: |
bool inUseShadowTree() const; |
+ class InvalidationGuard { |
+ WTF_MAKE_NONCOPYABLE(InvalidationGuard); |
+ public: |
+ InvalidationGuard(SVGElement* element) : m_element(element) { } |
+ ~InvalidationGuard() { m_element->invalidateInstances(); } |
+ private: |
+ SVGElement* m_element; |
+ }; |
+ |
+ class InstanceUpdateBlocker { |
+ WTF_MAKE_NONCOPYABLE(InstanceUpdateBlocker); |
+ public: |
+ InstanceUpdateBlocker(SVGElement* targetElement); |
+ ~InstanceUpdateBlocker(); |
+ |
+ private: |
+ SVGElement* m_targetElement; |
+ }; |
+ |
+ void invalidateInstances(); |
+ |
protected: |
SVGElement(const QualifiedName&, Document&, ConstructionType = CreateSVGElement); |