This goes on top of !325 (which was already approved).
--
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/vkd3d/-/merge_requests/332
This begins the initial implementation of a unified QueryInterface on the dispex. There's a couple of hacks used to make the conversion split up easier, but they're all resolved within this MR.
--
v2: mshtml: Use query_interface in the dispex vtbl for XMLHttpRequest.
mshtml: Use query_interface in the dispex vtbl for inner windows.
mshtml: Introduce query_interface in dispex vtbl and use it for DOM Nodes.
mshtml: Return interface directly from node vtbl's QI instead of HRESULT,
mshtml: Expose an EventTarget interface on the outer window for events'
https://gitlab.winehq.org/wine/wine/-/merge_requests/3723
If DISABLEAUTOREDIRECTS is set in BINDINFO options, urlmon does not set HTTP verb to GET when handling redirections.
Although HTTP specification is vague on the correct behaviour here, many web servers expect this. This is what's causing the "400 Bad Request" error when user tries to log into GMail accounts using Outlook.
--
v3: urlmon: test redirection of POST requests
https://gitlab.winehq.org/wine/wine/-/merge_requests/3725
The validation code is meant both as a check that the frontend is behaving properly and as a sort of the documentation to establish what is allowed and what is not in the IR.
~~Currently an assertion is thrown if validation fails. I realize this is a rather strong proposal, but it's of course up for debate. In theory asserting here is the right thing, as it is expected that the frontend is generating correct IR code. However vkd3d is already used in production for many programs, and it could very well be that some of those are working properly even if the generated IR is somewhat out of specs; allowing the assertion might cause regressions as soon as enough checks are implemented in the validator. Please let me know your opinions.~~ **Solved in favor of a softer failure, and only when validation is enabled**
--
v4: vkd3d-shader: Validate source parameters.
vkd3d-shader: Validate destination parameters.
vkd3d-shader: Validate register types.
vkd3d-shader: Validator instruction handlers.
vkd3d-shader: Introduce a boilerplate to validate the generated IR.
vkd3d-shader: Embed the parsing location in vkd3d_shader_instruction.
vkd3d-shader: Destroy the SM6 parser on parsing errors.
vkd3d-shader: Destroy the SM4 parser on parsing errors.
vkd3d-shader: Destroy the SM1 parser on parsing errors.
https://gitlab.winehq.org/wine/vkd3d/-/merge_requests/317