Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[1.12.2] 샌드박스에서 Microsoft Edge 브라우저 설치가 누락된 경우에 대한 대응 #184

Open
rkttu opened this issue Feb 4, 2024 · 1 comment
Assignees
Labels
bug Something isn't working sentry
Milestone

Comments

@rkttu
Copy link
Member

rkttu commented Feb 4, 2024

원인을 명확히 알 수는 없으나, Microsoft Edge가 샌드박스 안에 제대로 설치되지 않은 경우가 드물게 발생하는 것으로 보임.

Windows Sandbox 안에서는 Microsoft Edge를 강제 설치하기 위해 충분한 권한을 얻을 수 없기 때문에, �다음의 우회책을 적용하는 것을 검토한다.

  • msedge.exe 파일이 없는 것이 확인되면, 관련된 안내를 표시한다.
    • 메시지 예시: "Windows Sandbox 구성 오류로 인하여 Microsoft Edge를 사용할 수 없는 것 같습니다. Google Chrome 브라우저를 대신 설치하여 사용할 수 있도록 시스템을 준비하겠습니다."
  • 유저 모드 권한만으로도 Google Chorme 브라우저를 설치하고 사용할 수는 있으므로, Google Chrome 브라우저 설치 단계를 StepsComposer에 포함시켜 무인 설치로 설치를 전개한다.
  • 보안 플러그인 설치를 MS Edge 대신 Chrome 위에서 진행되도록 처리할 수 있는지 살펴보고 관련 코드를 보강한다.

참고: 관련 스택 추적 기록

System.ComponentModel.Win32Exception: 응용 프로그램을 찾을 수 없습니다
  ?, in bool Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
  ?, in Process Process.Start(ProcessStartInfo startInfo)
  File "Components\Implementations\StepsPlayer.cs", line 251, col 13, in async Task StepsPlayer.OpenRequestedWebSiteAsync(string targetUrl, CancellationToken cancellationToken)
  File "Components\Implementations\StepsPlayer.cs", line 88, col 38, in async Task<bool> StepsPlayer.PlayStepsAsync(IEnumerable<InstallItemViewModel> composedSteps, bool dryRun, CancellationToken cancellationToken)
  File "Commands\MainWindow\MainWindowInstallPackagesCommand.cs", line 29, col 13, in async Task MainWindowInstallPackagesCommand.ExecuteAsync(MainWindowViewModel viewModel)
  ?, in async void SafeFireAndForgetExtensions.HandleSafeFireAndForget<TException>(Task task, bool continueOnCapturedContext, Action<TException> onException)
  ?, in object ExceptionWrapper.InternalRealCall(Delegate callback, object args, int numArgs)
  ?, in object ExceptionWrapper.TryCatchWhen(object source, Delegate callback, object args, int numArgs, Delegate catchHandler)
  ?, in void DispatcherOperation.InvokeImpl()
  ?, in void CulturePreservingExecutionContext.CallbackWrapper(object obj)
  ?, in void CulturePreservingExecutionContext.Run(CulturePreservingExecutionContext executionContext, ContextCallback callback, object state)
  ?, in void DispatcherOperation.Invoke()
  ?, in void Dispatcher.ProcessQueue()
  ?, in IntPtr Dispatcher.WndProcHook(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
  ?, in IntPtr HwndWrapper.WndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam, ref bool handled)
  ?, in object HwndSubclass.DispatcherCallbackOperation(object o)
  ?, in object ExceptionWrapper.InternalRealCall(Delegate callback, object args, int numArgs)
  ?, in object ExceptionWrapper.TryCatchWhen(object source, Delegate callback, object args, int numArgs, Delegate catchHandler)
  ?, in object Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, object args, int numArgs)
  ?, in IntPtr HwndSubclass.SubclassWndProc(IntPtr hwnd, int msg, IntPtr wParam, IntPtr lParam)
  ?, in IntPtr UnsafeNativeMethods.DispatchMessage(in MSG msg)
  ?, in void Dispatcher.PushFrameImpl(DispatcherFrame frame)
  ?, in object Application.RunDispatcher(object ignore)
  ?, in int Application.RunInternal(Window window)
  File "Program.cs", line 36, col 9, in void Program.RunApp(string[] args)
  File "Program.cs", line 26, col 16, in void Program.Main(string[] args)
@rkttu rkttu added the bug Something isn't working label Feb 4, 2024
@rkttu rkttu self-assigned this Feb 4, 2024
@rkttu rkttu added the sentry label Feb 4, 2024
@rkttu rkttu changed the title [버그] Hostess - 응용프로그램을 찾을 수 없습니다 [1.12.2] Hostess - 응용프로그램을 찾을 수 없습니다 Feb 4, 2024
@rkttu rkttu changed the title [1.12.2] Hostess - 응용프로그램을 찾을 수 없습니다 [1.12.2] 샌드박스에서 Microsoft Edge 브라우저 설치가 누락된 경우에 대한 대응 Feb 5, 2024
@rkttu
Copy link
Member Author

rkttu commented Feb 5, 2024

확인해볼 부분: Microsoft Edge Enterprise MSI 파일을 설치 과정 중에 대신 사용할 수 있는지 확인 필요.

@rkttu rkttu added this to the 1.4.0 milestone Apr 5, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working sentry
Projects
Status: No status
Development

No branches or pull requests

1 participant