Jacek Caban : mshtml: Add IDOMEvent::isTrusted implementation.

Alexandre Julliard julliard at winehq.org
Thu Apr 22 15:55:24 CDT 2021


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Apr 22 01:48:56 2021 +0200

mshtml: Add IDOMEvent::isTrusted implementation.

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

---

 dlls/mshtml/htmlevent.c     | 9 +++++++--
 dlls/mshtml/htmlevent.h     | 1 +
 dlls/mshtml/tests/events.js | 4 ++++
 3 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/dlls/mshtml/htmlevent.c b/dlls/mshtml/htmlevent.c
index 748202a7a44..51b976c2077 100644
--- a/dlls/mshtml/htmlevent.c
+++ b/dlls/mshtml/htmlevent.c
@@ -1058,8 +1058,11 @@ static HRESULT WINAPI DOMEvent_stopImmediatePropagation(IDOMEvent *iface)
 static HRESULT WINAPI DOMEvent_get_isTrusted(IDOMEvent *iface, VARIANT_BOOL *p)
 {
     DOMEvent *This = impl_from_IDOMEvent(iface);
-    FIXME("(%p)->(%p)\n", This, p);
-    return E_NOTIMPL;
+
+    TRACE("(%p)->(%p)\n", This, p);
+
+    *p = variant_bool(This->trusted);
+    return S_OK;
 }
 
 static HRESULT WINAPI DOMEvent_put_cancelBubble(IDOMEvent *iface, VARIANT_BOOL v)
@@ -2294,6 +2297,7 @@ HRESULT create_event_from_nsevent(nsIDOMEvent *nsevent, compat_mode_t compat_mod
     if(!event)
         return E_OUTOFMEMORY;
 
+    event->trusted = TRUE;
     *ret_event = event;
     return S_OK;
 }
@@ -2342,6 +2346,7 @@ HRESULT create_document_event(HTMLDocumentNode *doc, eventid_t event_id, DOMEven
         return E_OUTOFMEMORY;
 
     event->event_id = event_id;
+    event->trusted = TRUE;
     *ret_event = event;
     return S_OK;
 }
diff --git a/dlls/mshtml/htmlevent.h b/dlls/mshtml/htmlevent.h
index 617b15b6c49..ae3131e48b2 100644
--- a/dlls/mshtml/htmlevent.h
+++ b/dlls/mshtml/htmlevent.h
@@ -86,6 +86,7 @@ typedef struct DOMEvent {
     BOOL prevent_default;
     BOOL stop_propagation;
     BOOL stop_immediate_propagation;
+    BOOL trusted;
     DOM_EVENT_PHASE phase;
 
     IHTMLEventObj *event_obj;
diff --git a/dlls/mshtml/tests/events.js b/dlls/mshtml/tests/events.js
index d4b6b96be0c..6d451a641c2 100644
--- a/dlls/mshtml/tests/events.js
+++ b/dlls/mshtml/tests/events.js
@@ -316,6 +316,7 @@ sync_test("prevent_default", function() {
     a.addEventListener("click", function(e) {
         calls += "a,";
         ok(e.defaultPrevented === true, "e.defaultPrevented = " + e.defaultPrevented);
+        ok(e.isTrusted === true, "isTrusted = " + e.isTrusted);
     }, true);
 
     calls = "";
@@ -386,12 +387,14 @@ sync_test("init_event", function() {
     ok(e.type === "", "type = " + e.type);
     ok(e.cancelable === false, "cancelable = " + e.cancelable);
     ok(e.bubbles === false, "bubbles = " + e.bubbles);
+    ok(e.isTrusted === false, "isTrusted = " + e.isTrusted);
 
     e.initEvent("test", true, false);
     ok(e.type === "test", "type = " + e.type);
     ok(e.cancelable === false, "cancelable = " + e.cancelable);
     ok(e.bubbles === true, "bubbles = " + e.bubbles);
     ok(e.defaultPrevented === false, "defaultPrevented = " + e.defaultPrevented);
+    ok(e.isTrusted === false, "isTrusted = " + e.isTrusted);
 
     e.preventDefault();
     ok(e.defaultPrevented === false, "defaultPrevented = " + e.defaultPrevented);
@@ -406,6 +409,7 @@ sync_test("init_event", function() {
 
     elem.addEventListener("NewTest", function(event) {
         ok(e === event, "e != event");
+        ok(e.isTrusted === false, "isTrusted = " + e.isTrusted);
 
         e.preventDefault();
         ok(e.defaultPrevented === true, "defaultPrevented = " + e.defaultPrevented);




More information about the wine-cvs mailing list