Testing on Windows shows that the owner of GetDesktopWindow() always has a default admin token with `TokenElevationTypeDefault`, no matter the token of the process/thread that is responsible for creating it.
We've had issues in this area in the past - 99e2fad1 was a case where it was important that explorer not inherit the token of the *process* spawning it, but instead the token of the *thread*. This patch keeps that app working, since now explorer will get a default token regardless.
In addition to the privilege issues from 99e2fad1, it is a relatively common pattern to duplicate the token of the owner of GetDesktopWindow to acquire a default token.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6602
This is part XXVII of cmd engine rewrite.
It covers:
- fixing a regression introduced when looping up
for program names with several dots in their names
(eg. foo.bat can invoke foo.bat.cmd)
- fix an incorrect handling of 'SET =' command
- a couple of cleanups in SET command
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6615
This adds support for mshtml host object accessor to jscript, with necessary fixes along the way.
For the last patch I decided to go with flags (i.e. PROPF_METHOD) instead of introducing a type field, which makes it simpler, less fields to track off and less changes.
--
v2: jscript|mshtml: Add support for host object accessor props.
mshtml: Move the hook invocations inside of the builtin_prop* helpers.
mshtml: Fix builtin style translation in removeAttribute for IE9+ modes.
mshtml: Move lookup_dispid and get_dispid calls out of get_builtin_id.
mshtml: Don't make hidden props enumerable.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6609
This MR adds a unixlib component to wlanapi containing DBus + NetworkManager implementations for
* WlanEnumInterfaces
* WlanGetAvailableNetworkList
* WlanGetAvailableNetworkList
* WlanGetNetworkBssList
* WlanScan
--
v12: wlanapi: Add NetworkManager backed implementation for WlanSetProfile.
wlanapi/tests: Add tests for WlanSetProfile.
wlanapi: Add stub for WlanSetProfile.
wlanapi: Add stub for WlanDisconnect.
wlanapi: Add an initial NetworkManager backed implementation for WlanConnect.
wlanapi/tests: Add unit tests for WlanConnect.
wlanapi: Add stub for WlanConnect.
wlanapi: Add NetworkManager backed implementation for WlanGetProfileList.
wlanapi/tests: Add unit tests for WlanGetProfileList.
wlanapi: Add stub for WlanGetProfileList.
wlanapi: Add NetworkManager backed implementation for WlanScan.
wlanapi/tests: Add unit tests for WlanScan.
wlanapi: Add NetworkManager backed implementation for WlanGetNetworkBssList.
wlanapi/tests: Add unit test for test_WlanGetNetworkBssList.
wlanapi: Add stub for WlanGetNetworkBssList.
wlanapi: Add NetworkManager backed implementation for WlanGetAvailableNetworkList.
wlanapi/tests: Add unit test for WlanGetAvailableNetworkList.
wlanapi: Add NetworkManager backed implementation for WlanEnumInterfaces.
wlanapi: Add a basic unixlib implementation.
This merge request has too many patches to be relayed via email.
Please visit the URL below to see the contents of the merge request.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6505
This adds support for mshtml host object accessor to jscript, with necessary fixes along the way.
For the last patch I decided to go with flags (i.e. PROPF_METHOD) instead of introducing a type field, which makes it simpler, less fields to track off and less changes.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6609
When passing a box with a non-zero height that is smaller than the bounding box to GdipMeasureString, it returns a bounding box of 0. In Windows it returns the same height as the box.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6597
According to microsoft documentation, ScrollWindowEx, SetScrollPos and SetScrollRange may only
be called while the control is in-place active.
This fixes a segmentation fault in Anytone CPS.
--
v3: riched20/tests: Test that ScrollWindowEx is only called when control is in-place active.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6608
Under the HKCU\Software\Wine\X11 Driver global or application-specific HKCU\Software\Wine\AppDefaults\app.exe\X11 Driver registry keys.
This option can be used to restore the old behavior with DPI awareness forced on every application, which some of them handled well enough even if not DPI aware otherwise.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=57175
--
v3: win32u: Read AppCompatFlags DPI awareness overrides from the registry.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6521
Under the HKCU\Software\Wine\X11 Driver global or application-specific HKCU\Software\Wine\AppDefaults\app.exe\X11 Driver registry keys.
This option can be used to restore the old behavior with DPI awareness forced on every application, which some of them handled well enough even if not DPI aware otherwise.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=57175
--
v2: win32u: Read AppCompatFlags DPI awareness overrides from the registry.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6521
MSDN is pretty quiet on the difference between these two functions, which is why I've left CreateProcessWithToken marked as a semi-stub. Using CreateProcessAsUser at least means that the token will be applied to the new process.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6601
Tests show that shell windows are per-desktop, not global. Existing tests also show that new desktops from CreateDesktop do not have a shell window set initially. The Default desktop on WinSta0 does, however.
GetShellWindow ought to return an IShellView's window, but we never actually make one of those for the desktop. However, there is a common pattern (used by e.g. GOG Galaxy) of retrieving an unelevated token by duplicating that of the owner of GetShellWindow, so having any window set at all is a step in the right direction.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6600
To start an ARM64X executable in ARM64EC mode the x64 target machine
needs to be explicitly specified. x64 is also not listed in
SupportedProcessorArchitectures on ARM64EC (also the case on Windows) so drop the check that
requires that.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6598
Some tests reuse the same MP4 stream and are currently passing only because we have the generic byte stream handler fallback. They pass on Windows too, so I'm assuming the stream is seeked before looking for the hints. We could also very well remove the position restore because the media sources are rewinding the stream later too, but I've kept it like it was.
--
v2: mfplat: Seek byte stream to the start for URL hint detection.
mfplat/tests: Test source resolver bytestream interactions.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6373
--
v3: win32u: Use the current display mode as monitor rect.
win32u: Keep track of the display source physical display mode.
win32u: Add virtual modes when drivers report a single display mode.
win32u: Remove unnecessary GetCurrentDisplaySettings call.
win32u: Cache display source current display settings.
win32u: Remove now unnecessary GetDisplayDepth driver entry.
win32u: Keep the source depth separately from the current mode.
win32u: Always write the source current mode to the registry.
win32u: Make sure to load drivers when updating the display cache.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6573
Fix clicking Toad for Oracle treeview nodes doesn't function. The left button click is sent to a
top-level TSafeHintWindow, which returns HTTRANSPARENT when handling WM_NCHITTEST. Tests show that
in such cases, the mouse message should be sent to the next top-level window in the z-order.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6585
wintab32 is currently broken in the new wow64 mode because the `tablet_get_packet` thunk in winex11.drv is not implemented. Since the structure it is copying is entirely internal to Wine, and the HCTX handle value is not actually read or written by the driver side, I found that simply padding the structure to keep the rest of it aligned was enough to make wow64 happy and allow wintab32 to function.
This is somewhat a stopgap. What would be much better is to refactor the wintab code such that more of the logic is in the wintab32 implementation and not the driver. My goal is to accomplish this as part of trying to get my winewayland graphics tablet patch into an acceptable state for upstreaming. However, I think this is still a worthwhile improvement to have in the interim, if it is acceptable.
--
v2: winex11: Remove stub tablet_get_packet wow64 thunk
wintab32: Pad WTPACKET to align 32/64-bit archs
https://gitlab.winehq.org/wine/wine/-/merge_requests/6584
Test that DragDetect() uses client coordinates instead of screen coordinates even though MSDN says that DragDetect()
should use screen coordinates. This also means that Wine's current implementation is correct.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6586