launcher: EAC-aware exe pick + optional TLS trust bypass

Launch RecRoom.exe directly on 2020.12 EAC builds (skip the
Recroom_Release.exe EAC wrapper); fall back to whichever single
binary exists. Add an opt-in "trust self-signed TLS certs" toggle
that flows through ClientPatcher into the ClientMod config, off by
default since Localtunnel/Tunnelto serve valid certs.
This commit is contained in:
Alexa
2026-05-31 12:32:16 +03:00
parent 43b27e674a
commit 0a76a4ec13
5 changed files with 88 additions and 16 deletions
+13 -2
View File
@@ -202,6 +202,8 @@ public partial class MainWindow : Window
HostScreenModeChk.IsChecked = _state.LaunchInScreenMode;
if (JoinScreenModeChk is not null)
JoinScreenModeChk.IsChecked = _state.LaunchInScreenMode;
if (TlsTrustBypassChk is not null)
TlsTrustBypassChk.IsChecked = _state.EnableTlsTrustBypass;
// Hosting mode radios — reflect persisted choice on both the
// main HostView and the setup wizard's matching step.
@@ -721,7 +723,8 @@ public partial class MainWindow : Window
var patch = await _patcher.ApplyAsync(
patcherDir, _state.RecRoomPath!,
_state.PhotonAppId, _state.PhotonVoiceAppId, _state.PhotonRegion, _hostApex,
singleOrigin: _state.HostingMode == HostingMode.SingleOriginTunnel);
singleOrigin: _state.HostingMode == HostingMode.SingleOriginTunnel,
enableTlsTrustBypass: _state.EnableTlsTrustBypass);
if (!patch.Ok)
{
FailStepWithFriendly(activeStep, ErrorTranslator.TranslateMessage(patch.Log));
@@ -1013,7 +1016,8 @@ public partial class MainWindow : Window
var patch = await _patcher.ApplyAsync(
patcherDir, _state.RecRoomPath!,
payload.PhotonAppId, payload.PhotonVoiceAppId, payload.PhotonRegion, payload.Host,
singleOrigin: payload.SingleOrigin);
singleOrigin: payload.SingleOrigin,
enableTlsTrustBypass: _state.EnableTlsTrustBypass);
if (!patch.Ok)
{
FailStepWithFriendly(activeStep, ErrorTranslator.TranslateMessage(patch.Log));
@@ -1066,6 +1070,13 @@ public partial class MainWindow : Window
_state.Save();
}
private void OnTlsTrustBypassChanged(object sender, RoutedEventArgs e)
{
if (_state is null) return;
_state.EnableTlsTrustBypass = (sender as CheckBox)?.IsChecked == true;
_state.Save();
}
private void EnsureRemoteWildcardApex()
{
if (!string.IsNullOrWhiteSpace(_state.RemoteWildcardApex)) return;