| Index: third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp
|
| diff --git a/third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp b/third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp
|
| index 785f15887741aa1562e9c8c165092844f43adf85..fc8f98bad6aba05d06b2f72315a4705ffb25092f 100644
|
| --- a/third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp
|
| +++ b/third_party/WebKit/Source/core/frame/LocalDOMWindow.cpp
|
| @@ -499,7 +499,6 @@ MediaQueryList* LocalDOMWindow::matchMedia(const String& media)
|
| void LocalDOMWindow::willDetachFrameHost()
|
| {
|
| frame()->host()->eventHandlerRegistry().didRemoveAllEventHandlers(*this);
|
| - LocalDOMWindow::notifyContextDestroyed();
|
| }
|
|
|
| void LocalDOMWindow::frameDestroyed()
|
| @@ -532,6 +531,11 @@ void LocalDOMWindow::unregisterProperty(DOMWindowProperty* property)
|
| m_properties.remove(property);
|
| }
|
|
|
| +void LocalDOMWindow::registerEventListenerObserver(EventListenerObserver* eventListenerObserver)
|
| +{
|
| + m_eventListenerObservers.add(eventListenerObserver);
|
| +}
|
| +
|
| void LocalDOMWindow::reset()
|
| {
|
| m_frameObserver->contextDestroyed();
|
| @@ -548,8 +552,6 @@ void LocalDOMWindow::reset()
|
| m_media = nullptr;
|
| m_customElements = nullptr;
|
| m_applicationCache = nullptr;
|
| -
|
| - LocalDOMWindow::notifyContextDestroyed();
|
| }
|
|
|
| void LocalDOMWindow::sendOrientationChangeEvent()
|
| @@ -1367,7 +1369,9 @@ void LocalDOMWindow::addedEventListener(const AtomicString& eventType, Registere
|
| if (Document* document = this->document())
|
| document->addListenerTypeIfNeeded(eventType);
|
|
|
| - notifyAddEventListener(this, eventType);
|
| + for (auto& it : m_eventListenerObservers) {
|
| + it->didAddEventListener(this, eventType);
|
| + }
|
|
|
| if (eventType == EventTypeNames::unload) {
|
| UseCounter::count(document(), UseCounter::DocumentUnloadRegistered);
|
| @@ -1392,7 +1396,9 @@ void LocalDOMWindow::removedEventListener(const AtomicString& eventType, const R
|
| if (frame() && frame()->host())
|
| frame()->host()->eventHandlerRegistry().didRemoveEventHandler(*this, eventType, registeredListener.options());
|
|
|
| - notifyRemoveEventListener(this, eventType);
|
| + for (auto& it : m_eventListenerObservers) {
|
| + it->didRemoveEventListener(this, eventType);
|
| + }
|
|
|
| if (eventType == EventTypeNames::unload) {
|
| removeUnloadEventListener(this);
|
| @@ -1442,7 +1448,10 @@ void LocalDOMWindow::removeAllEventListeners()
|
| {
|
| EventTarget::removeAllEventListeners();
|
|
|
| - notifyRemoveAllEventListeners(this);
|
| + for (auto& it : m_eventListenerObservers) {
|
| + it->didRemoveAllEventListeners(this);
|
| + }
|
| +
|
| if (frame() && frame()->host())
|
| frame()->host()->eventHandlerRegistry().didRemoveAllEventHandlers(*this);
|
|
|
| @@ -1547,9 +1556,9 @@ DEFINE_TRACE(LocalDOMWindow)
|
| visitor->trace(m_eventQueue);
|
| visitor->trace(m_postMessageTimers);
|
| visitor->trace(m_visualViewport);
|
| + visitor->trace(m_eventListenerObservers);
|
| DOMWindow::trace(visitor);
|
| Supplementable<LocalDOMWindow>::trace(visitor);
|
| - DOMWindowLifecycleNotifier::trace(visitor);
|
| }
|
|
|
| LocalFrame* LocalDOMWindow::frame() const
|
|
|