[PATCH v2 01/16] mshtml: Add names for each object and use it in the Navigator.

Gabriel Ivăncescu gabrielopcode at gmail.com
Wed Oct 6 07:35:57 CDT 2021


On 05/10/2021 22:18, Jacek Caban wrote:
> On 10/5/21 4:18 PM, Gabriel Ivăncescu wrote:
>> Signed-off-by: Gabriel Ivăncescu <gabrielopcode at gmail.com>
>> ---
>>
>> All the names match native, and will be tested later when more are
>> implemented.
>>
>>   dlls/mshtml/dispex.c         | 29 +++++++++++++++++++++++++++++
>>   dlls/mshtml/htmlanchor.c     |  1 +
>>   dlls/mshtml/htmlarea.c       |  1 +
>>   dlls/mshtml/htmlattr.c       |  1 +
>>   dlls/mshtml/htmlbody.c       |  1 +
>>   dlls/mshtml/htmlcomment.c    |  1 +
>>   dlls/mshtml/htmlcurstyle.c   |  1 +
>>   dlls/mshtml/htmldoc.c        |  2 ++
>>   dlls/mshtml/htmlelem.c       |  6 ++++++
>>   dlls/mshtml/htmlelemcol.c    |  1 +
>>   dlls/mshtml/htmlevent.c      |  6 ++++++
>>   dlls/mshtml/htmlform.c       |  1 +
>>   dlls/mshtml/htmlframe.c      |  2 ++
>>   dlls/mshtml/htmlgeneric.c    |  1 +
>>   dlls/mshtml/htmlhead.c       |  4 ++++
>>   dlls/mshtml/htmlimg.c        |  2 ++
>>   dlls/mshtml/htmlinput.c      |  3 +++
>>   dlls/mshtml/htmllink.c       |  1 +
>>   dlls/mshtml/htmllocation.c   |  1 +
>>   dlls/mshtml/htmlnode.c       |  2 ++
>>   dlls/mshtml/htmlobject.c     |  2 ++
>>   dlls/mshtml/htmlscript.c     |  1 +
>>   dlls/mshtml/htmlselect.c     |  3 +++
>>   dlls/mshtml/htmlstorage.c    |  1 +
>>   dlls/mshtml/htmlstyle.c      |  2 ++
>>   dlls/mshtml/htmlstyleelem.c  |  1 +
>>   dlls/mshtml/htmlstylesheet.c |  4 ++++
>>   dlls/mshtml/htmltable.c      |  3 +++
>>   dlls/mshtml/htmltextarea.c   |  1 +
>>   dlls/mshtml/htmltextnode.c   |  1 +
>>   dlls/mshtml/htmlwindow.c     |  1 +
>>   dlls/mshtml/mshtml_private.h |  2 ++
>>   dlls/mshtml/omnavigator.c    | 18 ++++++++++++------
>>   dlls/mshtml/range.c          |  2 ++
>>   dlls/mshtml/selection.c      |  1 +
>>   dlls/mshtml/xmlhttprequest.c |  2 ++
>>   36 files changed, 106 insertions(+), 6 deletions(-)
>>
>> diff --git a/dlls/mshtml/dispex.c b/dlls/mshtml/dispex.c
>> index 64ead8f..26aab5e 100644
>> --- a/dlls/mshtml/dispex.c
>> +++ b/dlls/mshtml/dispex.c
>> @@ -886,6 +886,7 @@ static const dispex_static_data_vtbl_t 
>> function_dispex_vtbl = {
>>   static const tid_t function_iface_tids[] = {0};
>>   static dispex_static_data_t function_dispex = {
>> +    NULL,
> 
> 
> The patch looks mostly good, but we're so close to having those names 
> for all objects, that I think it would be best to do it a be able to 
> assume that all objects have name in their description. In this case I 
> believe that this should be "Function". I have suggestions for missing 
> ones bellow.
> 
> 
>>   static dispex_static_data_t HTMLCommentElement_dispex = {
>> +    NULL,
>>       NULL,
>>       DispHTMLCommentElement_tid,
>>       HTMLCommentElement_iface_tids,
> 
> 
>      if(v >= 9) {
>          document.body.innerHTML = "<!--...-->";
>          test("comment", document.body.firstChild, "Comment");
>      }
>  >

Sounds good to me but I ran into a problem. The comment test is right, 
of course, but giving it the proper name makes a test fail in dom.c, 
namely test_doctype.

That one expects its value to always be [object], even in IE9+ mode, 
implicitly via test_elem_type. However, toString also returns the same 
thing (see attached diff). And I can't separate the tests in 
test_elem_type, it already tests for [object].

Now from what I can see, a simple solution would be to add a "value" 
override in the vtbl for HTMLCommentElement, since toString is based on 
it, and have it return [object] for doctypes. But how do I check if the 
comment element is a doctype or a "normal" comment?

Thanks,
Gabriel
-------------- next part --------------
A non-text attachment was scrubbed...
Name: test.diff
Type: text/x-patch
Size: 937 bytes
Desc: not available
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20211006/42f0ef66/attachment.bin>


More information about the wine-devel mailing list