--
v3: mshtml: Implement document.mimeType.
mshtml: Get rid of a EVENTID_LAST special case.
mshtml: Allow null or undefined func in addEventListener.
mshtml: Allow null or undefined listeners in attachEvent/detachEvent.
jscript: Implement VariantChangeType for VT_DISPATCH and VT_UNKNOWN.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1172
So indeed attachEvent only does that when the ChangeType fails (no matter the error code).
Getting the mime type thing correct is challenging, but at least I managed to have all tests pass. I think I got it for the most part, and it should be fine for us to do it like this, but I had to add one "special case" in the tests for the w1064v1809 testbot VM because, for whatever reason, it uses the .htm extension to lookup the name, while .html is specified in the database. The CLSID also does not work correctly for it, either (it would show "HTML Document" instead of "HTM file")... I don't think this quirk is worth replicating.
Basically, first it looks up the Extension value in the database for that MIME type. If that is not found, or the extension lookup itself fails later or doesn't exist, it tries the CLSID from the database to obtain the ProgID.
I also test it in scripts via external.getExpectedMimeType, even though it seems overkill for now, because it will be useful later when testing more doc mime types (XHR response as well, for instance) and from others (anchors, etc). So it will be useful to have.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1172#note_12385
Enforce proper atomic update so that other threads do not read stale
data from IO_STATUS_BLOCK.
Signed-off-by: Jinoh Kang <jinoh.kang.kr(a)gmail.com>
--
v8: ntdll: Fix reading stale Information from IOSB.
https://gitlab.winehq.org/wine/wine/-/merge_requests/155
Enforce proper atomic update so that other threads do not read stale
data from IO_STATUS_BLOCK.
Signed-off-by: Jinoh Kang <jinoh.kang.kr(a)gmail.com>
--
v7: ntdll: Fix reading stale Information from IOSB.
https://gitlab.winehq.org/wine/wine/-/merge_requests/155
This change is adding DWARF (CFI) unwind information to the
hand-written assembly of the `__wine_syscall_dispatcher` function.
This enables unwinding through the dispatcher from the Linux stack
into (and through) the Windows stack.
The general idea is that the `syscall_frame` struct contains the
content of the callee-save registers before the function call
(in particular the stack pointer and the return address). At any
point of the execution, we have a pointer into the `syscall_frame`
in $ebx, $ecx, $ebp, or $esp.
For the CFI codes the general idea is that we are defining the
computations of the callee-save registers based on the
`syscall_frame` using DWARF’s `breg` instruction, rather than
relative to CFA.
cc/ @florian-kuebler
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1182
Overwatch 2 verifies that every kernel callback that is run, lives in user32. Introduce a callback in user32 that just forwards to the other modules' callbacks.
I don't know what to call this kind of callback, I just called it "user32 callback" for now because it's going through user32 but that's not really a good name.
It also sadly necessitates a private \_\_wine export from user32, unless someone has a better idea for how to register the callbacks with user32.
--
v3: user32: Remove NtUserDriverCallback* kernel callbacks.
winex11.drv: Convert kernel callbacks to user32 callbacks.
winemac.drv: Convert kernel callbacks to user32 callbacks.
wineandroid.drv: Convert kernel callbacks to user32 callbacks.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1180
Overwatch 2 verifies that every kernel callback that is run, lives in user32. Introduce a callback in user32 that just forwards to the other modules' callbacks.
I don't know what to call this kind of callback, I just called it "user32 callback" for now because it's going through user32 but that's not really a good name.
It also sadly necessitates a private \_\_wine export from user32, unless someone has a better idea for how to register the callbacks with user32.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1180