This adds the product ids for the DualSense Edge to enable feature parity with the existing DualSense suppport.
I've tested this with the DualSense Edge hardware and these Windows games installed from Steam:
* Returnal
* Death Stranding: Director's Cut
* Overwatch 2
--
v2: hidclass.sys: Add DualSense Edge to device_strings.
mmdevapi: Override product strings for DualSense Edge.
winebus.sys: Identify DualSense Edge as a DualSense controller.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4433
Here's a list of usages of `base.outer_window` that may be impacted by the change and my analysis/fixes. Note that I specifically did not look for `document->outer_window` since that one was already holding it forever, so it's out of scope for this MR (whether it's correct or not, the behavior is the same after this MR).
I also didn't consider some cases that already **did not check** for it being NULL or not, because they would have crashed earlier before anyway (they'd still crash now if outer window gets killed, but it's out of scope of the MR as I said). For those that says "Handled" it means I've added checks so that the behavior is same as before, i.e. detached inner windows behave as if outer window is NULL.
* `htmldoc.c/HTMLDocument_get_mimeType`: Changed so it doesn't rely on outer window.
* `htmldoc.c/HTMLDocument7_get_defaultView`: This is actually fixed by these patches.
* `htmlform.c/HTMLFormElement_submit`: Handled.
* `htmlstorage.c/send_storage_event`: Fixed in a separate patch with tests, since it follows the outer window.
* `htmlwindow.c/check_target_origin`: This (along with many other methods) can't have it NULL anymore or detached, since the caller must hold a ref to the outer window, and they're not called from our objects holding ref to inner window only.
* `htmlwindow.c/HTMLWindowSP_QueryService`: This uses the outer window to obtain the browser and the doc obj, so it's fine.
* `mutation.c/set_document_mode`: Handled.
* `navigate.c/BindCallbackRedirect_Redirect`: Handled.
* `navigate.c/nsAsyncVerifyRedirectCallback_OnRedirectVerifyCallback`: Handled.
* `navigate.c/nsChannelBSC_init_bindinfo`: Uses the outer window to obtain the browser and doc obj to set a flag, so it's harmless and probably correct this way.
* `navigate.c/handle_navigation_error`: Handled.
* `navigate.c/handle_extern_mime_navigation`: Handled.
* `omnavigator.c/OmHistory_get_length`: This is actually fixed by these patches.
* `script.c/ActiveScriptSite_GetItemInfo`: Handled.
* `script.c/ActiveScriptSiteWindow_GetWindow`: Handled.
--
v2: mshtml: Get rid of outer_window member in HTMLDocumentNode.
mshtml/tests: Improve the iframe navigation test.
mshtml: Remove the inner window ref from the doc only when it is actually
mshtml: Don't check for NULL outer_window from within HTMLWindow* methods.
mshtml: Don't attempt to send storage events after outer window is destroyed.
mshtml: Keep the inner window's outer_window pointer alive until it is
mshtml: Don't rely on the outer_window in document.mimeType.
https://gitlab.winehq.org/wine/wine/-/merge_requests/4380
Goes atop !471. The last six commits belong to this MR.
--
v3: vkd3d-shader/dxil: Emit constant global arrays as immediate constant buffers.
vkd3d-shader: Add a register index to struct vkd3d_shader_immediate_constant_buffer.
vkd3d-shader/spirv: Support declared component type and count in immediate constant buffers.
vkd3d-shader/spirv: Support constant initialisers in indexable temps.
vkd3d-shader/dxil: Support null constant arrays.
vkd3d-shader/spirv: Support declared component type and count in indexable temps.
vkd3d-shader/dxil: Implement the DXIL LOAD instruction.
vkd3d-shader/dxil: Implement the DXIL GEP instruction.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/477
On Windows, \Device\NamedPipe\ is the root directory of the named pipe
file system (NPFS), and can be used as RootDirectory to skip its path
when accessing the NPFS namespace.
This introduces a regression that makes it possible to use
\Device\NamedPipe (note the lack of trailing backslash) as RootDirectory
as well, since Wine does not distinguish between \Device\NamedPipe (the
device itself) and \Device\NamedPipe\ (the root directory of the
filesystem).
(Previous iteration of this patch did distinguish between the two, but the method in which it was implemented was deemed hacky.)
--
v2: server: Allow creating named pipes using \Device\NamedPipe\ as RootDirectory.
https://gitlab.winehq.org/wine/wine/-/merge_requests/498