Index: third_party/WebKit/Source/core/events/Event.cpp |
diff --git a/third_party/WebKit/Source/core/events/Event.cpp b/third_party/WebKit/Source/core/events/Event.cpp |
index 79ab050f14bc4880d774dafaa1e0706c6116febf..960db360f202405f85c39b30631bb96310707c32 100644 |
--- a/third_party/WebKit/Source/core/events/Event.cpp |
+++ b/third_party/WebKit/Source/core/events/Event.cpp |
@@ -257,6 +257,16 @@ void Event::initEventPath(Node& node) |
WillBeHeapVector<RefPtrWillBeMember<EventTarget>> Event::path(ScriptState* scriptState) const |
{ |
+ return pathInternal(scriptState, NonEmptyAfterDispatch); |
+} |
+ |
+WillBeHeapVector<RefPtrWillBeMember<EventTarget>> Event::deepPath(ScriptState* scriptState) const |
+{ |
+ return pathInternal(scriptState, EmptyAfterDispatch); |
+} |
+ |
+WillBeHeapVector<RefPtrWillBeMember<EventTarget>> Event::pathInternal(ScriptState* scriptState, EventPathMode mode) const |
+{ |
if (m_target) |
OriginsUsingFeatures::countOriginOrIsolatedWorldHumanReadableName(scriptState, *m_target, OriginsUsingFeatures::Feature::EventPath); |
@@ -268,6 +278,8 @@ WillBeHeapVector<RefPtrWillBeMember<EventTarget>> Event::path(ScriptState* scrip |
} |
ASSERT(!m_eventPath->isEmpty()); |
// After dispatching the event |
+ if (mode == EmptyAfterDispatch) |
+ return WillBeHeapVector<RefPtrWillBeMember<EventTarget>>(); |
return m_eventPath->last().treeScopeEventContext().ensureEventPath(*m_eventPath); |
} |