Module: wine Branch: master Commit: 74d6c6d2fb40f96128699397246a880c37213054 URL: https://source.winehq.org/git/wine.git/?a=commit;h=74d6c6d2fb40f961286993972... Author: Jacek Caban <jacek(a)codeweavers.com> Date: Thu Feb 22 19:47:35 2018 +0100 mshtml: Properly support custom event listeners in XMLHttpRequest object. Signed-off-by: Jacek Caban <jacek(a)codeweavers.com> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> --- 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 108afe2..3836e13 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 ebe2561..5164570 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));