Jacek Caban : mshtml: Properly support custom event listeners in XMLHttpRequest object.

Alexandre Julliard julliard at winehq.org
Thu Feb 22 15:07:48 CST 2018


Module: wine
Branch: master
Commit: 74d6c6d2fb40f96128699397246a880c37213054
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=74d6c6d2fb40f96128699397246a880c37213054

Author: Jacek Caban <jacek at 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 at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at 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));




More information about the wine-cvs mailing list