summaryrefslogtreecommitdiff
path: root/Source/WebCore/svg/SVGDocumentExtensions.h
diff options
context:
space:
mode:
Diffstat (limited to 'Source/WebCore/svg/SVGDocumentExtensions.h')
-rw-r--r--Source/WebCore/svg/SVGDocumentExtensions.h26
1 files changed, 13 insertions, 13 deletions
diff --git a/Source/WebCore/svg/SVGDocumentExtensions.h b/Source/WebCore/svg/SVGDocumentExtensions.h
index 460b14570..058f20da7 100644
--- a/Source/WebCore/svg/SVGDocumentExtensions.h
+++ b/Source/WebCore/svg/SVGDocumentExtensions.h
@@ -18,10 +18,8 @@
* Boston, MA 02110-1301, USA.
*/
-#ifndef SVGDocumentExtensions_h
-#define SVGDocumentExtensions_h
+#pragma once
-#if ENABLE(SVG)
#include <wtf/Forward.h>
#include <wtf/HashMap.h>
#include <wtf/HashSet.h>
@@ -30,21 +28,19 @@
namespace WebCore {
class Document;
+class Element;
class RenderSVGResourceContainer;
class SVGElement;
-#if ENABLE(SVG_FONTS)
class SVGFontFaceElement;
-#endif
class SVGResourcesCache;
class SVGSMILElement;
class SVGSVGElement;
-class Element;
class SVGDocumentExtensions {
WTF_MAKE_NONCOPYABLE(SVGDocumentExtensions); WTF_MAKE_FAST_ALLOCATED;
public:
typedef HashSet<Element*> PendingElements;
- SVGDocumentExtensions(Document*);
+ explicit SVGDocumentExtensions(Document*);
~SVGDocumentExtensions();
void addTimeContainer(SVGSVGElement*);
@@ -58,18 +54,22 @@ public:
void pauseAnimations();
void unpauseAnimations();
void dispatchSVGLoadEventToOutermostSVGElements();
+ bool areAnimationsPaused() const { return m_areAnimationsPaused; }
void reportWarning(const String&);
void reportError(const String&);
- SVGResourcesCache* resourcesCache() const { return m_resourcesCache.get(); }
+ SVGResourcesCache& resourcesCache() { return *m_resourcesCache; }
HashSet<SVGElement*>* setOfElementsReferencingTarget(SVGElement* referencedElement) const;
void addElementReferencingTarget(SVGElement* referencingElement, SVGElement* referencedElement);
void removeAllTargetReferencesForElement(SVGElement*);
- void rebuildAllElementReferencesForTarget(SVGElement*);
+ void rebuildAllElementReferencesForTarget(SVGElement&);
void removeAllElementReferencesForTarget(SVGElement*);
+ void clearTargetDependencies(SVGElement&);
+ void rebuildElements();
+
#if ENABLE(SVG_FONTS)
const HashSet<SVGFontFaceElement*>& svgFontFaceElements() const { return m_svgFontFaceElements; }
void registerSVGFontFaceElement(SVGFontFaceElement*);
@@ -88,6 +88,9 @@ private:
HashMap<SVGElement*, std::unique_ptr<HashSet<SVGElement*>>> m_elementDependencies;
std::unique_ptr<SVGResourcesCache> m_resourcesCache;
+ Vector<SVGElement*> m_rebuildElements;
+ bool m_areAnimationsPaused { false }; // For testing.
+
public:
// This HashMap contains a list of pending resources. Pending resources, are such
// which are referenced by any object in the SVG document, but do NOT exist yet.
@@ -108,7 +111,4 @@ private:
std::unique_ptr<PendingElements> removePendingResourceForRemoval(const AtomicString&);
};
-}
-
-#endif
-#endif
+} // namespace WebCore