Gabriel Ivăncescu : mshtml: Expose IHTMLDOMImplementation2 members in IE9+ modes.

Alexandre Julliard julliard at winehq.org
Fri May 20 15:26:48 CDT 2022


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

Author: Gabriel Ivăncescu <gabrielopcode at gmail.com>
Date:   Thu May 19 21:06:35 2022 +0300

mshtml: Expose IHTMLDOMImplementation2 members in IE9+ modes.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode at gmail.com>
Signed-off-by: Jacek Caban <jacek at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/mshtml/omnavigator.c         |  9 ++++++++-
 dlls/mshtml/tests/documentmode.js | 17 +++++++++++++++++
 2 files changed, 25 insertions(+), 1 deletion(-)

diff --git a/dlls/mshtml/omnavigator.c b/dlls/mshtml/omnavigator.c
index 9962cc20dc7..4385c4c5bab 100644
--- a/dlls/mshtml/omnavigator.c
+++ b/dlls/mshtml/omnavigator.c
@@ -299,6 +299,12 @@ static const IHTMLDOMImplementation2Vtbl HTMLDOMImplementation2Vtbl = {
     HTMLDOMImplementation2_hasFeature
 };
 
+static void HTMLDOMImplementation_init_dispex_info(dispex_data_t *info, compat_mode_t compat_mode)
+{
+    if(compat_mode >= COMPAT_MODE_IE9)
+        dispex_info_add_interface(info, IHTMLDOMImplementation2_tid, NULL);
+}
+
 static const tid_t HTMLDOMImplementation_iface_tids[] = {
     IHTMLDOMImplementation_tid,
     0
@@ -307,7 +313,8 @@ static dispex_static_data_t HTMLDOMImplementation_dispex = {
     L"DOMImplementation",
     NULL,
     DispHTMLDOMImplementation_tid,
-    HTMLDOMImplementation_iface_tids
+    HTMLDOMImplementation_iface_tids,
+    HTMLDOMImplementation_init_dispex_info
 };
 
 HRESULT create_dom_implementation(HTMLDocumentNode *doc_node, IHTMLDOMImplementation **ret)
diff --git a/dlls/mshtml/tests/documentmode.js b/dlls/mshtml/tests/documentmode.js
index 74e871e47f1..eeeb1c88430 100644
--- a/dlls/mshtml/tests/documentmode.js
+++ b/dlls/mshtml/tests/documentmode.js
@@ -364,6 +364,23 @@ sync_test("window_props", function() {
     test_exposed("console", v >= 10);
 });
 
+sync_test("domimpl_props", function() {
+    var domimpl = document.implementation;
+    function test_exposed(prop, expect) {
+        if(expect)
+            ok(prop in domimpl, prop + " not found in DOMImplementation.");
+        else
+            ok(!(prop in domimpl), prop + " found in DOMImplementation.");
+    }
+
+    var v = document.documentMode;
+
+    test_exposed("hasFeature", true);
+    test_exposed("createDocument", v >= 9);
+    test_exposed("createDocumentType", v >= 9);
+    test_exposed("createHTMLDocument", v >= 9);
+});
+
 sync_test("xhr_props", function() {
     var xhr = new XMLHttpRequest();
 




More information about the wine-cvs mailing list