| 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
|
|
|