[PATCH v5 2/2] mshtml: Populate the element props properly.
Gabriel Ivăncescu
gabrielopcode at gmail.com
Wed Nov 10 09:56:43 CST 2021
On 10/11/2021 17:29, Jacek Caban wrote:
> Hi Gabriel,
>
> On 11/9/21 10:00 PM, Gabriel Ivăncescu wrote:
>> --- a/dlls/mshtml/htmlelem.c
>> +++ b/dlls/mshtml/htmlelem.c
>> @@ -6516,7 +6516,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);
>
>
> While this is probably the right thing for compat modes <IE9, later
> modes should not really need it. They should not expose attributes as JS
> properties, see the attached test. I think that entire
> HTMLElement_populate_props should be no-op on IE9+. That means that
> current attributes collection will not work for those cases, but AFICS
> it's already broken. The right fix for attributes collection would be to
> have its variant based on something like nsIDOMMozNamedAttrMap.
>
>
> Thanks,
>
> Jacek
>
Ah, thanks for noticing, I'll just exit early on IE9+ then. This gives
me more reasons to attempt to fix it at some point since already had the
issue with toString exposed as an attribute...
More information about the wine-devel
mailing list