diff --git a/Emby.Server.Implementations/ApplicationHost.cs b/Emby.Server.Implementations/ApplicationHost.cs
index abc6c3566..26450c06c 100644
--- a/Emby.Server.Implementations/ApplicationHost.cs
+++ b/Emby.Server.Implementations/ApplicationHost.cs
@@ -148,6 +148,34 @@ namespace Emby.Server.Implementations
}
}
+ public virtual bool CanLaunchWebBrowser
+ {
+ get
+ {
+ if (!Environment.UserInteractive)
+ {
+ return false;
+ }
+
+ if (StartupOptions.ContainsOption("-service"))
+ {
+ return false;
+ }
+
+ if (EnvironmentInfo.OperatingSystem == MediaBrowser.Model.System.OperatingSystem.Windows)
+ {
+ return true;
+ }
+
+ if (EnvironmentInfo.OperatingSystem == MediaBrowser.Model.System.OperatingSystem.OSX)
+ {
+ return true;
+ }
+
+ return false;
+ }
+ }
+
///
/// Occurs when [has pending restart changed].
///
@@ -1936,6 +1964,7 @@ namespace Emby.Server.Implementations
OperatingSystemDisplayName = OperatingSystemDisplayName,
CanSelfRestart = CanSelfRestart,
CanSelfUpdate = CanSelfUpdate,
+ CanLaunchWebBrowser = CanLaunchWebBrowser,
WanAddress = ConnectManager.WanApiAddress,
HasUpdateAvailable = HasUpdateAvailable,
SupportsAutoRunAtStartup = SupportsAutoRunAtStartup,
@@ -2358,13 +2387,7 @@ namespace Emby.Server.Implementations
public virtual void LaunchUrl(string url)
{
- if (EnvironmentInfo.OperatingSystem != MediaBrowser.Model.System.OperatingSystem.Windows &&
- EnvironmentInfo.OperatingSystem != MediaBrowser.Model.System.OperatingSystem.OSX)
- {
- throw new NotSupportedException();
- }
-
- if (!Environment.UserInteractive)
+ if (!CanLaunchWebBrowser)
{
throw new NotSupportedException();
}
diff --git a/Emby.Server.Implementations/EntryPoints/StartupWizard.cs b/Emby.Server.Implementations/EntryPoints/StartupWizard.cs
index 746edf9e7..103b4b321 100644
--- a/Emby.Server.Implementations/EntryPoints/StartupWizard.cs
+++ b/Emby.Server.Implementations/EntryPoints/StartupWizard.cs
@@ -35,15 +35,20 @@ namespace Emby.Server.Implementations.EntryPoints
///
public void Run()
{
+ if (!_appHost.CanLaunchWebBrowser)
+ {
+ return;
+ }
+
if (_appHost.IsFirstRun)
{
BrowserLauncher.OpenDashboardPage("wizardstart.html", _appHost);
}
- else if (_config.Configuration.IsStartupWizardCompleted)
+ else if (_config.Configuration.IsStartupWizardCompleted && _config.Configuration.AutoRunWebApp)
{
var options = ((ApplicationHost)_appHost).StartupOptions;
- if (!options.ContainsOption("-service") && !options.ContainsOption("-nobrowser"))
+ if (!options.ContainsOption("-noautorunwebapp"))
{
BrowserLauncher.OpenDashboardPage("index.html", _appHost);
}
diff --git a/MediaBrowser.Api/StartupWizardService.cs b/MediaBrowser.Api/StartupWizardService.cs
index 54e4657c1..c6345c17f 100644
--- a/MediaBrowser.Api/StartupWizardService.cs
+++ b/MediaBrowser.Api/StartupWizardService.cs
@@ -67,6 +67,7 @@ namespace MediaBrowser.Api
public void Post(ReportStartupWizardComplete request)
{
_config.Configuration.IsStartupWizardCompleted = true;
+ _config.Configuration.AutoRunWebApp = true;
_config.SetOptimalValues();
_config.SaveConfiguration();
diff --git a/MediaBrowser.Controller/IServerApplicationHost.cs b/MediaBrowser.Controller/IServerApplicationHost.cs
index 89ae85b50..3f7f8248b 100644
--- a/MediaBrowser.Controller/IServerApplicationHost.cs
+++ b/MediaBrowser.Controller/IServerApplicationHost.cs
@@ -29,7 +29,9 @@ namespace MediaBrowser.Controller
///
/// true if [supports automatic run at startup]; otherwise, false.
bool SupportsAutoRunAtStartup { get; }
-
+
+ bool CanLaunchWebBrowser { get; }
+
///
/// Gets the HTTP server port.
///
diff --git a/MediaBrowser.Model/Configuration/ServerConfiguration.cs b/MediaBrowser.Model/Configuration/ServerConfiguration.cs
index f2c3b7cc8..41ed0648a 100644
--- a/MediaBrowser.Model/Configuration/ServerConfiguration.cs
+++ b/MediaBrowser.Model/Configuration/ServerConfiguration.cs
@@ -61,6 +61,8 @@ namespace MediaBrowser.Model.Configuration
/// true if this instance is port authorized; otherwise, false.
public bool IsPortAuthorized { get; set; }
+ public bool AutoRunWebApp { get; set; }
+
///
/// Gets or sets a value indicating whether [enable case sensitive item ids].
///
diff --git a/MediaBrowser.Model/System/SystemInfo.cs b/MediaBrowser.Model/System/SystemInfo.cs
index b61d63729..9ed0f904f 100644
--- a/MediaBrowser.Model/System/SystemInfo.cs
+++ b/MediaBrowser.Model/System/SystemInfo.cs
@@ -68,6 +68,8 @@ namespace MediaBrowser.Model.System
/// true if this instance can self update; otherwise, false.
public bool CanSelfUpdate { get; set; }
+ public bool CanLaunchWebBrowser { get; set; }
+
///
/// Gets or sets plugin assemblies that failed to load.
///