[PATCH 1/5] mshtml: Expose IHTMLDOMImplementation2 members in IE9+ modes.

Gabriel Ivăncescu gabrielopcode at gmail.com
Thu May 19 13:06:35 CDT 2022


Signed-off-by: Gabriel Ivăncescu <gabrielopcode at gmail.com>
---
 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 9962cc2..4385c4c 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 74e871e..eeeb1c8 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();
 
-- 
2.34.1




More information about the wine-devel mailing list