From f6c75c21072b35bbc35e38dbe05adf287a2e164f Mon Sep 17 00:00:00 2001
From: Jack251970 <1160210343@qq.com>
Date: Wed, 4 Jun 2025 22:29:45 +0800
Subject: [PATCH] Handle exception from OpenInBrowserTab & OpenInBrowserWindow
---
Flow.Launcher/Languages/en.xaml | 1 +
Flow.Launcher/PublicAPIInstance.cs | 22 ++++++++++++++++++----
2 files changed, 19 insertions(+), 4 deletions(-)
diff --git a/Flow.Launcher/Languages/en.xaml b/Flow.Launcher/Languages/en.xaml
index 28673c753..ec1d5bc93 100644
--- a/Flow.Launcher/Languages/en.xaml
+++ b/Flow.Launcher/Languages/en.xaml
@@ -473,6 +473,7 @@
Error
An error occurred while opening the folder. {0}
+ An error occurred while opening the url in browser. Please check your setting in Default Web Browser of general page.
Please wait...
diff --git a/Flow.Launcher/PublicAPIInstance.cs b/Flow.Launcher/PublicAPIInstance.cs
index 7f0b03445..80d5de53d 100644
--- a/Flow.Launcher/PublicAPIInstance.cs
+++ b/Flow.Launcher/PublicAPIInstance.cs
@@ -399,13 +399,27 @@ namespace Flow.Launcher
var path = browserInfo.Path == "*" ? "" : browserInfo.Path;
- if (browserInfo.OpenInTab)
+ try
{
- uri.AbsoluteUri.OpenInBrowserTab(path, inPrivate ?? browserInfo.EnablePrivate, browserInfo.PrivateArg);
+ if (browserInfo.OpenInTab)
+ {
+ uri.AbsoluteUri.OpenInBrowserTab(path, inPrivate ?? browserInfo.EnablePrivate, browserInfo.PrivateArg);
+ }
+ else
+ {
+ uri.AbsoluteUri.OpenInBrowserWindow(path, inPrivate ?? browserInfo.EnablePrivate, browserInfo.PrivateArg);
+ }
}
- else
+ catch (Exception e)
{
- uri.AbsoluteUri.OpenInBrowserWindow(path, inPrivate ?? browserInfo.EnablePrivate, browserInfo.PrivateArg);
+ var tabOrWindow = browserInfo.OpenInTab ? "tab" : "window";
+ LogException(ClassName, $"Failed to open URL in browser {tabOrWindow}: {path}, {inPrivate ?? browserInfo.EnablePrivate}, {browserInfo.PrivateArg}", e);
+ ShowMsgBox(
+ GetTranslation("browserOpenError"),
+ GetTranslation("errorTitle"),
+ MessageBoxButton.OK,
+ MessageBoxImage.Error
+ );
}
}
else