mshtml: Expose IHTMLDOMImplementation2 members in IE9+ modes.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Gabriel Ivăncescu 2022-05-19 21:06:35 +03:00 committed by Alexandre Julliard
parent 15aa8c6fb8
commit 2a1aaa7e6c
2 changed files with 25 additions and 1 deletions

View File

@ -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)

View File

@ -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();