From 37c733789e145ab32754354211c256bb082e7e84 Mon Sep 17 00:00:00 2001 From: Andrzej Martyna Date: Sat, 3 Jan 2026 10:29:38 +0100 Subject: [PATCH] fixed: fixed KeyNotFoundException and improvement --- .../Tabs/TabsReservationService.cs | 4 ++-- .../Tabs/TabsTracker.cs | 10 ++++------ 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/Plugins/Flow.Launcher.Plugin.BrowserBookmark/Tabs/TabsReservationService.cs b/Plugins/Flow.Launcher.Plugin.BrowserBookmark/Tabs/TabsReservationService.cs index d48a63d62..5f125a862 100644 --- a/Plugins/Flow.Launcher.Plugin.BrowserBookmark/Tabs/TabsReservationService.cs +++ b/Plugins/Flow.Launcher.Plugin.BrowserBookmark/Tabs/TabsReservationService.cs @@ -122,8 +122,8 @@ public class TabsReservationService : IDisposable _tabsTracker.MakeSnapshot(); int expectedIndex = Math.Max(tokenHandling.LastReturnedIndex, token.Index) + 1; - var tab = _tabsTracker.TryGetTab(expectedIndex, out var foundInTrackingInfo); - trackingInfo = foundInTrackingInfo; + var (tab, info) = _tabsTracker.TryGetTab(expectedIndex); + trackingInfo = info; if (tab != null) { if (tokenHandling.RequestedStill <= 1) diff --git a/Plugins/Flow.Launcher.Plugin.BrowserBookmark/Tabs/TabsTracker.cs b/Plugins/Flow.Launcher.Plugin.BrowserBookmark/Tabs/TabsTracker.cs index 2c455446c..18fdd0a52 100644 --- a/Plugins/Flow.Launcher.Plugin.BrowserBookmark/Tabs/TabsTracker.cs +++ b/Plugins/Flow.Launcher.Plugin.BrowserBookmark/Tabs/TabsTracker.cs @@ -249,7 +249,7 @@ public class TabsTracker : IDisposable List elementsToInvalidate; lock (_syncInvalidations) { - elementsToInvalidate = [.. _structureInvalidations]; + elementsToInvalidate = _structureInvalidations.Where(_browserWindowsTracked.ContainsKey).ToList(); _structureInvalidations.Clear(); } foreach (var element in elementsToInvalidate) @@ -307,7 +307,7 @@ public class TabsTracker : IDisposable } } - public AutomationElement TryGetTab(int expectedIndex, out TrackingInfo foundInTrackingInfo) + public (AutomationElement, TrackingInfo) TryGetTab(int expectedIndex) { lock (_sync) { @@ -316,12 +316,10 @@ public class TabsTracker : IDisposable var tab = trackingInfo.Cache.TryGetTab(expectedIndex); if (tab != null) { - foundInTrackingInfo = trackingInfo; - return tab; + return (tab, trackingInfo); } } - foundInTrackingInfo = null; - return null; + return (null, null); } }