diff --git a/Core/Handling/RequestHandlerBase.cs b/Core/Handling/RequestHandlerBase.cs index 98a34c9c..efe5691d 100644 --- a/Core/Handling/RequestHandlerBase.cs +++ b/Core/Handling/RequestHandlerBase.cs @@ -5,6 +5,12 @@ namespace TweetDuck.Core.Handling{ class RequestHandlerBase : DefaultRequestHandler{ + private readonly bool autoReload; + + public RequestHandlerBase(bool autoReload){ + this.autoReload = autoReload; + } + public override bool OnOpenUrlFromTab(IWebBrowser browserControl, IBrowser browser, IFrame frame, string targetUrl, WindowOpenDisposition targetDisposition, bool userGesture){ return LifeSpanHandler.HandleLinkClick(browserControl, targetDisposition, targetUrl); } @@ -18,5 +24,11 @@ public override CefReturnValue OnBeforeResourceLoad(IWebBrowser browserControl, return base.OnBeforeResourceLoad(browserControl, browser, frame, request, callback); } + + public override void OnRenderProcessTerminated(IWebBrowser browserControl, IBrowser browser, CefTerminationStatus status){ + if (autoReload){ + browser.Reload(); + } + } } } diff --git a/Core/Handling/RequestHandlerBrowser.cs b/Core/Handling/RequestHandlerBrowser.cs index d96c53c2..db72fd73 100644 --- a/Core/Handling/RequestHandlerBrowser.cs +++ b/Core/Handling/RequestHandlerBrowser.cs @@ -3,9 +3,7 @@ namespace TweetDuck.Core.Handling{ sealed class RequestHandlerBrowser : RequestHandlerBase{ - public override void OnRenderProcessTerminated(IWebBrowser browserControl, IBrowser browser, CefTerminationStatus status){ - browser.Reload(); - } + public RequestHandlerBrowser() : base(true){} public override CefReturnValue OnBeforeResourceLoad(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IRequestCallback callback){ if (request.ResourceType == ResourceType.Script && request.Url.Contains("analytics.")){ diff --git a/Core/Notification/FormNotificationBase.cs b/Core/Notification/FormNotificationBase.cs index f60aa20a..54c6e3f0 100644 --- a/Core/Notification/FormNotificationBase.cs +++ b/Core/Notification/FormNotificationBase.cs @@ -124,7 +124,7 @@ protected FormNotificationBase(FormBrowser owner, bool enableContextMenu){ MenuHandler = new ContextMenuNotification(this, enableContextMenu), JsDialogHandler = new JavaScriptDialogHandler(), LifeSpanHandler = new LifeSpanHandler(), - RequestHandler = new RequestHandlerBase() + RequestHandler = new RequestHandlerBase(false) }; this.browser.Dock = DockStyle.None; diff --git a/Core/Other/FormGuide.cs b/Core/Other/FormGuide.cs index 6b4321ea..42ae7e84 100644 --- a/Core/Other/FormGuide.cs +++ b/Core/Other/FormGuide.cs @@ -69,7 +69,7 @@ private FormGuide(string url, FormBrowser owner){ MenuHandler = new ContextMenuGuide(owner), JsDialogHandler = new JavaScriptDialogHandler(), LifeSpanHandler = new LifeSpanHandler(), - RequestHandler = new RequestHandlerBrowser() + RequestHandler = new RequestHandlerBase(true) }; browser.LoadingStateChanged += browser_LoadingStateChanged;