Rebase against 0a50674c6aabb0368811ece4078a2bb69d7ea1bb.

This commit is contained in:
Alistair Leslie-Hughes 2021-05-13 08:52:29 +10:00
parent 234a9fe775
commit 0df3e892fb
5 changed files with 31 additions and 203 deletions

View File

@ -1,151 +0,0 @@
From 0582e37b52e2484a6f27b99b25fdf62afd31a4df Mon Sep 17 00:00:00 2001
From: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
Date: Thu, 3 Sep 2020 17:59:10 +1000
Subject: [PATCH] include: Add IXMLHTTPRequest2/3 interfaces
Signed-off-by: Alistair Leslie-Hughes <leslie_alistair@hotmail.com>
---
include/msxml6.idl | 106 +++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 106 insertions(+)
diff --git a/include/msxml6.idl b/include/msxml6.idl
index bfea408ab21..1f35e965124 100644
--- a/include/msxml6.idl
+++ b/include/msxml6.idl
@@ -244,6 +244,8 @@ typedef enum _SCHEMAWHITESPACE
SCHEMAWHITESPACE_COLLAPSE = 2,
} SCHEMAWHITESPACE;
+interface IXMLHTTPRequest2Callback;
+interface IXMLHTTPRequest3Callback;
typedef enum _SCHEMATYPEVARIETY
{
@@ -393,6 +395,35 @@ interface IXMLDOMNode : IDispatch
[in] VARIANT var1);
}
+typedef struct tagXHR_COOKIE
+{
+ [ref, string] WCHAR *pwszUrl;
+ [ref, string] WCHAR *pwszName;
+ [unique, string] WCHAR *pwszValue;
+ [unique, string] WCHAR *pwszP3PPolicy;
+ FILETIME ftExpires;
+ DWORD dwFlags;
+} XHR_COOKIE;
+
+typedef [v1_enum] enum _XHR_PROPERTY
+{
+ XHR_PROP_NO_CRED_PROMPT = 0x0,
+ XHR_PROP_NO_AUTH = 0x1,
+ XHR_PROP_TIMEOUT = 0x2,
+ XHR_PROP_NO_DEFAULT_HEADERS = 0x3,
+ XHR_PROP_REPORT_REDIRECT_STATUS = 0x4,
+ XHR_PROP_NO_CACHE = 0x5,
+ XHR_PROP_EXTENDED_ERROR = 0x6,
+ XHR_PROP_QUERY_STRING_UTF8 = 0x7,
+ XHR_PROP_IGNORE_CERT_ERRORS = 0x8,
+} XHR_PROPERTY;
+
+typedef struct tagXHR_CERT
+{
+ DWORD cbCert;
+ [ref, size_is(cbCert)] BYTE *pbCert;
+} XHR_CERT;
+
[
local,
object,
@@ -1309,6 +1340,70 @@ interface IServerXMLHTTPRequest : IXMLHTTPRequest
[in] VARIANT value);
}
+[
+ object,
+ uuid(e5d37dc0-552a-4d52-9cc0-a14d546fbd04),
+ helpstring("IXMLHTTPRequest2 Interface")
+]
+interface IXMLHTTPRequest2 : IUnknown
+{
+ HRESULT Open([in, string, ref] const WCHAR *method, [in, string, ref] const WCHAR *url,
+ [in] IXMLHTTPRequest2Callback *callback,
+ [in, string, unique] const WCHAR *username, [in, string, unique] const WCHAR *password,
+ [in, string, unique] const WCHAR *proxy_username, [in, string, unique] const WCHAR *proxy_password);
+ HRESULT Send([in] ISequentialStream *body, [in] ULONGLONG body_size);
+ HRESULT Abort();
+ HRESULT SetCookie([in, ref] const XHR_COOKIE *cookie, [out] DWORD *state);
+ HRESULT SetCustomResponseStream([in] ISequentialStream *stream);
+ HRESULT SetProperty([in] XHR_PROPERTY property, [in] ULONGLONG value);
+ HRESULT SetRequestHeader([in, string, ref] const WCHAR *header, [in, string, unique] const WCHAR *value);
+ HRESULT GetAllResponseHeaders([out, string] WCHAR **headers);
+ HRESULT GetCookie([in, ref, string] const WCHAR *url, [in, unique, string] const WCHAR *name, [in] DWORD dwFlags,
+ [out] ULONG *cookies_count, [out, size_is(,*cookies_count)] XHR_COOKIE **cookies);
+ HRESULT GetResponseHeader([in, string, ref] const WCHAR *header, [out, string] WCHAR **value);
+}
+
+[
+ object,
+ uuid(a1c9feee-0617-4f23-9d58-8961ea43567c),
+ helpstring("IXMLHttpRequest3 Interface")
+]
+interface IXMLHTTPRequest3 : IXMLHTTPRequest2
+{
+ HRESULT SetClientCertificate([in] DWORD hash_size, [in, unique, size_is(hash_size)] const BYTE *hash,
+ [in, string, unique] const WCHAR *pin);
+}
+
+[
+ object,
+ uuid(a44a9299-e321-40de-8866-341b41669162),
+ helpstring("IXMLHTTPRequest2Callback Interface"),
+ pointer_default(ref)
+]
+interface IXMLHTTPRequest2Callback : IUnknown
+{
+ HRESULT OnRedirect([in] IXMLHTTPRequest2 *request, [in, string] const WCHAR* redirect_url);
+ HRESULT OnHeadersAvailable([in] IXMLHTTPRequest2 *request, [in] DWORD status, [in, string] const WCHAR *status_str);
+ HRESULT OnDataAvailable([in] IXMLHTTPRequest2 *request, [in] ISequentialStream *response);
+ HRESULT OnResponseReceived([in] IXMLHTTPRequest2 *request, [in] ISequentialStream *response);
+ HRESULT OnError([in] IXMLHTTPRequest2 *request, [in] HRESULT error);
+}
+
+[
+ object,
+ uuid(b9e57830-8c6c-4a6f-9c13-47772bb047bb),
+ helpstring("IXMLHttpRequest3Callback Interface")
+]
+interface IXMLHTTPRequest3Callback : IXMLHTTPRequest2Callback
+{
+ HRESULT OnServerCertificateReceived([in] IXMLHTTPRequest3 *request, [in] DWORD errors,
+ [in] DWORD chain_size,
+ [in, unique,size_is(chain_size)] const XHR_CERT *chain);
+ HRESULT OnClientCertificateRequested([in] IXMLHTTPRequest3 *request, [in] DWORD issuers_size,
+ [in, string, unique, size_is(issuers_size)] const WCHAR **issuers);
+};
+
+
[
object,
dual,
@@ -3063,6 +3158,17 @@ coclass FreeThreadedDOMDocument60
[default, source] dispinterface XMLDOMDocumentEvents;
}
+[
+ helpstring("Free Threaded XML HTTP Request class 6.0"),
+ progid("Msxml2.FreeThreadedXMLHTTP60.6.0"),
+ threading(both),
+ uuid(88d96a09-f192-11d4-a65f-0040963251e5)
+]
+coclass FreeThreadedXMLHTTP60
+{
+ interface IXMLHTTPRequest2;
+}
+
[
helpstring("XML HTTP 6.0"),
progid("Msxml2.XMLHTTP.6.0"),
--
2.29.2

View File

@ -51,7 +51,7 @@ usage()
# Get the upstream commit sha
upstream_commit()
{
echo "c74508d22528548940db3c8ac6a350064ca445e9"
echo "0a50674c6aabb0368811ece4078a2bb69d7ea1bb"
}
# Show version information
@ -261,7 +261,6 @@ patch_enable_all ()
enable_winemenubuilder_Desktop_Icon_Path="$1"
enable_winemenubuilder_integration="$1"
enable_wineps_drv_PostScript_Fixes="$1"
enable_winepulse_PulseAudio_Support="$1"
enable_winex11_CandidateWindowPos="$1"
enable_winex11_MWM_Decorations="$1"
enable_winex11_UpdateLayeredWindow="$1"
@ -828,9 +827,6 @@ patch_enable ()
wineps.drv-PostScript_Fixes)
enable_wineps_drv_PostScript_Fixes="$2"
;;
winepulse-PulseAudio_Support)
enable_winepulse_PulseAudio_Support="$2"
;;
winex11-CandidateWindowPos)
enable_winex11_CandidateWindowPos="$2"
;;
@ -2471,7 +2467,6 @@ fi
# |
if test "$enable_msxml3_FreeThreadedXMLHTTP60" -eq 1; then
patch_apply msxml3-FreeThreadedXMLHTTP60/0001-include-Remove-interfaces-already-define-in-msxml6.i.patch
patch_apply msxml3-FreeThreadedXMLHTTP60/0002-include-Add-IXMLHTTPRequest2-3-interfaces.patch
patch_apply msxml3-FreeThreadedXMLHTTP60/0003-msxml3-Implement-FreeThreadedXMLHTTP60.patch
fi
@ -3910,22 +3905,6 @@ if test "$enable_wineps_drv_PostScript_Fixes" -eq 1; then
patch_apply wineps.drv-PostScript_Fixes/0004-wineps.drv-Add-support-for-GETFACENAME-and-DOWNLOADF.patch
fi
# Patchset winepulse-PulseAudio_Support
# |
# | This patchset fixes the following Wine bugs:
# | * [#37042] Implement exclusive mode in PulseAudio backend
# |
# | Modified files:
# | * dlls/winepulse.drv/Makefile.in, dlls/winepulse.drv/mmdevdrv.c
# |
if test "$enable_winepulse_PulseAudio_Support" -eq 1; then
patch_apply winepulse-PulseAudio_Support/0001-winepulse.drv-Use-a-separate-mainloop-and-ctx-for-pu.patch
patch_apply winepulse-PulseAudio_Support/0003-winepulse-expose-audio-devices-directly-to-programs.patch
patch_apply winepulse-PulseAudio_Support/0005-winepulse-implement-GetPropValue.patch
patch_apply winepulse-PulseAudio_Support/0006-winepulse-fetch-actual-program-name-if-possible.patch
patch_apply winepulse-PulseAudio_Support/0007-winepulse-return-PKEY_AudioEndpoint_PhysicalSpeakers.patch
fi
# Patchset winex11-CandidateWindowPos
# |
# | This patchset fixes the following Wine bugs:

