From f986fd9b6dfb697dd51988435ff146cf43aa8f16 Mon Sep 17 00:00:00 2001 From: John Maxwell Date: Mon, 23 Feb 2026 08:21:01 -0800 Subject: [PATCH 1/2] Fix LT-22355: Crash after typing a letter in Find dialog box --- Src/xWorks/XhtmlDocView.cs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/Src/xWorks/XhtmlDocView.cs b/Src/xWorks/XhtmlDocView.cs index 226998e97c..fc80d6a5c8 100644 --- a/Src/xWorks/XhtmlDocView.cs +++ b/Src/xWorks/XhtmlDocView.cs @@ -1287,6 +1287,11 @@ private void FindNextInBrowser(object sender, IBasicFindView view) private void ScrollAndHighlightResult(GeckoWebBrowser geckoBrowser, IBasicFindView view, string lastId) { + if (geckoBrowser.Document == null) + { + Close(); + return; + } if (results != null && results.Length > 0) { view.StatusText = $"{resultIndex + 1} of {results.Length} Results"; @@ -1304,7 +1309,7 @@ private void ScrollAndHighlightResult(GeckoWebBrowser geckoBrowser, IBasicFindVi private void ClearCurrentFindResult(GeckoWebBrowser geckoBrowser, string lastId) { - var currentElement = geckoBrowser.Document.GetHtmlElementById(lastId); + var currentElement = geckoBrowser.Document?.GetHtmlElementById(lastId); if (currentElement != null) docView.RemoveClassFromHtmlElement(currentElement, CurrentSelectedEntryClass); } @@ -1317,6 +1322,12 @@ private bool InitResults(string searchText) if (results == null || results.Length == 0) { string newResults = string.Empty; + if (geckoBrowser.Document == null) + { + results = newResults.Split(new[] { ';' }, StringSplitOptions.RemoveEmptyEntries); + resultIndex = 0; + return true; + } geckoBrowser.RemoveMessageEventListener("find"); geckoBrowser.AddMessageEventListener("find", r => newResults = r); using(var executor = new AutoJSContext(geckoBrowser.Window)) From 974275bc14675a9b9dd95cc2415b400577fb4a49 Mon Sep 17 00:00:00 2001 From: John Maxwell Date: Mon, 23 Feb 2026 09:09:35 -0800 Subject: [PATCH 2/2] Report lack of document instead of closing --- Src/xWorks/XhtmlDocView.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Src/xWorks/XhtmlDocView.cs b/Src/xWorks/XhtmlDocView.cs index fc80d6a5c8..8af8723bb7 100644 --- a/Src/xWorks/XhtmlDocView.cs +++ b/Src/xWorks/XhtmlDocView.cs @@ -1289,7 +1289,7 @@ private void ScrollAndHighlightResult(GeckoWebBrowser geckoBrowser, IBasicFindVi { if (geckoBrowser.Document == null) { - Close(); + view.StatusText = "No Document"; return; } if (results != null && results.Length > 0)