Jacek Caban : mshtml: Added IHTMLWindow6:: postMessage semi-stub implementation.

Alexandre Julliard julliard at wine.codeweavers.com
Tue Apr 5 11:07:33 CDT 2016


Module: wine
Branch: master
Commit: 6fd383e8dfd7d2253f26a7a6462fd06e10c0c1c0
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=6fd383e8dfd7d2253f26a7a6462fd06e10c0c1c0

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Mon Apr  4 18:01:57 2016 +0200

mshtml: Added IHTMLWindow6::postMessage semi-stub implementation.

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

---

 dlls/mshtml/htmlwindow.c      | 12 ++++++++++--
 dlls/mshtml/tests/jstest.html | 10 ++++++++++
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/dlls/mshtml/htmlwindow.c b/dlls/mshtml/htmlwindow.c
index ec333bc..9092b47 100644
--- a/dlls/mshtml/htmlwindow.c
+++ b/dlls/mshtml/htmlwindow.c
@@ -2134,8 +2134,16 @@ static HRESULT WINAPI HTMLWindow6_get_maxConnectionsPerServer(IHTMLWindow6 *ifac
 static HRESULT WINAPI HTMLWindow6_postMessage(IHTMLWindow6 *iface, BSTR msg, VARIANT targetOrigin)
 {
     HTMLWindow *This = impl_from_IHTMLWindow6(iface);
-    FIXME("(%p)->(%s %s)\n", This, debugstr_w(msg), debugstr_variant(&targetOrigin));
-    return E_NOTIMPL;
+
+    FIXME("(%p)->(%s %s) semi-stub\n", This, debugstr_w(msg), debugstr_variant(&targetOrigin));
+
+    if(!This->inner_window->doc) {
+        FIXME("No document\n");
+        return E_FAIL;
+    }
+
+    fire_event(This->inner_window->doc, EVENTID_MESSAGE, TRUE, &This->inner_window->doc->node, NULL, NULL);
+    return S_OK;
 }
 
 static HRESULT WINAPI HTMLWindow6_toStaticHTML(IHTMLWindow6 *iface, BSTR bstrHTML, BSTR *pbstrStaticHTML)
diff --git a/dlls/mshtml/tests/jstest.html b/dlls/mshtml/tests/jstest.html
index 2a5a447..00dd35d 100644
--- a/dlls/mshtml/tests/jstest.html
+++ b/dlls/mshtml/tests/jstest.html
@@ -362,6 +362,15 @@ function test_xhr() {
     ok(typeof(xhr) === "object", "typeof(xhr) = " + typeof(xhr));
 }
 
+function test_sendMessage() {
+    var onmessage_called = false;
+    window.onmessage = function() {
+        onmessage_called = true;
+    }
+    window.postMessage("test", "*");
+    ok(onmessage_called, "onmessage not called");
+}
+
 var globalVar = false;
 
 function runTests() {
@@ -388,6 +397,7 @@ function runTests() {
     test_language_attribute();
     test_text_node();
     test_xhr();
+    test_sendMessage();
 
     var r = window.execScript("globalVar = true;");
     ok(r === undefined, "execScript returned " + r);




More information about the wine-cvs mailing list