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