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

Side by Side Diff: Source/core/svg/SVGDocumentExtensions.h

Issue 656913006: Remove SVG fonts (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 2 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 unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2006 Apple Inc. All rights reserved. 2 * Copyright (C) 2006 Apple Inc. All rights reserved.
3 * Copyright (C) 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org> 3 * Copyright (C) 2006, 2008 Nikolas Zimmermann <zimmermann@kde.org>
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
(...skipping 15 matching lines...) Expand all
26 #include "wtf/Forward.h" 26 #include "wtf/Forward.h"
27 #include "wtf/HashMap.h" 27 #include "wtf/HashMap.h"
28 #include "wtf/HashSet.h" 28 #include "wtf/HashSet.h"
29 #include "wtf/text/AtomicStringHash.h" 29 #include "wtf/text/AtomicStringHash.h"
30 30
31 namespace blink { 31 namespace blink {
32 32
33 class Document; 33 class Document;
34 class RenderSVGResourceContainer; 34 class RenderSVGResourceContainer;
35 class SubtreeLayoutScope; 35 class SubtreeLayoutScope;
36 #if ENABLE(SVG_FONTS)
37 class SVGFontFaceElement;
38 #endif
39 class SVGResourcesCache; 36 class SVGResourcesCache;
40 class SVGSVGElement; 37 class SVGSVGElement;
41 class Element; 38 class Element;
42 39
43 class SVGDocumentExtensions : public NoBaseWillBeGarbageCollectedFinalized<SVGDo cumentExtensions> { 40 class SVGDocumentExtensions : public NoBaseWillBeGarbageCollectedFinalized<SVGDo cumentExtensions> {
44 WTF_MAKE_NONCOPYABLE(SVGDocumentExtensions); WTF_MAKE_FAST_ALLOCATED_WILL_BE _REMOVED; 41 WTF_MAKE_NONCOPYABLE(SVGDocumentExtensions); WTF_MAKE_FAST_ALLOCATED_WILL_BE _REMOVED;
45 public: 42 public:
46 typedef WillBeHeapHashSet<RawPtrWillBeMember<Element> > SVGPendingElements; 43 typedef WillBeHeapHashSet<RawPtrWillBeMember<Element> > SVGPendingElements;
47 explicit SVGDocumentExtensions(Document*); 44 explicit SVGDocumentExtensions(Document*);
48 ~SVGDocumentExtensions(); 45 ~SVGDocumentExtensions();
(...skipping 14 matching lines...) Expand all
63 void reportWarning(const String&); 60 void reportWarning(const String&);
64 void reportError(const String&); 61 void reportError(const String&);
65 62
66 SVGResourcesCache* resourcesCache() const { return m_resourcesCache.get(); } 63 SVGResourcesCache* resourcesCache() const { return m_resourcesCache.get(); }
67 64
68 void addSVGRootWithRelativeLengthDescendents(SVGSVGElement*); 65 void addSVGRootWithRelativeLengthDescendents(SVGSVGElement*);
69 void removeSVGRootWithRelativeLengthDescendents(SVGSVGElement*); 66 void removeSVGRootWithRelativeLengthDescendents(SVGSVGElement*);
70 bool isSVGRootWithRelativeLengthDescendents(SVGSVGElement*) const; 67 bool isSVGRootWithRelativeLengthDescendents(SVGSVGElement*) const;
71 void invalidateSVGRootsWithRelativeLengthDescendents(SubtreeLayoutScope*); 68 void invalidateSVGRootsWithRelativeLengthDescendents(SubtreeLayoutScope*);
72 69
73 #if ENABLE(SVG_FONTS)
74 const WillBeHeapHashSet<RawPtrWillBeMember<SVGFontFaceElement> >& svgFontFac eElements() const { return m_svgFontFaceElements; }
75 void registerSVGFontFaceElement(SVGFontFaceElement*);
76 void unregisterSVGFontFaceElement(SVGFontFaceElement*);
77
78 void registerPendingSVGFontFaceElementsForRemoval(PassRefPtrWillBeRawPtr<SVG FontFaceElement>);
79 void removePendingSVGFontFaceElementsForRemoval();
80 #endif
81
82 bool zoomAndPanEnabled() const; 70 bool zoomAndPanEnabled() const;
83 71
84 void startPan(const FloatPoint& start); 72 void startPan(const FloatPoint& start);
85 void updatePan(const FloatPoint& pos) const; 73 void updatePan(const FloatPoint& pos) const;
86 74
87 static SVGSVGElement* rootElement(const Document&); 75 static SVGSVGElement* rootElement(const Document&);
88 SVGSVGElement* rootElement() const; 76 SVGSVGElement* rootElement() const;
89 77
90 void trace(Visitor*); 78 void trace(Visitor*);
91 79
92 private: 80 private:
93 RawPtrWillBeMember<Document> m_document; 81 RawPtrWillBeMember<Document> m_document;
94 WillBeHeapHashSet<RawPtrWillBeMember<SVGSVGElement> > m_timeContainers; // F or SVG 1.2 support this will need to be made more general. 82 WillBeHeapHashSet<RawPtrWillBeMember<SVGSVGElement> > m_timeContainers; // F or SVG 1.2 support this will need to be made more general.
95 #if ENABLE(SVG_FONTS)
96 WillBeHeapHashSet<RawPtrWillBeMember<SVGFontFaceElement> > m_svgFontFaceElem ents;
97 // SVGFontFaceElements that are pending and scheduled for removal.
98 WillBeHeapHashSet<RefPtrWillBeMember<SVGFontFaceElement> > m_pendingSVGFontF aceElementsForRemoval;
99 #endif
100 HashMap<AtomicString, RenderSVGResourceContainer*> m_resources; 83 HashMap<AtomicString, RenderSVGResourceContainer*> m_resources;
101 WillBeHeapHashMap<AtomicString, OwnPtrWillBeMember<SVGPendingElements> > m_p endingResources; // Resources that are pending. 84 WillBeHeapHashMap<AtomicString, OwnPtrWillBeMember<SVGPendingElements> > m_p endingResources; // Resources that are pending.
102 WillBeHeapHashMap<AtomicString, OwnPtrWillBeMember<SVGPendingElements> > m_p endingResourcesForRemoval; // Resources that are pending and scheduled for remov al. 85 WillBeHeapHashMap<AtomicString, OwnPtrWillBeMember<SVGPendingElements> > m_p endingResourcesForRemoval; // Resources that are pending and scheduled for remov al.
103 OwnPtr<SVGResourcesCache> m_resourcesCache; 86 OwnPtr<SVGResourcesCache> m_resourcesCache;
104 WillBeHeapHashSet<RawPtrWillBeMember<SVGSVGElement> > m_relativeLengthSVGRoo ts; // Root SVG elements with relative length descendants. 87 WillBeHeapHashSet<RawPtrWillBeMember<SVGSVGElement> > m_relativeLengthSVGRoo ts; // Root SVG elements with relative length descendants.
105 FloatPoint m_translate; 88 FloatPoint m_translate;
106 #if ENABLE(ASSERT)
107 bool m_inRelativeLengthSVGRootsInvalidation;
108 #endif
109 89
110 public: 90 public:
111 // This HashMap contains a list of pending resources. Pending resources, are such 91 // This HashMap contains a list of pending resources. Pending resources, are such
112 // which are referenced by any object in the SVG document, but do NOT exist yet. 92 // which are referenced by any object in the SVG document, but do NOT exist yet.
113 // For instance, dynamically build gradients / patterns / clippers... 93 // For instance, dynamically build gradients / patterns / clippers...
114 void addPendingResource(const AtomicString& id, Element*); 94 void addPendingResource(const AtomicString& id, Element*);
115 bool hasPendingResource(const AtomicString& id) const; 95 bool hasPendingResource(const AtomicString& id) const;
116 bool isElementPendingResources(Element*) const; 96 bool isElementPendingResources(Element*) const;
117 bool isElementPendingResource(Element*, const AtomicString& id) const; 97 bool isElementPendingResource(Element*, const AtomicString& id) const;
118 void clearHasPendingResourcesIfPossible(Element*); 98 void clearHasPendingResourcesIfPossible(Element*);
119 void removeElementFromPendingResources(Element*); 99 void removeElementFromPendingResources(Element*);
120 PassOwnPtrWillBeRawPtr<SVGPendingElements> removePendingResource(const Atomi cString& id); 100 PassOwnPtrWillBeRawPtr<SVGPendingElements> removePendingResource(const Atomi cString& id);
121 101
122 void serviceAnimations(double monotonicAnimationStartTime); 102 void serviceAnimations(double monotonicAnimationStartTime);
123 103
124 // The following two functions are used for scheduling a pending resource to be removed. 104 // The following two functions are used for scheduling a pending resource to be removed.
125 void markPendingResourcesForRemoval(const AtomicString&); 105 void markPendingResourcesForRemoval(const AtomicString&);
126 Element* removeElementFromPendingResourcesForRemoval(const AtomicString&); 106 Element* removeElementFromPendingResourcesForRemoval(const AtomicString&);
127 107
128 private: 108 private:
129 PassOwnPtrWillBeRawPtr<SVGPendingElements> removePendingResourceForRemoval(c onst AtomicString&); 109 PassOwnPtrWillBeRawPtr<SVGPendingElements> removePendingResourceForRemoval(c onst AtomicString&);
130 }; 110 };
131 111
132 } 112 }
133 113
134 #endif 114 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698