From: Jacek Caban Subject: [PATCH 2/4] mshtml: Properly support custom event listeners in XMLHttpRequest object. Message-Id: Date: Thu, 22 Feb 2018 19:47:35 +0100 Signed-off-by: Jacek Caban --- dlls/mshtml/tests/events.js | 12 ++++++++++++ dlls/mshtml/xmlhttprequest.c | 4 +--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/dlls/mshtml/tests/events.js b/dlls/mshtml/tests/events.js index 108afe2481..3836e13fd6 100644 --- a/dlls/mshtml/tests/events.js +++ b/dlls/mshtml/tests/events.js @@ -538,6 +538,18 @@ function test_dispatch_event() { ok(calls === "parent.testing(capture),child.testing(capture)," + "child.testing(bubble),parent.testing(bubble),", "calls = " + calls); + var xhr = new XMLHttpRequest(); + xhr.addEventListener("testing", function(event) { + ok(event === e, "event != e"); + ok(event.target === xhr, "target != child"); + ok(event.srcElement === null, "srcElement != child"); + calls += "xhr.testing"; + }, true); + + calls = ""; + xhr.dispatchEvent(e); + ok(calls === "xhr.testing", "calls = " + calls); + next_test(); } diff --git a/dlls/mshtml/xmlhttprequest.c b/dlls/mshtml/xmlhttprequest.c index ebe2561e8b..5164570950 100644 --- a/dlls/mshtml/xmlhttprequest.c +++ b/dlls/mshtml/xmlhttprequest.c @@ -755,9 +755,7 @@ static void HTMLXMLHttpRequest_bind_event(DispatchEx *dispex, eventid_t eid) TRACE("(%p)\n", This); - assert(eid == EVENTID_READYSTATECHANGE); - - if(This->event_listener) + if(eid != EVENTID_READYSTATECHANGE || This->event_listener) return; This->event_listener = heap_alloc(sizeof(*This->event_listener));