View File

@ -1,18 +1,18 @@
From 5a33ff21b47fe88180df08a13d5ecb2c3ec15e7a Mon Sep 17 00:00:00 2001
From 9f168a3042f1c5cd042626d4aaac46331e6696bc Mon Sep 17 00:00:00 2001
From: Sebastian Lackner <sebastian@fds-team.de>
Date: Wed, 4 Nov 2015 02:57:56 +0100
Subject: [PATCH] winepulse.drv: Use a separate mainloop and ctx for
pulse_test_connect.
---
dlls/winepulse.drv/mmdevdrv.c | 59 ++++++++++++++++-------------------
1 file changed, 27 insertions(+), 32 deletions(-)
dlls/winepulse.drv/pulse.c | 57 ++++++++++++++++++--------------------
1 file changed, 27 insertions(+), 30 deletions(-)
diff --git a/dlls/winepulse.drv/mmdevdrv.c b/dlls/winepulse.drv/mmdevdrv.c
index 1c647c73d62..2d6cabed8c2 100644
--- a/dlls/winepulse.drv/mmdevdrv.c
+++ b/dlls/winepulse.drv/mmdevdrv.c
@@ -457,7 +457,7 @@ static void convert_channel_map(const pa_channel_map *pa_map, WAVEFORMATEXTENSIB
diff --git a/dlls/winepulse.drv/pulse.c b/dlls/winepulse.drv/pulse.c
index 260723815f6..b55c5889e1b 100644
--- a/dlls/winepulse.drv/pulse.c
+++ b/dlls/winepulse.drv/pulse.c
@@ -370,7 +370,7 @@ static void convert_channel_map(const pa_channel_map *pa_map, WAVEFORMATEXTENSIB
fmt->dwChannelMask = pa_mask;
}
@ -21,7 +21,7 @@ index 1c647c73d62..2d6cabed8c2 100644
WAVEFORMATEX *wfx = &fmt->Format;
pa_stream *stream;
pa_channel_map map;
@@ -476,7 +476,7 @@ static void pulse_probe_settings(int render, WAVEFORMATEXTENSIBLE *fmt) {
@@ -389,7 +389,7 @@ static void pulse_probe_settings(int render, WAVEFORMATEXTENSIBLE *fmt) {
attr.minreq = attr.fragsize = pa_frame_size(&ss);
attr.prebuf = 0;
@ -30,7 +30,7 @@ index 1c647c73d62..2d6cabed8c2 100644
if (stream)
pa_stream_set_state_callback(stream, pulse_stream_state, NULL);
if (!stream)
@@ -487,7 +487,7 @@ static void pulse_probe_settings(int render, WAVEFORMATEXTENSIBLE *fmt) {
@@ -400,7 +400,7 @@ static void pulse_probe_settings(int render, WAVEFORMATEXTENSIBLE *fmt) {
else
ret = pa_stream_connect_record(stream, NULL, &attr, PA_STREAM_START_CORKED|PA_STREAM_FIX_RATE|PA_STREAM_FIX_CHANNELS|PA_STREAM_EARLY_REQUESTS);
if (ret >= 0) {
@ -39,7 +39,7 @@ index 1c647c73d62..2d6cabed8c2 100644
pa_stream_get_state(stream) == PA_STREAM_CREATING)
{}
if (pa_stream_get_state(stream) == PA_STREAM_READY) {
@@ -498,7 +498,7 @@ static void pulse_probe_settings(int render, WAVEFORMATEXTENSIBLE *fmt) {
@@ -411,7 +411,7 @@ static void pulse_probe_settings(int render, WAVEFORMATEXTENSIBLE *fmt) {
else
length = pa_stream_get_buffer_attr(stream)->fragsize;
pa_stream_disconnect(stream);
@ -48,34 +48,29 @@ index 1c647c73d62..2d6cabed8c2 100644
pa_stream_get_state(stream) == PA_STREAM_READY)
{}
}
@@ -620,10 +620,12 @@ static HRESULT pulse_test_connect(void)
WCHAR path[MAX_PATH], *name;
char *str;
@@ -456,30 +456,31 @@ static HRESULT WINAPI pulse_test_connect(const char *name, struct pulse_config *
{
pa_operation *o;
int ret;
+ pa_mainloop *ml;
+ pa_context *ctx;
pulse_lock();
- pulse_ml = pa_mainloop_new();
+ ml = pa_mainloop_new();
- pa_mainloop_set_poll_func(pulse_ml, pulse_poll_func, NULL);
+ pa_mainloop_set_poll_func(ml, pulse_poll_func, NULL);
GetModuleFileNameW(NULL, path, ARRAY_SIZE(path));
name = strrchrW(path, '\\');
@@ -635,24 +637,23 @@ static HRESULT pulse_test_connect(void)
str = pa_xmalloc(len);
WideCharToMultiByte(CP_UNIXCP, 0, name, -1, str, len, NULL, NULL);
TRACE("Name: %s\n", str);
- pulse_ctx = pa_context_new(pa_mainloop_get_api(pulse_ml), str);
+ ctx = pa_context_new(pa_mainloop_get_api(ml), str);
pa_xfree(str);
- pulse_ctx = pa_context_new(pa_mainloop_get_api(pulse_ml), name);
- if (!pulse_ctx) {
+ ctx = pa_context_new(pa_mainloop_get_api(ml), name);
+ if (!ctx) {
ERR("Failed to create context\n");
- pa_mainloop_free(pulse_ml);
- pulse_ml = NULL;
+ pa_mainloop_free(ml);
pulse_unlock();
return E_FAIL;
}
@ -96,7 +91,7 @@ index 1c647c73d62..2d6cabed8c2 100644
if (state == PA_CONTEXT_FAILED || state == PA_CONTEXT_TERMINATED)
goto fail;
@@ -661,38 +662,32 @@ static HRESULT pulse_test_connect(void)
@@ -488,29 +489,27 @@ static HRESULT WINAPI pulse_test_connect(const char *name, struct pulse_config *
break;
}
@ -130,9 +125,12 @@ index 1c647c73d62..2d6cabed8c2 100644
- pulse_ctx = NULL;
- pa_mainloop_free(pulse_ml);
- pulse_ml = NULL;
-
+ pa_context_unref(ctx);
+ pa_mainloop_free(ml);
config->speakers_mask = g_phys_speakers_mask;
config->modes[0].format = pulse_fmt[0];
@@ -525,10 +524,8 @@ static HRESULT WINAPI pulse_test_connect(const char *name, struct pulse_config *
return S_OK;
fail:
@ -140,12 +138,11 @@ index 1c647c73d62..2d6cabed8c2 100644
- pulse_ctx = NULL;
- pa_mainloop_free(pulse_ml);
- pulse_ml = NULL;
-
+ pa_context_unref(ctx);
+ pa_mainloop_free(ml);
return E_FAIL;
}
pulse_unlock();
return E_FAIL;
--
2.17.1
2.30.2

View File

@ -3,3 +3,6 @@ Fixes: [37042] Implement exclusive mode in PulseAudio backend
Fixes: Add support for GetPropValue to PulseAudio backend
Fixes: Use actual program name if available to describe PulseAudio streams
Fixes: Expose PKEY_AudioEndpoint_PhysicalSpeakers device property in PulseAudio driver
Disabled: True
# Non-Trival to rebase

View File

@ -1 +1 @@
c74508d22528548940db3c8ac6a350064ca445e9
0a50674c6aabb0368811ece4078a2bb69d7ea1bb