Index: Source/core/frame/DOMWindowLifecycleNotifier.cpp |
diff --git a/Source/core/frame/DOMWindowLifecycleNotifier.cpp b/Source/core/frame/DOMWindowLifecycleNotifier.cpp |
index 0bf68af63befb4c417e068c7c83e482e62bd660b..cb1c928e5b521fbaaee832dd1b161d2c81338672 100644 |
--- a/Source/core/frame/DOMWindowLifecycleNotifier.cpp |
+++ b/Source/core/frame/DOMWindowLifecycleNotifier.cpp |
@@ -34,22 +34,37 @@ namespace blink { |
void DOMWindowLifecycleNotifier::notifyAddEventListener(LocalDOMWindow* window, const AtomicString& eventType) |
{ |
TemporaryChange<IterationType> scope(m_iterating, IteratingOverAll); |
- for (DOMWindowLifecycleObserver* observer : m_observers) |
+ for (DOMWindowLifecycleObserver* observer : m_observers) { |
+#if !ENABLE(OILPAN) |
+ if (!isObserverAlive(observer)) |
+ continue; |
+#endif |
observer->didAddEventListener(window, eventType); |
+ } |
} |
void DOMWindowLifecycleNotifier::notifyRemoveEventListener(LocalDOMWindow* window, const AtomicString& eventType) |
{ |
TemporaryChange<IterationType> scope(m_iterating, IteratingOverAll); |
- for (DOMWindowLifecycleObserver* observer : m_observers) |
+ for (DOMWindowLifecycleObserver* observer : m_observers) { |
+#if !ENABLE(OILPAN) |
+ if (!isObserverAlive(observer)) |
+ continue; |
+#endif |
observer->didRemoveEventListener(window, eventType); |
+ } |
} |
void DOMWindowLifecycleNotifier::notifyRemoveAllEventListeners(LocalDOMWindow* window) |
{ |
TemporaryChange<IterationType> scope(m_iterating, IteratingOverAll); |
- for (DOMWindowLifecycleObserver* observer : m_observers) |
+ for (DOMWindowLifecycleObserver* observer : m_observers) { |
+#if !ENABLE(OILPAN) |
+ if (!isObserverAlive(observer)) |
+ continue; |
+#endif |
observer->didRemoveAllEventListeners(window); |
+ } |
} |
} // namespace blink |