From: Gabriel Ivăncescu gabrielopcode@gmail.com
Signed-off-by: Gabriel Ivăncescu gabrielopcode@gmail.com --- dlls/mshtml/htmlwindow.c | 8 ++------ dlls/mshtml/tests/events.c | 5 ++++- 2 files changed, 6 insertions(+), 7 deletions(-)
diff --git a/dlls/mshtml/htmlwindow.c b/dlls/mshtml/htmlwindow.c index f3059ac66be..5a4707153e5 100644 --- a/dlls/mshtml/htmlwindow.c +++ b/dlls/mshtml/htmlwindow.c @@ -2473,18 +2473,14 @@ static HRESULT post_message(HTMLInnerWindow *window, VARIANT msg, BSTR targetOri static HRESULT WINAPI HTMLWindow6_postMessage(IHTMLWindow6 *iface, BSTR msg, VARIANT targetOrigin) { HTMLWindow *This = impl_from_IHTMLWindow6(iface); - VARIANT var, transfer;
TRACE("(%p)->(%s %s)\n", This, debugstr_w(msg), debugstr_variant(&targetOrigin));
if(V_VT(&targetOrigin) != VT_BSTR) return E_INVALIDARG;
- V_VT(&var) = VT_BSTR; - V_BSTR(&var) = msg; - V_VT(&transfer) = VT_EMPTY; - return post_message(This->inner_window, var, V_BSTR(&targetOrigin), transfer, NULL, - dispex_compat_mode(&This->inner_window->event_target.dispex)); + /* This can't obtain the source, and never works even in IE9+ modes... */ + return E_ABORT; }
static HRESULT WINAPI HTMLWindow6_toStaticHTML(IHTMLWindow6 *iface, BSTR bstrHTML, BSTR *pbstrStaticHTML) diff --git a/dlls/mshtml/tests/events.c b/dlls/mshtml/tests/events.c index ffeb585ed52..aa1a60365f2 100644 --- a/dlls/mshtml/tests/events.c +++ b/dlls/mshtml/tests/events.c @@ -3218,7 +3218,6 @@ static void test_message_event(IHTMLDocument2 *doc) ok(hres == S_OK, "get_onmessage failed: %08lx\n", hres); ok(V_VT(&v[0]) == VT_DISPATCH, "V_VT(onmessage) = %d\n", V_VT(&v[0])); ok(V_DISPATCH(&v[0]) == (IDispatch*)&onmessage_obj, "V_DISPATCH(onmessage) = %p\n", V_DISPATCH(&v[0])); - IHTMLWindow6_Release(window6);
if(document_mode >= 9) add_event_listener((IUnknown*)doc, L"message", (IDispatch*)&onmessage_obj, VARIANT_TRUE); @@ -3227,6 +3226,10 @@ static void test_message_event(IHTMLDocument2 *doc) V_BSTR(&v[1]) = SysAllocString(L"foobar"); V_VT(&v[0]) = VT_BSTR; V_BSTR(&v[0]) = SysAllocString(L"*"); + bstr = SysAllocString(L"foobar"); + hres = IHTMLWindow6_postMessage(window6, V_BSTR(&v[1]), v[0]); + ok(hres == E_ABORT, "postMessage returned: %08lx\n", hres); + IHTMLWindow6_Release(window6);
hres = IHTMLWindow2_QueryInterface(window, &IID_IDispatchEx, (void**)&dispex); ok(hres == S_OK, "Could not get IDispatchEx iface: %08lx\n", hres);