Jacek Caban : mshtml: Expose IDOMCustomEvent to scripts.

Alexandre Julliard julliard at winehq.org
Fri Jan 25 16:29:08 CST 2019


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Fri Jan 25 12:14:29 2019 +0100

mshtml: Expose IDOMCustomEvent to scripts.

Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/mshtml/htmlevent.c     | 13 +++++++++++++
 dlls/mshtml/tests/events.js | 15 +++++++++++++++
 2 files changed, 28 insertions(+)

diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c
index 1403542..c0171c8 100644
--- a/dlls/mshtml/htmlevent.c
+++ b/dlls/mshtml/htmlevent.c
@@ -2211,6 +2211,18 @@ static dispex_static_data_t DOMKeyboardEvent_dispex = {
     DOMKeyboardEvent_iface_tids
 };
 
+static const tid_t DOMCustomEvent_iface_tids[] = {
+    IDOMEvent_tid,
+    IDOMCustomEvent_tid,
+    0
+};
+
+static dispex_static_data_t DOMCustomEvent_dispex = {
+    NULL,
+    DispDOMCustomEvent_tid,
+    DOMCustomEvent_iface_tids
+};
+
 static BOOL check_event_iface(nsIDOMEvent *event, REFIID riid)
 {
     nsISupports *iface;
@@ -2243,6 +2255,7 @@ static DOMEvent *alloc_event(nsIDOMEvent *nsevent, eventid_t event_id)
         custom_event->event.query_interface = DOMCustomEvent_query_interface;
         custom_event->event.destroy = DOMCustomEvent_destroy;
         event = &custom_event->event;
+        dispex_data = &DOMCustomEvent_dispex;
     }else if(!event) {
         event = heap_alloc_zero(sizeof(*event));
         if(!event)
diff --git a/dlls/mshtml/tests/events.js b/dlls/mshtml/tests/events.js
index dc9ce5a..46077b2 100644
--- a/dlls/mshtml/tests/events.js
+++ b/dlls/mshtml/tests/events.js
@@ -769,6 +769,20 @@ function test_keyboard_event() {
     next_test();
 }
 
+function test_custom_event() {
+    var e = document.createEvent("CustomEvent");
+
+    ok(e.detail === undefined, "detail = " + e.detail);
+
+    e.initCustomEvent("test", true, false, 123);
+    ok(e.type === "test", "type = " + e.type);
+    ok(e.bubbles === true, "bubbles = " + e.bubbles);
+    ok(e.cancelable === false, "cancelable = " + e.cancelable);
+    ok(e.detail === 123, "detail = " + e.detail);
+
+    next_test();
+}
+
 function test_error_event() {
     document.body.innerHTML = '<div><img></img></div>';
     var div = document.body.firstChild;
@@ -822,6 +836,7 @@ var tests = [
     test_ui_event,
     test_mouse_event,
     test_keyboard_event,
+    test_custom_event,
     test_error_event,
     test_detached_img_error_event,
     test_time_stamp,




More information about the wine-cvs mailing list