diff options
Diffstat (limited to 'Source/WebCore/dom/MutationObserverRegistration.h')
-rw-r--r-- | Source/WebCore/dom/MutationObserverRegistration.h | 28 |
1 files changed, 11 insertions, 17 deletions
diff --git a/Source/WebCore/dom/MutationObserverRegistration.h b/Source/WebCore/dom/MutationObserverRegistration.h index 5af6c357e..7b6483f47 100644 --- a/Source/WebCore/dom/MutationObserverRegistration.h +++ b/Source/WebCore/dom/MutationObserverRegistration.h @@ -28,8 +28,7 @@ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */ -#ifndef MutationObserverRegistration_h -#define MutationObserverRegistration_h +#pragma once #include "MutationObserver.h" #include <wtf/HashSet.h> @@ -41,38 +40,33 @@ namespace WebCore { class QualifiedName; class MutationObserverRegistration { + WTF_MAKE_FAST_ALLOCATED; public: - static PassOwnPtr<MutationObserverRegistration> create(PassRefPtr<MutationObserver>, Node*, MutationObserverOptions, const HashSet<AtomicString>& attributeFilter); + MutationObserverRegistration(MutationObserver&, Node&, MutationObserverOptions, const HashSet<AtomicString>& attributeFilter); ~MutationObserverRegistration(); void resetObservation(MutationObserverOptions, const HashSet<AtomicString>& attributeFilter); - void observedSubtreeNodeWillDetach(Node*); + void observedSubtreeNodeWillDetach(Node&); void clearTransientRegistrations(); bool hasTransientRegistrations() const { return m_transientRegistrationNodes && !m_transientRegistrationNodes->isEmpty(); } - static void unregisterAndDelete(MutationObserverRegistration*); - bool shouldReceiveMutationFrom(Node*, MutationObserver::MutationType, const QualifiedName* attributeName) const; + bool shouldReceiveMutationFrom(Node&, MutationObserver::MutationType, const QualifiedName* attributeName) const; bool isSubtree() const { return m_options & MutationObserver::Subtree; } - MutationObserver* observer() const { return m_observer.get(); } + MutationObserver& observer() { return m_observer.get(); } + Node& node() { return m_node; } MutationRecordDeliveryOptions deliveryOptions() const { return m_options & (MutationObserver::AttributeOldValue | MutationObserver::CharacterDataOldValue); } MutationObserverOptions mutationTypes() const { return m_options & MutationObserver::AllMutationTypes; } void addRegistrationNodesToSet(HashSet<Node*>&) const; private: - MutationObserverRegistration(PassRefPtr<MutationObserver>, Node*, MutationObserverOptions, const HashSet<AtomicString>& attributeFilter); - - RefPtr<MutationObserver> m_observer; - Node* m_registrationNode; - RefPtr<Node> m_registrationNodeKeepAlive; - typedef HashSet<RefPtr<Node>> NodeHashSet; - OwnPtr<NodeHashSet> m_transientRegistrationNodes; - + Ref<MutationObserver> m_observer; + Node& m_node; + RefPtr<Node> m_nodeKeptAlive; + std::unique_ptr<HashSet<RefPtr<Node>>> m_transientRegistrationNodes; MutationObserverOptions m_options; HashSet<AtomicString> m_attributeFilter; }; } // namespace WebCore - -#endif // MutationObserverRegistration_h |