From cf5bfa197fdaba04576bedb8352707321804b6ac Mon Sep 17 00:00:00 2001
From: Mackinnon Buck <mackinnon.buck@gmail.com>
Date: Thu, 3 Nov 2022 20:12:19 -0700
Subject: [PATCH] Catch JSDisconnectedException during disposal (#44800)
 (#44806)

---
 src/Components/Web/src/Routing/NavigationLock.cs | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/Components/Web/src/Routing/NavigationLock.cs b/src/Components/Web/src/Routing/NavigationLock.cs
index e8b5566531d..622ab43a186 100644
--- a/src/Components/Web/src/Routing/NavigationLock.cs
+++ b/src/Components/Web/src/Routing/NavigationLock.cs
@@ -107,7 +107,14 @@ public sealed class NavigationLock : IComponent, IHandleAfterRender, IAsyncDispo
 
         if (_confirmExternalNavigation)
         {
-            await JSRuntime.InvokeVoidAsync(NavigationLockInterop.DisableNavigationPrompt, _id);
+            try
+            {
+                await JSRuntime.InvokeVoidAsync(NavigationLockInterop.DisableNavigationPrompt, _id);
+            }
+            catch (JSDisconnectedException)
+            {
+                // If the browser is gone, we don't need it to clean up any browser-side state
+            }
         }
     }
 }
-- 
GitLab