Module: wine Branch: master Commit: 4f358c40b25c38f95bc34239724a7dde09cb2dc3 URL: https://source.winehq.org/git/wine.git/?a=commit;h=4f358c40b25c38f95bc342397...
Author: Jacek Caban jacek@codeweavers.com Date: Thu Apr 22 01:48:56 2021 +0200
mshtml: Add IDOMEvent::isTrusted implementation.
Signed-off-by: Jacek Caban jacek@codeweavers.com Signed-off-by: Alexandre Julliard julliard@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);