| Index: third_party/WebKit/Source/core/events/EventListenerMap.cpp
|
| diff --git a/third_party/WebKit/Source/core/events/EventListenerMap.cpp b/third_party/WebKit/Source/core/events/EventListenerMap.cpp
|
| index cd0c46291a0292c3aac10e0b1948f4e3460907da..a197f4e1e241f6c7199864d64752479c6c35701d 100644
|
| --- a/third_party/WebKit/Source/core/events/EventListenerMap.cpp
|
| +++ b/third_party/WebKit/Source/core/events/EventListenerMap.cpp
|
| @@ -185,6 +185,28 @@ EventListenerVector* EventListenerMap::find(const AtomicString& eventType) {
|
| return nullptr;
|
| }
|
|
|
| +static void copyListenersNotCreatedFromMarkupToTarget(
|
| + const AtomicString& eventType,
|
| + EventListenerVector* listenerVector,
|
| + EventTarget* target) {
|
| + for (auto& eventListener : *listenerVector) {
|
| + if (eventListener.listener()->wasCreatedFromMarkup())
|
| + continue;
|
| + AddEventListenerOptionsResolved options = eventListener.options();
|
| + target->addEventListener(eventType, eventListener.listener(), options);
|
| + }
|
| +}
|
| +
|
| +void EventListenerMap::copyEventListenersNotCreatedFromMarkupToTarget(
|
| + EventTarget* target) {
|
| + checkNoActiveIterators();
|
| +
|
| + for (const auto& eventListener : m_entries) {
|
| + copyListenersNotCreatedFromMarkupToTarget(
|
| + eventListener.first, eventListener.second.get(), target);
|
| + }
|
| +}
|
| +
|
| DEFINE_TRACE(EventListenerMap) {
|
| visitor->trace(m_entries);
|
| }
|
|
|