Module: wine Branch: master Commit: 74d6c6d2fb40f96128699397246a880c37213054 URL: https://source.winehq.org/git/wine.git/?a=commit;h=74d6c6d2fb40f961286993972...
Author: Jacek Caban jacek@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@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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));