Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(945)

Unified Diff: Source/core/svg/SVGElement.h

Issue 268223003: Move InvalidationGuard/InstanceUpdateBlocker out of SVGElementInstance (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 6 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: Source/core/svg/SVGElement.h
diff --git a/Source/core/svg/SVGElement.h b/Source/core/svg/SVGElement.h
index 741a43ec220f48897878eb8374b549cddfe4fe1d..e91f7e3eb7840125cfd9342f6a154bf4944afae6 100644
--- a/Source/core/svg/SVGElement.h
+++ b/Source/core/svg/SVGElement.h
@@ -155,6 +155,27 @@ public:
bool inUseShadowTree() const;
+ class InstanceInvalidationGuard {
pdr. 2014/05/05 21:00:15 I would have left this as InvalidationGuard since
+ WTF_MAKE_NONCOPYABLE(InstanceInvalidationGuard);
+ public:
+ InstanceInvalidationGuard(SVGElement* element) : m_element(element) { }
+ ~InstanceInvalidationGuard() { SVGElement::invalidateAllInstancesOfElement(m_element); }
+ private:
+ SVGElement* m_element;
+ };
+
+ class InstanceUpdateBlocker {
+ WTF_MAKE_NONCOPYABLE(InstanceUpdateBlocker);
+ public:
+ InstanceUpdateBlocker(SVGElement* targetElement);
+ ~InstanceUpdateBlocker();
+
+ private:
+ SVGElement* m_targetElement;
+ };
+
+ static void invalidateAllInstancesOfElement(SVGElement*);
+
protected:
SVGElement(const QualifiedName&, Document&, ConstructionType = CreateSVGElement);

Powered by Google App Engine
This is Rietveld 408576698