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