From 022a6e979d01e6bbb4028631ca0b348f9266d04a Mon Sep 17 00:00:00 2001 From: Michael Bucari-Tovo Date: Mon, 24 Nov 2025 11:41:29 -0700 Subject: [PATCH] Add error handling for cookies --- .../Dialogs/Login/AvaloniaLoginChoiceEager.cs | 14 ++++++++++++-- .../Dialogs/Login/WebLoginDialog.cs | 9 ++++++++- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/Source/LibationAvalonia/Dialogs/Login/AvaloniaLoginChoiceEager.cs b/Source/LibationAvalonia/Dialogs/Login/AvaloniaLoginChoiceEager.cs index 86e7d4fb..8ec087bd 100644 --- a/Source/LibationAvalonia/Dialogs/Login/AvaloniaLoginChoiceEager.cs +++ b/Source/LibationAvalonia/Dialogs/Login/AvaloniaLoginChoiceEager.cs @@ -3,6 +3,7 @@ using AudibleUtilities; using Avalonia.Controls; using Avalonia.Platform; using Avalonia.Threading; +using Dinah.Core; using LibationFileManager; using LibationUiBase.Forms; using System; @@ -67,8 +68,17 @@ namespace LibationAvalonia.Dialogs.Login { if (dialog.TryGetCookieManager() is NativeWebViewCookieManager cookieManager) { - foreach (System.Net.Cookie c in shoiceIn.SignInCookies) - cookieManager.AddOrUpdateCookie(c); + foreach (System.Net.Cookie c in shoiceIn.SignInCookies ?? []) + { + try + { + cookieManager.AddOrUpdateCookie(c); + } + catch (Exception ex) + { + Serilog.Log.Logger.Error(ex, $"Failed to set cookie {c.Name} for domain {c.Domain}"); + } + } } //Set the source only after loading cookies dialog.Source = new Uri(shoiceIn.LoginUrl); diff --git a/Source/LibationWinForms/Dialogs/Login/WebLoginDialog.cs b/Source/LibationWinForms/Dialogs/Login/WebLoginDialog.cs index b54b3d5c..c5b45c7c 100644 --- a/Source/LibationWinForms/Dialogs/Login/WebLoginDialog.cs +++ b/Source/LibationWinForms/Dialogs/Login/WebLoginDialog.cs @@ -41,7 +41,14 @@ namespace LibationWinForms.Login //Load init cookies foreach (System.Net.Cookie cookie in choiceIn.SignInCookies ?? []) { - webView.CoreWebView2.CookieManager.AddOrUpdateCookie(webView.CoreWebView2.CookieManager.CreateCookieWithSystemNetCookie(cookie)); + try + { + webView.CoreWebView2.CookieManager.AddOrUpdateCookie(webView.CoreWebView2.CookieManager.CreateCookieWithSystemNetCookie(cookie)); + } + catch (Exception ex) + { + Serilog.Log.Logger.Error(ex, $"Failed to set cookie {cookie.Name} for domain {cookie.Domain}"); + } } webView.CoreWebView2.DOMContentLoaded += CoreWebView2_DOMContentLoaded;