For the first commit, note that as of now, there's a lot of tests that will fail on native if mshtml_test.exe is renamed to iexplore.exe, even with *all* the FeatureControl values for `iexplore.exe` removed, which leads me to believe there's a lot of other places where native mshtml hardcodes behavior based on the app name being `iexplore.exe`.
For the purposes of testing this, please skip all other tests and execute just the test_strict_mode() test, for example (which *should* fail on native if the executable is renamed to `iexplore.exe` instead).
I've actually literally searched the *entire* registry on a temporary VM for `iexplore` and removed all values with it, and it still showed such different behavior after the fact, so it must be hardcoded into mshtml.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/461
ICMP over SOCK_DGRAM is already used in ndispproxy.sys. But apps may also use ICMP directly over SOCK_RAW (Hardspace: Shipbreaker is an example) and that requires admin privileges on Linux (or setcap cap_net_raw+ep on wineserver).
AF_INET / SOCK_RAW / IPPROTO_ICMP works on Windows without admin privileges.
Comments:
- IP, ICMP header structures and chksum() functions are taken from ndisproxy.sys:icmp_echo.c;
- ICMP over DGRAM, while designed specifically to allow ICMP without admin permissions, still needs some setup Linux, /proc/sys/net/ipv4/ping_group_range controls that. Such socket creation fails on Testbot Debian machines so I left skip() path in test_icmp();
- Linux substitute local port number instead of provided ICMP packet id, while the referenced game depends on reply id matching the id it provided in request. So the last part performs the fixup.
--
v2: ntdll: Compute checksum for ICMP over SOCK_DGRAM IP header.
ntdll: Fixup ICMP packet id if SOCK_DGRAM fallback is used.
ntdll: Support SOCK_RAW / IPPROTO_ICMP fallback over SOCK_DGRAM.
ws2_32/tests: Test ICMP.
ws2_32: Add ipv4 raw socket protocol info.
https://gitlab.winehq.org/wine/wine/-/merge_requests/384
The destination rectangle may be smaller than that of theme parts, in which case, the draw size
returned is adjusted to fit the destination rectangle. Without passing a destination rectangle
to GetThemePartSize(), the function assumes that there is no limit for destination.
This fixes winecfg check boxes missing the upper edge in 192 DPI. You may notice that the check box
bitmap is slightly shrank and so the shape is a bit off. However, this is what happens on Windows as
well when check box height is set to 8 DLUs.
GetThemePartSize() without destination rectangles are also used in other controls, but manual tests
showed that those controls don't shrink their theme background as check boxes do so they are left
unchanged.
Signed-off-by: Zhiyi Zhang <zzhang(a)codeweavers.com>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/467