test_reuseaddr and test_exclusiveaddruse bind to the wildcard address
(0.0.0.0 or [::]). This may trigger a firewall alert on Windows 7, and
the alert UI window may interfere with user32:msg tests.
Fix this by trying to disable the firewall, and skipping the wildcard
address tests if it fails.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53891
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54202
--
v2: ws2_32/tests: Try to disable firewall before testing with any addr.
ws2_32/tests: Factor out test_exclusiveaddruse from test_reuseaddr.
ws2_32/tests: Do ANY address tests in a separate loop in test_reuseaddr.
webservices/tests: Move firewall code to a common header.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2000
I think the behaviour of SetWindowPos() in this case is partially explained by the fact that topmost state is not strictly applicable to child windows and so Windows denies such requests. Child window can still end up with WS_EX_TOPMOST style if it was set at window creation (doesn't work this way in Wine now) or, e. g., like in the test added in the patch.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=20190
Also fixes game load dialog in Indiana Jones and the Infernal Machine.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/667
Based on [a patch](https://www.winehq.org/mailman3/hyperkitty/list/[email protected]… by Jinoh Kang (@iamahuman) from February 2022.
I removed the need for the event object and implemented fast paths for Linux.
On macOS 10.14+ `thread_get_register_pointer_values` is called on every thread of the process.
On Linux 4.14+ `membarrier(MEMBARRIER_CMD_GLOBAL_EXPEDITED, ...)` is used.
On x86 Linux <= 4.13 and on other platforms `madvise(..., MADV_DONTNEED)` is used, which sends IPIs to all cores causing them to do a memory barrier.
--
v11: ntdll: Add thread_get_register_pointer_values-based implementation of NtFlushProcessWriteBuffers.
ntdll: Add sys_membarrier-based implementation of NtFlushProcessWriteBuffers.
ntdll: Add MADV_DONTNEED-based implementation of NtFlushProcessWriteBuffers.
https://gitlab.winehq.org/wine/wine/-/merge_requests/741
Currently GetFileType() ends up returning the file type solely based on Unix fd type if it gets it from server. The problematic case is when our process gets a pipe or socket fd as a stdin or stderr from Unix. The server object which gets created through wine_server_fd_to_handle is a regular file regardless of the underlying Unix fd type. It probably can't be anything else, at least for pipes, as the pipe should have both ends but we have only one in this case.
That causes problems, e. g., with libuv (used, e. g., by Vampire Survivors). It checks stdout handle type and if it is pipe it tries to do SetNamedPipeHandleState() on it and does not tolerate the failure.
It looks more sensible to me to report all the pipes and sockets created through wine_server_fd_to_handle() as regular files as that matches the server objects we have for them. When that is not the case we should get the correct type from server fd type.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/1425
As _WINE_HWND_STYLE and _WINE_HWND_EXSTYLE respectively.
Gamescope parses these to make smarter decisions about what window
to primary focus, or to treat as a dropdown/overlay.
This was originally a Proton commit by Remi Bernon, however,
it would definitely be nice to have support for Gamescope focusing
correctly under upstream Wine as well.
Fixes a bunch of games/launchers run with Wine under Gamescope.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2902
The idea I have is to use this module to declare class stubs until there is a good reason to split them to dedicated modules. WinRT modules aren't usually loaded directly, and instead the registry is queried to figure which module to load for which class.
This would help avoiding unnecessary proliferation of stub WinRT modules, while at the same time allowing to factor WinRT foundation code (such as vector / async, etc...) between the modules that seem to deserve to be implemented separately.
The relevant classes could then be split out to dedicated modules on a as-needed basis, when they get fleshed out.
--
v3: winewinrt: Factor IAsyncOperation<boolean> implementations.
winewinrt: Factor IAsyncInfo implementations.
winewinrt: Move Vector<HSTRING> from windows.media.speech.
widl: Write C type names for function parameters.
winewinrt: Factor Vector<IInspectable> implementations.
winewinrt: Introduce new static library.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2298