feat: migrate legacy playout workflow and scenes
This commit is contained in:
@@ -130,6 +130,7 @@ public sealed partial class MainWindow : Window
|
||||
if (PlayoutBridgeProtocol.IsTrustedSource(uri.AbsoluteUri, AppHost) ||
|
||||
uri.Scheme == "about")
|
||||
{
|
||||
QuarantineIfBrowserCorrelationCanBeLost();
|
||||
LoadingOverlay.Visibility = Visibility.Visible;
|
||||
return;
|
||||
}
|
||||
@@ -192,6 +193,9 @@ public sealed partial class MainWindow : Window
|
||||
case "playout-command":
|
||||
_ = HandlePlayoutCommandAsync(request.Payload);
|
||||
break;
|
||||
case "playout-timeout-quarantine":
|
||||
_ = HandlePlayoutTimeoutQuarantineAsync(request.Payload);
|
||||
break;
|
||||
case "request-market-data" when request.Payload.ValueKind == JsonValueKind.Object:
|
||||
_ = HandleMarketDataRequestAsync(request.Payload);
|
||||
break;
|
||||
@@ -203,7 +207,7 @@ public sealed partial class MainWindow : Window
|
||||
}
|
||||
break;
|
||||
case "reload":
|
||||
Browser.Reload();
|
||||
ReloadBrowserSafely();
|
||||
break;
|
||||
}
|
||||
}
|
||||
@@ -477,6 +481,7 @@ public sealed partial class MainWindow : Window
|
||||
|
||||
private void OnProcessFailed(object? sender, CoreWebView2ProcessFailedEventArgs args)
|
||||
{
|
||||
QuarantineIfBrowserCorrelationCanBeLost();
|
||||
ShowError("WebView2 프로세스가 종료되었습니다.", args.ProcessFailedKind.ToString());
|
||||
}
|
||||
|
||||
@@ -508,7 +513,23 @@ public sealed partial class MainWindow : Window
|
||||
{
|
||||
if (_webViewReady)
|
||||
{
|
||||
Browser.Reload();
|
||||
ReloadBrowserSafely();
|
||||
}
|
||||
}
|
||||
|
||||
private void ReloadBrowserSafely()
|
||||
{
|
||||
QuarantineIfBrowserCorrelationCanBeLost();
|
||||
Browser.Reload();
|
||||
}
|
||||
|
||||
private void QuarantineIfBrowserCorrelationCanBeLost()
|
||||
{
|
||||
if (Volatile.Read(ref _playoutCommandInFlight) != 0)
|
||||
{
|
||||
// Navigation or a renderer failure destroys the JavaScript request
|
||||
// correlation. Latch native OutcomeUnknown before the document can go away.
|
||||
_ = QuarantineForBrowserCorrelationLossAsync();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user