Index: Source/core/dom/DocumentLifecycleNotifier.h |
diff --git a/Source/core/dom/DocumentLifecycleNotifier.h b/Source/core/dom/DocumentLifecycleNotifier.h |
index 229002a212b63bd1db64590e5c99ab4877f5d95b..abb78e0c11da6d67165b0e4ba70da3714e8acb50 100644 |
--- a/Source/core/dom/DocumentLifecycleNotifier.h |
+++ b/Source/core/dom/DocumentLifecycleNotifier.h |
@@ -26,18 +26,17 @@ |
#ifndef DocumentLifecycleNotifier_h |
#define DocumentLifecycleNotifier_h |
-#include "platform/LifecycleNotifier.h" |
-#include "wtf/HashSet.h" |
+#include "core/dom/Document.h" |
+#include "core/dom/DocumentLifecycleObserver.h" |
#include "wtf/PassOwnPtr.h" |
#include "wtf/TemporaryChange.h" |
namespace blink { |
-class Document; |
-class DocumentLifecycleObserver; |
- |
class DocumentLifecycleNotifier : public LifecycleNotifier<Document> { |
public: |
+ static PassOwnPtr<DocumentLifecycleNotifier> create(Document*); |
+ |
void notifyDocumentWasDetached(); |
#if !ENABLE(OILPAN) |
void notifyDocumentWasDisposed(); |
@@ -46,14 +45,34 @@ public: |
virtual void addObserver(Observer*) override final; |
virtual void removeObserver(Observer*) override final; |
-protected: |
+private: |
explicit DocumentLifecycleNotifier(Document*); |
-private: |
using DocumentObserverSet = HashSet<DocumentLifecycleObserver*>; |
DocumentObserverSet m_documentObservers; |
}; |
+inline PassOwnPtr<DocumentLifecycleNotifier> DocumentLifecycleNotifier::create(Document* document) |
+{ |
+ return adoptPtr(new DocumentLifecycleNotifier(document)); |
+} |
+ |
+inline void DocumentLifecycleNotifier::notifyDocumentWasDetached() |
+{ |
+ TemporaryChange<IterationType> scope(this->m_iterating, IteratingOverDocumentObservers); |
+ for (DocumentLifecycleObserver* observer : m_documentObservers) |
+ observer->documentWasDetached(); |
+} |
+ |
+#if !ENABLE(OILPAN) |
+inline void DocumentLifecycleNotifier::notifyDocumentWasDisposed() |
+{ |
+ TemporaryChange<IterationType> scope(this->m_iterating, IteratingOverDocumentObservers); |
+ for (DocumentLifecycleObserver* observer : m_documentObservers) |
+ observer->documentWasDisposed(); |
+} |
+#endif |
+ |
} // namespace blink |
#endif // DocumentLifecycleNotifier_h |