Gabriel Ivăncescu : mshtml: Actually set the return value when removing an attribute.

Alexandre Julliard julliard at winehq.org
Wed Nov 17 16:27:59 CST 2021


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

Author: Gabriel Ivăncescu <gabrielopcode at gmail.com>
Date:   Tue Nov 16 19:58:17 2021 +0200

mshtml: Actually set the return value when removing an attribute.

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/htmlelem.c            | 8 ++++++--
 dlls/mshtml/tests/documentmode.js | 1 -
 2 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/dlls/mshtml/htmlelem.c b/dlls/mshtml/htmlelem.c
index 91ccfb97abc..d54f729b2e5 100644
--- a/dlls/mshtml/htmlelem.c
+++ b/dlls/mshtml/htmlelem.c
@@ -1202,8 +1202,12 @@ static HRESULT WINAPI HTMLElement_removeAttribute(IHTMLElement *iface, BSTR strA
 
     TRACE("(%p)->(%s %x %p)\n", This, debugstr_w(strAttributeName), lFlags, pfSuccess);
 
-    if(dispex_compat_mode(&This->node.event_target.dispex) >= COMPAT_MODE_IE8)
-        return element_remove_attribute(This, strAttributeName);
+    if(dispex_compat_mode(&This->node.event_target.dispex) >= COMPAT_MODE_IE8) {
+        *pfSuccess = element_has_attribute(This, strAttributeName);
+        if(*pfSuccess)
+            return element_remove_attribute(This, strAttributeName);
+        return S_OK;
+    }
 
     hres = IDispatchEx_GetDispID(&This->node.event_target.dispex.IDispatchEx_iface, strAttributeName,
             lFlags&ATTRFLAG_CASESENSITIVE ? fdexNameCaseSensitive : fdexNameCaseInsensitive, &id);
diff --git a/dlls/mshtml/tests/documentmode.js b/dlls/mshtml/tests/documentmode.js
index 9db1b4f686b..d5f33dd9521 100644
--- a/dlls/mshtml/tests/documentmode.js
+++ b/dlls/mshtml/tests/documentmode.js
@@ -1094,7 +1094,6 @@ sync_test("elem_attr", function() {
     r = elem.getAttribute("onclick");
     ok(r === (v < 8 ? func : null), "onclick attr = " + r);
     r = elem.removeAttribute("onclick");
-    todo_wine_if(v === 8).
     ok(r === (v < 9 ? false : undefined), "removeAttribute returned " + r);
     todo_wine_if(v === 8).
     ok(elem.onclick === (v != 8 ? func : null), "removed onclick = " + elem.onclick);




More information about the wine-cvs mailing list