From 651bbbb672dec6de99bd26d8f16c2c13d52b1096 Mon Sep 17 00:00:00 2001
From: chylex <contact@chylex.com>
Date: Tue, 20 Nov 2018 14:55:40 +0100
Subject: [PATCH] Fix crash when showing a browser error message

Closes #244
---
 Core/TweetDeckBrowser.cs | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/Core/TweetDeckBrowser.cs b/Core/TweetDeckBrowser.cs
index 9d11d7c2..33da7d8d 100644
--- a/Core/TweetDeckBrowser.cs
+++ b/Core/TweetDeckBrowser.cs
@@ -19,6 +19,8 @@ namespace TweetDuck.Core{
     sealed class TweetDeckBrowser : IDisposable{
         private static UserConfig Config => Program.Config.User;
 
+        private const string ErrorUrl = "http://td/error";
+
         public bool Ready { get; private set; }
 
         public bool Enabled{
@@ -151,6 +153,10 @@ private void browser_FrameLoadEnd(object sender, FrameLoadEndEventArgs e){
 
                 ScriptLoader.ExecuteFile(frame, "update.js", browser);
             }
+
+            if (frame.Url == ErrorUrl){
+                resourceHandlerFactory.UnregisterHandler(ErrorUrl);
+            }
         }
 
         private void browser_LoadError(object sender, LoadErrorEventArgs e){
@@ -162,7 +168,8 @@ private void browser_LoadError(object sender, LoadErrorEventArgs e){
                 string errorPage = ScriptLoader.LoadResourceSilent("pages/error.html");
 
                 if (errorPage != null){
-                    browser.LoadHtml(errorPage.Replace("{err}", BrowserUtils.GetErrorName(e.ErrorCode)), "http://td/error");
+                    resourceHandlerFactory.RegisterHandler(ErrorUrl, ResourceHandler.FromString(errorPage.Replace("{err}", BrowserUtils.GetErrorName(e.ErrorCode))));
+                    browser.Load(ErrorUrl);
                 }
             }
         }