[PATCH v3 3/3] mshtml: Populate the element props properly.
Gabriel Ivăncescu
gabrielopcode at gmail.com
Thu Nov 4 09:10:53 CDT 2021
For IE modes 8 and above, IHTMLElement::setAttribute uses the underlying
nsIDOMElement::SetAttribute, which does nothing since we're already
enumerating the ns attributes, and we're supposed to create the DISPIDs
for them.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode at gmail.com>
---
dlls/mshtml/htmlelem.c | 5 ++++-
dlls/mshtml/tests/documentmode.js | 2 --
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c
index 503a287..6624264 100644
--- a/dlls/mshtml/htmlelem.c
+++ b/dlls/mshtml/htmlelem.c
@@ -6480,7 +6480,10 @@ static HRESULT HTMLElement_populate_props(DispatchEx *dispex)
} else
V_BSTR(&value) = NULL;
- IHTMLElement_setAttribute(&This->IHTMLElement_iface, name, value, 0);
+ hres = IDispatchEx_GetDispID(&dispex->IDispatchEx_iface, name, fdexNameEnsure | fdexNameCaseInsensitive, &id);
+ if(SUCCEEDED(hres))
+ set_elem_attr_value_by_dispid(This, id, &value);
+
SysFreeString(name);
VariantClear(&value);
}
diff --git a/dlls/mshtml/tests/documentmode.js b/dlls/mshtml/tests/documentmode.js
index 69f4796..d7c1350 100644
--- a/dlls/mshtml/tests/documentmode.js
+++ b/dlls/mshtml/tests/documentmode.js
@@ -518,9 +518,7 @@ sync_test("createElement_inline_attr", function() {
for(var i = 0; i < tags.length; i++) {
e = document.createElement("<" + tags[i] + " test='a\"' abcd=\""b"\">");
ok(e.tagName === tags[i].toUpperCase(), "<" + tags[i] + " test=\"a\" abcd=\"b\">.tagName returned " + e.tagName);
- todo_wine_if(v == 8).
ok(e.test === "a\"", "<" + tags[i] + " test='a\"' abcd=\""b"\">.test returned " + e.test);
- todo_wine_if(v == 8).
ok(e.abcd === "\"b\"", "<" + tags[i] + " test='a\"' abcd=\""b"\">.abcd returned " + e.abcd);
}
}else {
--
2.31.1
More information about the wine-devel
mailing list