diff --git a/Configuration/DesktopHostOptions.cs b/Configuration/DesktopHostOptions.cs
index 275b398..65d4dc5 100644
--- a/Configuration/DesktopHostOptions.cs
+++ b/Configuration/DesktopHostOptions.cs
@@ -13,4 +13,30 @@ public sealed class DesktopHostOptions
/// Optional URL to open. If empty, the first bound HTTP address from Kestrel is used.
///
public string? BrowserUrl { get; init; }
+
+ ///
+ /// When true (default for published desktop exe), stops the host when the launched browser window closes.
+ ///
+ public bool ExitWhenBrowserCloses { get; init; } = true;
+
+ ///
+ /// Seconds to wait after the page unloads before shutdown (allows cancel on reload).
+ ///
+ public int BrowserShutdownDelaySeconds { get; init; } = 2;
+
+ ///
+ /// Prefer Edge/Chrome app-mode window (trackable process) on Windows before the default browser.
+ ///
+ public bool PreferAppModeBrowser { get; init; } = true;
+
+ ///
+ /// Dedicated Edge/Chrome profile directory so app-mode uses a trackable browser process.
+ ///
+ public string BrowserUserDataDir { get; init; } =
+ @"C:\Users\Public\AVSCartonShipmentVerifier\browser-profile";
+
+ ///
+ /// If the tracked browser process exits sooner than this, treat it as a launcher handoff (do not stop the app).
+ ///
+ public int MinimumBrowserProcessLifetimeSeconds { get; init; } = 5;
}
diff --git a/appsettings.Development.json b/appsettings.Development.json
index 2c43f04..cc9a4ac 100644
--- a/appsettings.Development.json
+++ b/appsettings.Development.json
@@ -3,7 +3,8 @@
"VerificationDatabase": "Server=192.168.90.147;Port=3306;Database=UIND;User ID=utopia;Password=Utopia01;SslMode=None;Allow User Variables=True;"
},
"DesktopHost": {
- "LaunchBrowser": false
+ "LaunchBrowser": false,
+ "ExitWhenBrowserCloses": false
},
"Logging": {
"LogLevel": {
diff --git a/appsettings.Example.json b/appsettings.Example.json
index 68e2839..cb4e9d8 100644
--- a/appsettings.Example.json
+++ b/appsettings.Example.json
@@ -13,6 +13,11 @@
"DesktopHost": {
"LaunchBrowser": true,
- "BrowserUrl": "http://localhost:5000"
+ "BrowserUrl": "http://127.0.0.1:5000",
+ "ExitWhenBrowserCloses": true,
+ "BrowserShutdownDelaySeconds": 2,
+ "PreferAppModeBrowser": true,
+ "BrowserUserDataDir": "C:\\Users\\Public\\AVSCartonShipmentVerifier\\browser-profile",
+ "MinimumBrowserProcessLifetimeSeconds": 5
}
}
diff --git a/appsettings.json b/appsettings.json
index 60863ec..9d926b8 100644
--- a/appsettings.json
+++ b/appsettings.json
@@ -9,7 +9,12 @@
},
"DesktopHost": {
"LaunchBrowser": true,
- "BrowserUrl": ""
+ "BrowserUrl": "http://127.0.0.1:5000",
+ "ExitWhenBrowserCloses": true,
+ "BrowserShutdownDelaySeconds": 2,
+ "PreferAppModeBrowser": true,
+ "BrowserUserDataDir": "C:\\Users\\Public\\AVSCartonShipmentVerifier\\browser-profile",
+ "MinimumBrowserProcessLifetimeSeconds": 5
},
"CartonVerification": {
"TableName": "carton_verification_log",