OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 2 * Copyright (C) Research In Motion Limited 2010. All rights reserved. |
3 * | 3 * |
4 * This library is free software; you can redistribute it and/or | 4 * This library is free software; you can redistribute it and/or |
5 * modify it under the terms of the GNU Library General Public | 5 * modify it under the terms of the GNU Library General Public |
6 * License as published by the Free Software Foundation; either | 6 * License as published by the Free Software Foundation; either |
7 * version 2 of the License, or (at your option) any later version. | 7 * version 2 of the License, or (at your option) any later version. |
8 * | 8 * |
9 * This library is distributed in the hope that it will be useful, | 9 * This library is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
(...skipping 13 matching lines...) Expand all Loading... |
24 #include "platform/heap/Handle.h" | 24 #include "platform/heap/Handle.h" |
25 #include "platform/transforms/AffineTransform.h" | 25 #include "platform/transforms/AffineTransform.h" |
26 #include "wtf/HashSet.h" | 26 #include "wtf/HashSet.h" |
27 #include "wtf/Noncopyable.h" | 27 #include "wtf/Noncopyable.h" |
28 #include "wtf/StdLibExtras.h" | 28 #include "wtf/StdLibExtras.h" |
29 | 29 |
30 namespace blink { | 30 namespace blink { |
31 | 31 |
32 class CSSCursorImageValue; | 32 class CSSCursorImageValue; |
33 class SVGCursorElement; | 33 class SVGCursorElement; |
| 34 class SVGElementProxySet; |
34 | 35 |
35 class SVGElementRareData | 36 class SVGElementRareData |
36 : public GarbageCollectedFinalized<SVGElementRareData> { | 37 : public GarbageCollectedFinalized<SVGElementRareData> { |
37 WTF_MAKE_NONCOPYABLE(SVGElementRareData); | 38 WTF_MAKE_NONCOPYABLE(SVGElementRareData); |
38 | 39 |
39 public: | 40 public: |
40 SVGElementRareData(SVGElement* owner) | 41 SVGElementRareData(SVGElement* owner) |
41 : m_owner(owner), | 42 : m_owner(owner), |
42 m_cursorElement(nullptr), | 43 m_cursorElement(nullptr), |
43 m_cursorImageValue(nullptr), | 44 m_cursorImageValue(nullptr), |
44 m_correspondingElement(nullptr), | 45 m_correspondingElement(nullptr), |
45 m_instancesUpdatesBlocked(false), | 46 m_instancesUpdatesBlocked(false), |
46 m_useOverrideComputedStyle(false), | 47 m_useOverrideComputedStyle(false), |
47 m_needsOverrideComputedStyleUpdate(false), | 48 m_needsOverrideComputedStyleUpdate(false), |
48 m_webAnimatedAttributesDirty(false) {} | 49 m_webAnimatedAttributesDirty(false) {} |
49 | 50 |
50 SVGElementSet& outgoingReferences() { return m_outgoingReferences; } | 51 SVGElementSet& outgoingReferences() { return m_outgoingReferences; } |
51 const SVGElementSet& outgoingReferences() const { | 52 const SVGElementSet& outgoingReferences() const { |
52 return m_outgoingReferences; | 53 return m_outgoingReferences; |
53 } | 54 } |
54 SVGElementSet& incomingReferences() { return m_incomingReferences; } | 55 SVGElementSet& incomingReferences() { return m_incomingReferences; } |
55 const SVGElementSet& incomingReferences() const { | 56 const SVGElementSet& incomingReferences() const { |
56 return m_incomingReferences; | 57 return m_incomingReferences; |
57 } | 58 } |
58 | 59 |
| 60 SVGElementProxySet& ensureElementProxySet(); |
| 61 |
59 HeapHashSet<WeakMember<SVGElement>>& elementInstances() { | 62 HeapHashSet<WeakMember<SVGElement>>& elementInstances() { |
60 return m_elementInstances; | 63 return m_elementInstances; |
61 } | 64 } |
62 const HeapHashSet<WeakMember<SVGElement>>& elementInstances() const { | 65 const HeapHashSet<WeakMember<SVGElement>>& elementInstances() const { |
63 return m_elementInstances; | 66 return m_elementInstances; |
64 } | 67 } |
65 | 68 |
66 bool instanceUpdatesBlocked() const { return m_instancesUpdatesBlocked; } | 69 bool instanceUpdatesBlocked() const { return m_instancesUpdatesBlocked; } |
67 void setInstanceUpdatesBlocked(bool value) { | 70 void setInstanceUpdatesBlocked(bool value) { |
68 m_instancesUpdatesBlocked = value; | 71 m_instancesUpdatesBlocked = value; |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
118 DECLARE_TRACE(); | 121 DECLARE_TRACE(); |
119 void processWeakMembers(Visitor*); | 122 void processWeakMembers(Visitor*); |
120 | 123 |
121 private: | 124 private: |
122 Member<SVGElement> m_owner; | 125 Member<SVGElement> m_owner; |
123 SVGElementSet m_outgoingReferences; | 126 SVGElementSet m_outgoingReferences; |
124 SVGElementSet m_incomingReferences; | 127 SVGElementSet m_incomingReferences; |
125 HeapHashSet<WeakMember<SVGElement>> m_elementInstances; | 128 HeapHashSet<WeakMember<SVGElement>> m_elementInstances; |
126 WeakMember<SVGCursorElement> m_cursorElement; | 129 WeakMember<SVGCursorElement> m_cursorElement; |
127 WeakMember<const CSSCursorImageValue> m_cursorImageValue; | 130 WeakMember<const CSSCursorImageValue> m_cursorImageValue; |
| 131 Member<SVGElementProxySet> m_elementProxySet; |
128 Member<SVGElement> m_correspondingElement; | 132 Member<SVGElement> m_correspondingElement; |
129 bool m_instancesUpdatesBlocked : 1; | 133 bool m_instancesUpdatesBlocked : 1; |
130 bool m_useOverrideComputedStyle : 1; | 134 bool m_useOverrideComputedStyle : 1; |
131 bool m_needsOverrideComputedStyleUpdate : 1; | 135 bool m_needsOverrideComputedStyleUpdate : 1; |
132 bool m_webAnimatedAttributesDirty : 1; | 136 bool m_webAnimatedAttributesDirty : 1; |
133 HashSet<const QualifiedName*> m_webAnimatedAttributes; | 137 HashSet<const QualifiedName*> m_webAnimatedAttributes; |
134 Member<MutableStylePropertySet> m_animatedSMILStyleProperties; | 138 Member<MutableStylePropertySet> m_animatedSMILStyleProperties; |
135 RefPtr<ComputedStyle> m_overrideComputedStyle; | 139 RefPtr<ComputedStyle> m_overrideComputedStyle; |
136 // Used by <animateMotion> | 140 // Used by <animateMotion> |
137 AffineTransform m_animateMotionTransform; | 141 AffineTransform m_animateMotionTransform; |
138 }; | 142 }; |
139 | 143 |
140 } // namespace blink | 144 } // namespace blink |
141 | 145 |
142 #endif | 146 #endif |
OLD | NEW |