https://bugs.winehq.org/show_bug.cgi?id=52981
Bug ID: 52981 Summary: windows.media.speech:speech - SpeechRecognizer fails to initializes with elevated privileges Product: Wine Version: unspecified Hardware: x86-64 OS: Linux Status: NEW Severity: normal Priority: P2 Component: -unknown Assignee: wine-bugs@winehq.org Reporter: fgouget@codeweavers.com Distribution: ---
Most of test_SpeechRecognizer() is skipped when run with elevated privileges:
speech.c:896: SpeechRecognizer default language L"fr-FR". speech.c:1172: Tests skipped: Could not init SpeechRecognizer with default language!
https://test.winehq.org/data/patterns.html#windows.media.speech:speech
The involved lines are:
919 hr = RoActivateInstance(hstr, &inspectable); 922 if (hr == S_OK) ... 1170 else if (hr == SPERR_WINRT_INTERNAL_ERROR) /* Not sure when this triggers. Probably if a language pack is not installed. */ 1171 { 1172 win_skip("Could not init SpeechRecognizer with default language!\n");
An analysis of the test results across Windows versions shows that we see this SPERR_WINRT_INTERNAL_ERROR on Windows 10 >= 1809:
cw-gtx560-1507 S_OK cw-rx460-1507 S_OK w1064v1507 S_OK w1064v1607 S_OK cw-gtx560-1709 S_OK cw-rx460-1709 S_OK w1064v1709 S_OK cw-gtx560-1809 skipped cw-rx460-1809 skipped w1064v1809 skipped cw-gtx560-1909 skipped cw-rx460-1909 skipped w1064v1909 skipped w1064v2004 skipped cw-gtx560-2009 skipped cw-rx460-2009 skipped w1064v2009 skipped cw-gtx560-21h1 skipped cw-rx460-21h1 skipped w10pro64-21h1 skipped cw-gtx560-21h2 skipped cw-rx460-21h2 skipped w1064-21h2 skipped w10pro64-21h2 skipped
So far that looks pretty clear cut: Microsoft changed things around 1809 such that processes running with elevated privileges cannot / are not allowed to perform speech recognition. That would mean the test should drop the privileges so it can run on any platform.
However the test was not skipped in the w10pro64v2004 and w10pro64 (21H1) test configurations... until they were upgraded. So this indicates that there may be a way to get this test to work even while retaining elevated privileges. But how?
To help debug the issue I added two test configurations: * w10pro64restored The w10pro64 VM restored from a backup of the pre-2022-05 upgrade VM. Surprisingly the test still ends up being skipped!
* w10pro64old Luckily before the upgrade I moved the old VM out of the way. It is now available as w10pro64old with the exact same live snapshots. Comfortingly the test is still not skipped, even after waiting some time and rebooting.
That last part indicates there may be something either in the way the TestBot creates the live snapshots, or in the "WineTestBot VMs" checklist I go through when preparing the VMs and the cw-* machines (but then the clear 1809 cutoff point is quite a coincidence).