Wine-Devel
By thread
wine-devel@list.winehq.org
By month
Messages by month
- ----- 2026 -----
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2008 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2007 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2006 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2005 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2004 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2003 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2002 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2001 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
June 2022
- 68 participants
- 3274 messages
Re: [PATCH 0/5] MR197: winegstreamer: Add support for zero-copy in wg_transform.
by Zebediah Figura
On 6/8/22 03:37, Rémi Bernon (@rbernon) wrote:
>> Could we do this without the callback? Just thinking out loud, maybe
>> something like
>>
>> void wg_allocator_add_sample(WgAllocator *allocator,
>> struct wg_sample *sample);
>> void wg_allocator_remove_sample(WgAllocator *allocator,
>> struct wg_sample *sample);
>>
>> which manipulate an internal wg_sample pointer, instead of having them
>> access the wg_transform's sample pointer. Then
>> wg_allocator_remove_sample() would also end up calling
>> wg_allocator_release_sample().
>>
>> I suspect I'm missing something, though, given my below comment...
>
> The callback is with a future use from wg_parser in mind. In that case
> we would forward allocation requests to the read thread (for instance).
Ah, in order to allocate ad-hoc samples, since we don't have the same
requirement for the output buffer?
It seems plausible, but I was also inclined to avoid this from the
beginning due to the increased code complexity. Setting up a pool of
wg_samples when connecting seems like a potentially better option, for
instance.
>> Had to look this up, but apparently the default GstBufferPool will throw
>> away buffers if they're modified. I thought the "empty" buffers would
>> pile up and never be freed, but evidently not.
>>
>> I've probably had this question answered before, but can we replace the
>> buffer pool itself, instead of just the allocator?
>
> We could reimplement a custom buffer pool that always free buffers, but
> that would be more work and still won't solve the underlying problem.
>
> The problem the allocator is solving is that some decoders don't release
> their buffers to the pool. The gst_buffer_is_writable check catches that
> and gst_buffer_replace_all_memory would fail anyway if we're not the
> only ones holding a ref on the buffer. So instead of discarding the data
> we copy it back into the buffer unix memory.
Right, but that's the problem that the allocator is solving on unmap,
which is orthogonal to the "don't reuse this buffer" problem.
I guess that overriding unmap requires having a custom allocator, so I
should ask if we can replace the pool *as well as* the allocator.
>
> Later, when the decoder will eventually release the buffer to the pool,
> it will be untainted, and so not freed until the pool is destroyed, and
> reusable without going through the allocator. After a few iterations the
> pool has enough allocated buffers, we won't get any allocation requests
> anymore and our samples are never used directly and we copy the data
> normally.
>
Actually, wait, isn't this a problem we'd be able to fix *only* by using
a custom pool? Why doesn't the current patch 4/5 suffer from this problem?
June 8, 2022
Re: [PATCH v2 4/5] mshtml: Implement overrideMimeType for XMLHttpRequest.
by Marvin
Hi,
While running your changed tests, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at:
https://testbot.winehq.org/JobDetails.pl?Key=116489
Your paranoid android.
=== w10pro64_ar (64 bit report) ===
mshtml:
htmldoc.c:2541: Test failed: unexpected call UpdateUI
htmldoc.c:2853: Test failed: unexpected call Exec_UPDATECOMMANDS
June 8, 2022
[PATCH v2] po: Update Traditional Chinese translation.
by Chilung Chan
Signed-off-by: Chilung Chan <eason066(a)gmail.com>
---
v2: Fix line 6988 and add Signed-off-by back
po/zh_TW.po | 66 +++++++++++++++++------------------------------------
1 file changed, 21 insertions(+), 45 deletions(-)
diff --git a/po/zh_TW.po b/po/zh_TW.po
index e1e2c09a37e..f7bd3501244 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -5,7 +5,7 @@ msgstr ""
"Project-Id-Version: Wine\n"
"Report-Msgid-Bugs-To: https://bugs.winehq.org\n"
"POT-Creation-Date: N/A\n"
-"PO-Revision-Date: 2021-12-23 14:09+0800\n"
+"PO-Revision-Date: 2022-06-09 03:15+0800\n"
"Last-Translator: Chilung Chan <eason066(a)gmail.com>\n"
"Language-Team: Chinese (Taiwan)\n"
"Language: zh_TW\n"
@@ -3924,13 +3924,11 @@ msgstr "無法在這個物件更改屬性描述符中的 'writable' 屬性為 't
#: dlls/jscript/jscript.rc:74
msgid "Cyclic __proto__ value"
-msgstr ""
+msgstr "循環的 __proto__ 值"
#: dlls/jscript/jscript.rc:75
-#, fuzzy
-#| msgid "Cannot define property '|': object is not extensible"
msgid "Cannot create property for a non-extensible object"
-msgstr "無法定義屬性 '|': 物件不能擴展"
+msgstr "無法為不可擴展的物件建立屬性"
#: dlls/jscript/jscript.rc:76
msgid "Cannot define property '|': object is not extensible"
@@ -3945,10 +3943,8 @@ msgid "Cannot modify non-writable property '|'"
msgstr "無法修改不可寫入的屬性 '|'"
#: dlls/jscript/jscript.rc:79
-#, fuzzy
-#| msgid "'this' is not a Map object"
msgid "'this' is not a | object"
-msgstr "'this' 不是 Map 物件"
+msgstr "'this' 不是一個 | 物件"
#: dlls/jscript/jscript.rc:80
msgid "Property cannot have both accessors and a value"
@@ -3965,45 +3961,39 @@ msgstr "Wine"
#: dlls/kernelbase/kernelbase.rc:29
msgid "Western Europe and United States"
-msgstr ""
+msgstr "西歐和美國"
#: dlls/kernelbase/kernelbase.rc:30
-#, fuzzy
-#| msgid "Central European"
msgid "Central Europe"
msgstr "中歐語言"
#: dlls/kernelbase/kernelbase.rc:34
-#, fuzzy
-#| msgid "Turkish"
msgid "Turkic"
-msgstr "土耳其語"
+msgstr "突厥語"
#: dlls/kernelbase/kernelbase.rc:36
msgid "Korean"
-msgstr ""
+msgstr "韓語"
#: dlls/kernelbase/kernelbase.rc:37
-#, fuzzy
-#| msgid "Operation Ceased"
msgid "Traditional Chinese"
-msgstr "作業已停止"
+msgstr "繁體中文"
#: dlls/kernelbase/kernelbase.rc:38
msgid "Simplified Chinese"
-msgstr ""
+msgstr "簡體中文"
#: dlls/kernelbase/kernelbase.rc:43
msgid "Indic"
-msgstr ""
+msgstr "印度語"
#: dlls/kernelbase/kernelbase.rc:44
msgid "Georgian"
-msgstr ""
+msgstr "喬治亞語"
#: dlls/kernelbase/kernelbase.rc:45
msgid "Armenian"
-msgstr ""
+msgstr "亞美尼亞語"
#: dlls/kernelbase/winerror.mc:28
msgid "Success.\n"
@@ -6962,54 +6952,40 @@ msgid "This network connection does not exist.\n"
msgstr "這個網路連線不存在。\n"
#: dlls/kernelbase/winerror.mc:3748
-#, fuzzy
-#| msgid "Invalid at interrupt time.\n"
msgid "Call interrupted.\n"
-msgstr "於插斷時間無效。\n"
+msgstr "呼叫已中斷。\n"
#: dlls/kernelbase/winerror.mc:3753
-#, fuzzy
-#| msgid "Invalid handle.\n"
msgid "Invalid file handle.\n"
-msgstr "無效的控制代碼。\n"
+msgstr "無效的檔案控制代碼。\n"
#: dlls/kernelbase/winerror.mc:3763
-#, fuzzy
-#| msgid "Invalid network address.\n"
msgid "Invalid pointer address.\n"
-msgstr "無效的網路位址。\n"
+msgstr "無效的指標位址。\n"
#: dlls/kernelbase/winerror.mc:3768
-#, fuzzy
-#| msgid "Invalid name.\n"
msgid "Invalid argument.\n"
-msgstr "無效的名稱。\n"
+msgstr "無效的引數。\n"
#: dlls/kernelbase/winerror.mc:3778
msgid "Connection reset by peer.\n"
msgstr "連線被同儕節點重設。\n"
#: dlls/kernelbase/winerror.mc:3788
-#, fuzzy
-#| msgid "Point not found.\n"
msgid "Host not found.\n"
-msgstr "找不到點。\n"
+msgstr "找不到主機。\n"
#: dlls/kernelbase/winerror.mc:3793
-#, fuzzy
-#| msgid "Attribute is not found.\n"
msgid "Nonauthoritative host not found.\n"
-msgstr "找不到屬性。\n"
+msgstr "找不到未授權的主機。\n"
#: dlls/kernelbase/winerror.mc:3798
-#, fuzzy
-#| msgid "Unrecoverable error occurred.\n"
msgid "Nonrecoverable error.\n"
-msgstr "發生致命錯誤。\n"
+msgstr "無法復原的錯誤。\n"
#: dlls/kernelbase/winerror.mc:3803
msgid "Name valid, no data record.\n"
-msgstr ""
+msgstr "名稱有效,無資料記錄。\n"
#: dlls/kernelbase/winerror.mc:3817
msgid "Not implemented.\n"
@@ -7695,7 +7671,7 @@ msgstr "不支援的狀態轉換。\n"
#: dlls/mferror/mferror.mc:291
msgid "Unrecoverable error occurred.\n"
-msgstr "發生致命錯誤。\n"
+msgstr "發生無法復原的錯誤。\n"
#: dlls/mferror/mferror.mc:298
msgid "Sample has too many buffers.\n"
--
2.36.1.windows.1
June 8, 2022
Re: [PATCH] po: Update Traditional Chinese translation.
by Marvin
Hi,
While running your changed tests, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at:
https://testbot.winehq.org/JobDetails.pl?Key=116491
Your paranoid android.
=== debian11 (build log) ===
Task: The win32 Wine build failed
=== debian11 (build log) ===
Task: The wow64 Wine build failed
June 8, 2022
Re: [PATCH 0/5] MR201: ntdll: Implement RtlSetUserValueHeap.
by Rémi Bernon
Crap, I tried to run the whole test suite but it didn't go too well. I skipped user32 as it crashes Xephyr, I need to find a better way. Thanks for the feedback, I'll have a look.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/201#note_1708
June 8, 2022
Re: [PATCH 0/5] MR201: ntdll: Implement RtlSetUserValueHeap. - closed
by Rémi Bernon
This merge request was closed by Rémi Bernon.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/201
June 8, 2022
[PATCH] po: Update Traditional Chinese translation.
by Chilung Chan
---
po/zh_TW.po | 66 +++++++++++++++++------------------------------------
1 file changed, 21 insertions(+), 45 deletions(-)
diff --git a/po/zh_TW.po b/po/zh_TW.po
index e1e2c09a37e..6d91a2902c9 100644
--- a/po/zh_TW.po
+++ b/po/zh_TW.po
@@ -5,7 +5,7 @@ msgstr ""
"Project-Id-Version: Wine\n"
"Report-Msgid-Bugs-To: https://bugs.winehq.org\n"
"POT-Creation-Date: N/A\n"
-"PO-Revision-Date: 2021-12-23 14:09+0800\n"
+"PO-Revision-Date: 2022-06-09 03:05+0800\n"
"Last-Translator: Chilung Chan <eason066(a)gmail.com>\n"
"Language-Team: Chinese (Taiwan)\n"
"Language: zh_TW\n"
@@ -3924,13 +3924,11 @@ msgstr "無法在這個物件更改屬性描述符中的 'writable' 屬性為 't
#: dlls/jscript/jscript.rc:74
msgid "Cyclic __proto__ value"
-msgstr ""
+msgstr "循環的 __proto__ 值"
#: dlls/jscript/jscript.rc:75
-#, fuzzy
-#| msgid "Cannot define property '|': object is not extensible"
msgid "Cannot create property for a non-extensible object"
-msgstr "無法定義屬性 '|': 物件不能擴展"
+msgstr "無法為不可擴展的物件建立屬性"
#: dlls/jscript/jscript.rc:76
msgid "Cannot define property '|': object is not extensible"
@@ -3945,10 +3943,8 @@ msgid "Cannot modify non-writable property '|'"
msgstr "無法修改不可寫入的屬性 '|'"
#: dlls/jscript/jscript.rc:79
-#, fuzzy
-#| msgid "'this' is not a Map object"
msgid "'this' is not a | object"
-msgstr "'this' 不是 Map 物件"
+msgstr "'this' 不是一個 | 物件"
#: dlls/jscript/jscript.rc:80
msgid "Property cannot have both accessors and a value"
@@ -3965,45 +3961,39 @@ msgstr "Wine"
#: dlls/kernelbase/kernelbase.rc:29
msgid "Western Europe and United States"
-msgstr ""
+msgstr "西歐和美國"
#: dlls/kernelbase/kernelbase.rc:30
-#, fuzzy
-#| msgid "Central European"
msgid "Central Europe"
msgstr "中歐語言"
#: dlls/kernelbase/kernelbase.rc:34
-#, fuzzy
-#| msgid "Turkish"
msgid "Turkic"
-msgstr "土耳其語"
+msgstr "突厥語"
#: dlls/kernelbase/kernelbase.rc:36
msgid "Korean"
-msgstr ""
+msgstr "韓語"
#: dlls/kernelbase/kernelbase.rc:37
-#, fuzzy
-#| msgid "Operation Ceased"
msgid "Traditional Chinese"
-msgstr "作業已停止"
+msgstr "繁體中文"
#: dlls/kernelbase/kernelbase.rc:38
msgid "Simplified Chinese"
-msgstr ""
+msgstr "簡體中文"
#: dlls/kernelbase/kernelbase.rc:43
msgid "Indic"
-msgstr ""
+msgstr "印度語"
#: dlls/kernelbase/kernelbase.rc:44
msgid "Georgian"
-msgstr ""
+msgstr "喬治亞語"
#: dlls/kernelbase/kernelbase.rc:45
msgid "Armenian"
-msgstr ""
+msgstr "亞美尼亞語"
#: dlls/kernelbase/winerror.mc:28
msgid "Success.\n"
@@ -6962,54 +6952,40 @@ msgid "This network connection does not exist.\n"
msgstr "這個網路連線不存在。\n"
#: dlls/kernelbase/winerror.mc:3748
-#, fuzzy
-#| msgid "Invalid at interrupt time.\n"
msgid "Call interrupted.\n"
-msgstr "於插斷時間無效。\n"
+msgstr "呼叫已中斷。\n"
#: dlls/kernelbase/winerror.mc:3753
-#, fuzzy
-#| msgid "Invalid handle.\n"
msgid "Invalid file handle.\n"
-msgstr "無效的控制代碼。\n"
+msgstr "無效的檔案控制代碼。\n"
#: dlls/kernelbase/winerror.mc:3763
-#, fuzzy
-#| msgid "Invalid network address.\n"
msgid "Invalid pointer address.\n"
-msgstr "無效的網路位址。\n"
+msgstr "無效的指標位址。\n"
#: dlls/kernelbase/winerror.mc:3768
-#, fuzzy
-#| msgid "Invalid name.\n"
msgid "Invalid argument.\n"
-msgstr "無效的名稱。\n"
+msgstr "無效的引數。\n"
#: dlls/kernelbase/winerror.mc:3778
msgid "Connection reset by peer.\n"
msgstr "連線被同儕節點重設。\n"
#: dlls/kernelbase/winerror.mc:3788
-#, fuzzy
-#| msgid "Point not found.\n"
msgid "Host not found.\n"
-msgstr "找不到點。\n"
+msgstr "找不到主機。\n"
#: dlls/kernelbase/winerror.mc:3793
-#, fuzzy
-#| msgid "Attribute is not found.\n"
msgid "Nonauthoritative host not found.\n"
-msgstr "找不到屬性。\n"
+msgstr "找不到未授權的主機。\n"
#: dlls/kernelbase/winerror.mc:3798
-#, fuzzy
-#| msgid "Unrecoverable error occurred.\n"
msgid "Nonrecoverable error.\n"
-msgstr "發生致命錯誤。\n"
+msgstr "無法復原的錯誤。\n"
#: dlls/kernelbase/winerror.mc:3803
msgid "Name valid, no data record.\n"
-msgstr ""
+msgstr "名稱有效,無資料記錄。"
#: dlls/kernelbase/winerror.mc:3817
msgid "Not implemented.\n"
@@ -7695,7 +7671,7 @@ msgstr "不支援的狀態轉換。\n"
#: dlls/mferror/mferror.mc:291
msgid "Unrecoverable error occurred.\n"
-msgstr "發生致命錯誤。\n"
+msgstr "發生無法復原的錯誤。\n"
#: dlls/mferror/mferror.mc:298
msgid "Sample has too many buffers.\n"
--
2.36.1.windows.1
June 8, 2022
Re: [PATCH v2 3/5] mshtml: Check for valid XML Content-Type for responseXML in IE10+ modes.
by Marvin
Hi,
While running your changed tests, I think I found new failures.
Being a bot and all I'm not very good at pattern recognition, so I might be
wrong, but could you please double-check?
Full results can be found at:
https://testbot.winehq.org/JobDetails.pl?Key=116488
Your paranoid android.
=== w10pro64 (32 bit report) ===
mshtml:
htmldoc.c:2541: Test failed: unexpected call UpdateUI
htmldoc.c:2853: Test failed: unexpected call Exec_UPDATECOMMANDS
=== w10pro64 (64 bit report) ===
mshtml:
script.c:3119: Test failed: ReportResult failed: 80ef0001
=== w10pro64_ja (64 bit report) ===
mshtml:
script.c:3119: Test failed: ReportResult failed: 80ef0001
June 8, 2022
Re: [PATCH 0/5] MR201: ntdll: Implement RtlSetUserValueHeap.
by Alexandre Julliard (@julliard)
This is still causing test failures:
```
tools/runtest -q -P wine -T . -M user32.dll -p dlls/user32/tests/user32_test.exe clipboard && touch dlls/user32/tests/clipboard.ok
clipboard.c:853: Test failed: 0: 0: wrong len 1024
clipboard.c:844: Test failed: 0: 1: size 1024
clipboard.c:853: Test failed: 0: 2: wrong len 1024
clipboard.c:856: Test failed: 0: 3: wrong len 2048
clipboard.c:853: Test failed: 1: 0: wrong len 1024
clipboard.c:844: Test failed: 1: 1: size 1024
clipboard.c:853: Test failed: 1: 2: wrong len 1024
clipboard.c:856: Test failed: 1: 3: wrong len 2048
clipboard.c:856: Test failed: 2: 0: wrong len 1024
clipboard.c:844: Test failed: 2: 1: size 1024
clipboard.c:853: Test failed: 2: 2: wrong len 512
clipboard.c:853: Test failed: 2: 3: wrong len 512
clipboard.c:1644: Test failed: wrong size 1024
clipboard.c:1648: Test failed: wrong size 1024
clipboard.c:1652: Test failed: wrong size 1024
clipboard.c:1656: Test failed: wrong size 1024
clipboard.c:1644: Test failed: wrong size 1024
clipboard.c:1648: Test failed: wrong size 1024
clipboard.c:1652: Test failed: wrong size 1024
clipboard.c:1656: Test failed: wrong size 1024
clipboard.c:2293: Test failed: 0: wrong size 1024 / 3
clipboard.c:2296: Test failed: 0: wrong data fo
clipboard.c:2301: Test failed: 0: wrong size 2048 / 3
clipboard.c:2302: Test failed: 0: wrong data L"fo\0000"
clipboard.c:230: 4 failures in child process
clipboard.c:2293: Test failed: 1: wrong size 1024 / 4
clipboard.c:2296: Test failed: 1: wrong data foo
clipboard.c:2301: Test failed: 1: wrong size 2048 / 4
clipboard.c:2302: Test failed: 1: wrong data L"foo\0000"
clipboard.c:230: 4 failures in child process
clipboard.c:2293: Test failed: 2: wrong size 1024 / 7
clipboard.c:2296: Test failed: 2: wrong data foo
clipboard.c:2301: Test failed: 2: wrong size 2048 / 7
clipboard.c:2302: Test failed: 2: wrong data L"foo\0000ba\0000"
clipboard.c:230: 4 failures in child process
clipboard.c:2293: Test failed: 3: wrong size 1024 / 8
clipboard.c:2296: Test failed: 3: wrong data foo
clipboard.c:2301: Test failed: 3: wrong size 2048 / 8
clipboard.c:2302: Test failed: 3: wrong data L"foo\0000bar\0000"
clipboard.c:230: 4 failures in child process
clipboard.c:2309: Test failed: 4: wrong size 1024 / 6
clipboard.c:2312: Test failed: 4: wrong data L"fo\0000\0013\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000"...
clipboard.c:2322: Test failed: 4: wrong size 512 / 3
clipboard.c:2323: Test failed: 4: wrong data fo
clipboard.c:230: 4 failures in child process
clipboard.c:2309: Test failed: 5: wrong size 1024 / 8
clipboard.c:2312: Test failed: 5: wrong data L"foo\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000"...
clipboard.c:2322: Test failed: 5: wrong size 512 / 4
clipboard.c:2323: Test failed: 5: wrong data foo
clipboard.c:230: 4 failures in child process
clipboard.c:2309: Test failed: 6: wrong size 1024 / 14
clipboard.c:2312: Test failed: 6: wrong data L"foo\0000ba\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000"...
clipboard.c:2322: Test failed: 6: wrong size 512 / 7
clipboard.c:2323: Test failed: 6: wrong data foo
clipboard.c:230: 4 failures in child process
clipboard.c:2309: Test failed: 7: wrong size 1024 / 16
clipboard.c:2312: Test failed: 7: wrong data L"foo\0000bar\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000"...
clipboard.c:2322: Test failed: 7: wrong size 512 / 8
clipboard.c:2323: Test failed: 7: wrong data foo
clipboard.c:230: 4 failures in child process
clipboard.c:2309: Test failed: 8: wrong size 1024 / 1
clipboard.c:2312: Test failed: 8: wrong data L"\0000\0013\02a8\0013\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000"...
clipboard.c:2327: Test failed: 8: got data for empty string
clipboard.c:230: 3 failures in child process
clipboard.c:2309: Test failed: 9: wrong size 1024 / 2
clipboard.c:2312: Test failed: 9: wrong data L"\0000\0013\02a8\0013\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000"...
clipboard.c:2322: Test failed: 9: wrong size 512 / 1
clipboard.c:2323: Test failed: 9: wrong data
clipboard.c:230: 4 failures in child process
clipboard.c:2309: Test failed: 10: wrong size 1024 / 5
clipboard.c:2312: Test failed: 10: wrong data L"fo\0200\0013\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000"...
clipboard.c:2322: Test failed: 10: wrong size 512 / 2
clipboard.c:2323: Test failed: 10: wrong data fo?
clipboard.c:230: 4 failures in child process
clipboard.c:2309: Test failed: 11: wrong size 1024 / 7
clipboard.c:2312: Test failed: 11: wrong data L"foo\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000"...
clipboard.c:2322: Test failed: 11: wrong size 512 / 3
clipboard.c:2323: Test failed: 11: wrong data foo
clipboard.c:230: 4 failures in child process
clipboard.c:2309: Test failed: 12: wrong size 1024 / 9
clipboard.c:2312: Test failed: 12: wrong data L"foo\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000"...
clipboard.c:2322: Test failed: 12: wrong size 512 / 4
clipboard.c:2323: Test failed: 12: wrong data foo
clipboard.c:230: 4 failures in child process
make: *** [Makefile:120149: dlls/user32/tests/clipboard.ok] Error 71
```
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/201#note_1707
June 8, 2022
[PATCH v2 5/5] mshtml: Use the private interface to expose onload for XMLHttpRequest.
by Gabriel Ivăncescu
Rather than hacking a custom prop.
Signed-off-by: Gabriel Ivăncescu <gabrielopcode(a)gmail.com>
---
dlls/mshtml/mshtml_private_iface.idl | 20 +++++--
dlls/mshtml/xmlhttprequest.c | 86 ++++++++++++----------------
2 files changed, 51 insertions(+), 55 deletions(-)
diff --git a/dlls/mshtml/mshtml_private_iface.idl b/dlls/mshtml/mshtml_private_iface.idl
index 972f9b3..8e9e386 100644
--- a/dlls/mshtml/mshtml_private_iface.idl
+++ b/dlls/mshtml/mshtml_private_iface.idl
@@ -139,6 +139,10 @@ interface IWineDOMTokenList : IDispatch
HRESULT toString([retval, out] BSTR *String);
}
+const long DISPID_IWINEXMLHTTPREQUESTPRIVATE_RESPONSE = 1;
+const long DISPID_IWINEXMLHTTPREQUESTPRIVATE_RESPONSETYPE = 2;
+const long DISPID_IWINEXMLHTTPREQUESTPRIVATE_UPLOAD = 3;
+const long DISPID_IWINEXMLHTTPREQUESTPRIVATE_WITHCREDENTIALS = 4;
const long DISPID_IWINEXMLHTTPREQUESTPRIVATE_OVERRIDEMIMETYPE = 5;
[
odl,
@@ -149,17 +153,17 @@ const long DISPID_IWINEXMLHTTPREQUESTPRIVATE_OVERRIDEMIMETYPE = 5;
]
interface IWineXMLHttpRequestPrivate : IDispatch
{
- [propget, id(1)]
+ [propget, id(DISPID_IWINEXMLHTTPREQUESTPRIVATE_RESPONSE)]
HRESULT response([retval, out] VARIANT *p);
- [propput, id(2)]
+ [propput, id(DISPID_IWINEXMLHTTPREQUESTPRIVATE_RESPONSETYPE)]
HRESULT responseType([in] BSTR v);
- [propget, id(2)]
+ [propget, id(DISPID_IWINEXMLHTTPREQUESTPRIVATE_RESPONSETYPE)]
HRESULT responseType([retval, out] BSTR *p);
- [propget, id(3)]
+ [propget, id(DISPID_IWINEXMLHTTPREQUESTPRIVATE_UPLOAD)]
HRESULT upload([retval, out] IDispatch **p);
- [propput, id(4)]
+ [propput, id(DISPID_IWINEXMLHTTPREQUESTPRIVATE_WITHCREDENTIALS)]
HRESULT withCredentials([in] VARIANT_BOOL v);
- [propget, id(4)]
+ [propget, id(DISPID_IWINEXMLHTTPREQUESTPRIVATE_WITHCREDENTIALS)]
HRESULT withCredentials([retval, out] VARIANT_BOOL *p);
[id(DISPID_IWINEXMLHTTPREQUESTPRIVATE_OVERRIDEMIMETYPE)]
HRESULT overrideMimeType([in] BSTR mimeType);
@@ -183,6 +187,10 @@ interface IWineXMLHttpRequestPrivate : IDispatch
HRESULT onloadend([in] VARIANT v);
[propget, id(DISPID_EVPROP_LOADEND)]
HRESULT onloadend([retval, out] VARIANT *p);
+ [propput, id(DISPID_EVPROP_ONLOAD)]
+ HRESULT onload([in] VARIANT v);
+ [propget, id(DISPID_EVPROP_ONLOAD)]
+ HRESULT onload([retval, out] VARIANT *p);
}
} /* library MSHTML_private */
diff --git a/dlls/mshtml/xmlhttprequest.c b/dlls/mshtml/xmlhttprequest.c
index f21114a..b17fa41 100644
--- a/dlls/mshtml/xmlhttprequest.c
+++ b/dlls/mshtml/xmlhttprequest.c
@@ -36,8 +36,6 @@
WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
-#define MSHTML_DISPID_HTMLXMLHTTPREQUEST_ONLOAD MSHTML_DISPID_CUSTOM_MIN
-
static HRESULT bstr_to_nsacstr(BSTR bstr, nsACString *str)
{
char *cstr = heap_strdupWtoU(bstr);
@@ -1093,6 +1091,24 @@ static HRESULT WINAPI HTMLXMLHttpRequest_private_get_onloadend(IWineXMLHttpReque
return get_event_handler(&This->event_target, EVENTID_LOADEND, p);
}
+static HRESULT WINAPI HTMLXMLHttpRequest_private_put_onload(IWineXMLHttpRequestPrivate *iface, VARIANT v)
+{
+ HTMLXMLHttpRequest *This = impl_from_IWineXMLHttpRequestPrivate(iface);
+
+ TRACE("(%p)->(%s)\n", This, debugstr_variant(&v));
+
+ return set_event_handler(&This->event_target, EVENTID_LOAD, &v);
+}
+
+static HRESULT WINAPI HTMLXMLHttpRequest_private_get_onload(IWineXMLHttpRequestPrivate *iface, VARIANT *p)
+{
+ HTMLXMLHttpRequest *This = impl_from_IWineXMLHttpRequestPrivate(iface);
+
+ TRACE("(%p)->(%p)\n", This, p);
+
+ return get_event_handler(&This->event_target, EVENTID_LOAD, p);
+}
+
static const IWineXMLHttpRequestPrivateVtbl WineXMLHttpRequestPrivateVtbl = {
HTMLXMLHttpRequest_private_QueryInterface,
HTMLXMLHttpRequest_private_AddRef,
@@ -1117,7 +1133,9 @@ static const IWineXMLHttpRequestPrivateVtbl WineXMLHttpRequestPrivateVtbl = {
HTMLXMLHttpRequest_private_put_onloadstart,
HTMLXMLHttpRequest_private_get_onloadstart,
HTMLXMLHttpRequest_private_put_onloadend,
- HTMLXMLHttpRequest_private_get_onloadend
+ HTMLXMLHttpRequest_private_get_onloadend,
+ HTMLXMLHttpRequest_private_put_onload,
+ HTMLXMLHttpRequest_private_get_onload
};
static inline HTMLXMLHttpRequest *impl_from_IProvideClassInfo2(IProvideClassInfo2 *iface)
@@ -1170,47 +1188,6 @@ static inline HTMLXMLHttpRequest *impl_from_DispatchEx(DispatchEx *iface)
return CONTAINING_RECORD(iface, HTMLXMLHttpRequest, event_target.dispex);
}
-static HRESULT HTMLXMLHttpRequest_get_dispid(DispatchEx *dispex, BSTR name, DWORD flags, DISPID *dispid)
-{
- /* onload event handler property is supported, but not exposed by any interface. We implement as a custom property. */
- if(!wcscmp(L"onload", name)) {
- *dispid = MSHTML_DISPID_HTMLXMLHTTPREQUEST_ONLOAD;
- return S_OK;
- }
-
- return DISP_E_UNKNOWNNAME;
-}
-
-static HRESULT HTMLXMLHttpRequest_invoke(DispatchEx *dispex, DISPID id, LCID lcid, WORD flags, DISPPARAMS *params,
- VARIANT *res, EXCEPINFO *ei, IServiceProvider *caller)
-{
- HTMLXMLHttpRequest *This = impl_from_DispatchEx(dispex);
-
- if(id == MSHTML_DISPID_HTMLXMLHTTPREQUEST_ONLOAD) {
- switch(flags) {
- case DISPATCH_PROPERTYGET:
- TRACE("(%p) get onload\n", This);
- return get_event_handler(&This->event_target, EVENTID_LOAD, res);
-
- case DISPATCH_PROPERTYPUT:
- if(params->cArgs != 1 || (params->cNamedArgs == 1 && *params->rgdispidNamedArgs != DISPID_PROPERTYPUT)
- || params->cNamedArgs > 1) {
- FIXME("invalid args\n");
- return E_INVALIDARG;
- }
-
- TRACE("(%p)->(%p) set onload\n", This, params->rgvarg);
- return set_event_handler(&This->event_target, EVENTID_LOAD, params->rgvarg);
-
- default:
- FIXME("Unimplemented flags %x\n", flags);
- return E_NOTIMPL;
- }
- }
-
- return DISP_E_UNKNOWNNAME;
-}
-
static nsISupports *HTMLXMLHttpRequest_get_gecko_target(DispatchEx *dispex)
{
HTMLXMLHttpRequest *This = impl_from_DispatchEx(dispex);
@@ -1266,22 +1243,33 @@ static void HTMLXMLHttpRequest_init_dispex_info(dispex_data_t *info, compat_mode
{DISPID_IHTMLXMLHTTPREQUEST_OPEN, HTMLXMLHttpRequest_open_hook},
{DISPID_UNKNOWN}
};
- static const dispex_hook_t private_ie10_hooks[] = {
+ static const dispex_hook_t private_hooks[] = {
+ {DISPID_IWINEXMLHTTPREQUESTPRIVATE_RESPONSE},
+ {DISPID_IWINEXMLHTTPREQUESTPRIVATE_RESPONSETYPE},
+ {DISPID_IWINEXMLHTTPREQUESTPRIVATE_UPLOAD},
+ {DISPID_IWINEXMLHTTPREQUESTPRIVATE_WITHCREDENTIALS},
+ {DISPID_EVPROP_ONERROR},
+ {DISPID_EVPROP_ONABORT},
+ {DISPID_EVPROP_PROGRESS},
+ {DISPID_EVPROP_LOADSTART},
+ {DISPID_EVPROP_LOADEND},
+
+ /* IE10 only */
{DISPID_IWINEXMLHTTPREQUESTPRIVATE_OVERRIDEMIMETYPE},
{DISPID_UNKNOWN}
};
+ const dispex_hook_t *const private_ie10_hooks = private_hooks + ARRAY_SIZE(private_hooks) - 2;
EventTarget_init_dispex_info(info, compat_mode);
dispex_info_add_interface(info, IHTMLXMLHttpRequest_tid, compat_mode >= COMPAT_MODE_IE10 ? xhr_hooks : NULL);
- if(compat_mode >= COMPAT_MODE_IE10)
- dispex_info_add_interface(info, IWineXMLHttpRequestPrivate_tid, compat_mode == COMPAT_MODE_IE10 ? private_ie10_hooks : NULL);
+ dispex_info_add_interface(info, IWineXMLHttpRequestPrivate_tid,
+ compat_mode < COMPAT_MODE_IE10 ? private_hooks :
+ compat_mode < COMPAT_MODE_IE11 ? private_ie10_hooks : NULL);
}
static event_target_vtbl_t HTMLXMLHttpRequest_event_target_vtbl = {
{
NULL,
- HTMLXMLHttpRequest_get_dispid,
- HTMLXMLHttpRequest_invoke
},
HTMLXMLHttpRequest_get_gecko_target,
HTMLXMLHttpRequest_bind_event
--
2.34.1
June 8, 2022