Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ public class CustomBrowserViewModel : BaseModel
public string DisplayName => Name == "Default" ? Localize.defaultBrowser_default() : Name;
public string Path { get; set; }
public string PrivateArg { get; set; }
public string ExtraArgs { get; set; }
public bool EnablePrivate { get; set; }
public bool OpenInTab { get; set; } = true;
[JsonIgnore]
Expand All @@ -24,6 +25,7 @@ public CustomBrowserViewModel Copy()
Path = Path,
OpenInTab = OpenInTab,
PrivateArg = PrivateArg,
ExtraArgs = ExtraArgs,
EnablePrivate = EnablePrivate,
Editable = Editable
};
Expand Down
15 changes: 10 additions & 5 deletions Flow.Launcher.Plugin/SharedCommands/SearchWeb.cs
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ private static string GetDefaultBrowserPath()
/// Opens search in a new browser. If no browser path is passed in then Chrome is used.
/// Leave browser path blank to use Chrome.
/// </summary>
public static void OpenInBrowserWindow(this string url, string browserPath = "", bool inPrivate = false, string privateArg = "")
public static void OpenInBrowserWindow(this string url, string browserPath = "", bool inPrivate = false, string privateArg = "", string extraArgs = "")
{
browserPath = string.IsNullOrEmpty(browserPath) ? GetDefaultBrowserPath() : browserPath;

Expand All @@ -52,12 +52,15 @@ public static void OpenInBrowserWindow(this string url, string browserPath = "",
var browser = string.IsNullOrEmpty(browserExecutableName) ? "chrome" : browserPath;

// Internet Explorer will open url in new browser window, and does not take the --new-window parameter
var browserArguements = (browserExecutableName == "iexplore.exe" ? "" : "--new-window ") + (inPrivate ? $"{privateArg} " : "") + url;
var browserArguments = (browserExecutableName == "iexplore.exe" ? "" : "--new-window ")
+ (inPrivate ? $"{privateArg} " : "")
+ (string.IsNullOrWhiteSpace(extraArgs) ? "" : $"{extraArgs} ")
+ url;

var psi = new ProcessStartInfo
{
FileName = browser,
Arguments = browserArguements,
Arguments = browserArguments,
UseShellExecute = true
};

Expand Down Expand Up @@ -86,7 +89,7 @@ public static void OpenInBrowserWindow(this string url, string browserPath = "",
/// <summary>
/// Opens search as a tab in the default browser chosen in Windows settings.
/// </summary>
public static void OpenInBrowserTab(this string url, string browserPath = "", bool inPrivate = false, string privateArg = "")
public static void OpenInBrowserTab(this string url, string browserPath = "", bool inPrivate = false, string privateArg = "", string extraArgs = "")
{
browserPath = string.IsNullOrEmpty(browserPath) ? GetDefaultBrowserPath() : browserPath;

Expand All @@ -99,7 +102,9 @@ public static void OpenInBrowserTab(this string url, string browserPath = "", bo
if (!string.IsNullOrEmpty(browserPath))
{
psi.FileName = browserPath;
psi.Arguments = (inPrivate ? $"{privateArg} " : "") + url;
psi.Arguments = (inPrivate ? $"{privateArg} " : "")
+ (string.IsNullOrWhiteSpace(extraArgs) ? "" : $"{extraArgs} ")
+ url;
}
else
{
Expand Down
1 change: 1 addition & 0 deletions Flow.Launcher/Languages/en.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -518,6 +518,7 @@
<system:String x:Key="defaultBrowser_newWindow">New Window</system:String>
<system:String x:Key="defaultBrowser_newTab">New Tab</system:String>
<system:String x:Key="defaultBrowser_parameter">Private Mode</system:String>
<system:String x:Key="defaultBrowser_extraArgs">Extra Args</system:String>
<system:String x:Key="defaultBrowser_default">Default</system:String>
<system:String x:Key="defaultBrowser_new_profile">New Profile</system:String>

Expand Down
9 changes: 6 additions & 3 deletions Flow.Launcher/PublicAPIInstance.cs
Original file line number Diff line number Diff line change
Expand Up @@ -454,17 +454,20 @@ private void OpenUri(Uri uri, bool? inPrivate = null, bool forceBrowser = false)
{
if (browserInfo.OpenInTab)
{
uri.AbsoluteUri.OpenInBrowserTab(path, inPrivate ?? browserInfo.EnablePrivate, browserInfo.PrivateArg);
uri.AbsoluteUri.OpenInBrowserTab(path, inPrivate ?? browserInfo.EnablePrivate, browserInfo.PrivateArg, browserInfo.ExtraArgs);
}
else
{
uri.AbsoluteUri.OpenInBrowserWindow(path, inPrivate ?? browserInfo.EnablePrivate, browserInfo.PrivateArg);
uri.AbsoluteUri.OpenInBrowserWindow(path, inPrivate ?? browserInfo.EnablePrivate, browserInfo.PrivateArg, browserInfo.ExtraArgs);
}
}
catch (Exception e)
{
var tabOrWindow = browserInfo.OpenInTab ? "tab" : "window";
LogException(ClassName, $"Failed to open URL in browser {tabOrWindow}: {path}, {inPrivate ?? browserInfo.EnablePrivate}, {browserInfo.PrivateArg}", e);
var includesExtraArgs = string.IsNullOrWhiteSpace(browserInfo.ExtraArgs)
? ""
: ", [including omitted Extra Args]";
LogException(ClassName, $"Failed to open URL in browser {tabOrWindow}: {path}, {inPrivate ?? browserInfo.EnablePrivate}, {browserInfo.PrivateArg}{includesExtraArgs}", e);
ShowMsgError(
Localize.errorTitle(),
Localize.browserOpenError()
Expand Down
20 changes: 18 additions & 2 deletions Flow.Launcher/SelectBrowserWindow.xaml
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,7 @@
<RowDefinition />
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock
Grid.Row="0"
Expand Down Expand Up @@ -198,15 +199,15 @@
<TextBlock
Grid.Row="3"
Grid.Column="0"
Margin="14 10 0 20"
Margin="14 10 0 0"
HorizontalAlignment="Left"
VerticalAlignment="Center"
FontSize="14"
Text="{DynamicResource defaultBrowser_parameter}" />
<StackPanel
Grid.Row="3"
Grid.Column="1"
Margin="0 10 0 15"
Margin="0 10 0 0"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Orientation="Horizontal">
Expand All @@ -230,6 +231,21 @@
</CheckBox.Style>
</CheckBox>
</StackPanel>
<TextBlock
Grid.Row="4"
Grid.Column="0"
Margin="14 10 0 20"
HorizontalAlignment="Left"
VerticalAlignment="Center"
FontSize="14"
Text="{DynamicResource defaultBrowser_extraArgs}" />
<TextBox
Grid.Row="4"
Grid.Column="1"
Margin="10 10 0 15"
HorizontalAlignment="Stretch"
VerticalAlignment="Center"
Text="{Binding ExtraArgs}" />
</Grid>
</StackPanel>
</StackPanel>
Expand Down
Loading