mirror of
https://github.com/chylex/TweetDuck.git
synced 2025-04-29 11:34:13 +02:00
31 lines
1.2 KiB
C#
31 lines
1.2 KiB
C#
using CefSharp;
|
|
using CefSharp.Handler;
|
|
using TweetLib.Browser.CEF.Logic;
|
|
|
|
namespace TweetDuck.Browser.Base {
|
|
sealed class CefRequestHandler : RequestHandler {
|
|
public RequestHandlerLogic<IRequest> Logic { get; }
|
|
|
|
private readonly bool autoReload;
|
|
|
|
public CefRequestHandler(CefLifeSpanHandler lifeSpanHandler, bool autoReload) {
|
|
this.Logic = new RequestHandlerLogic<IRequest>(CefRequestAdapter.Instance, lifeSpanHandler.Logic);
|
|
this.autoReload = autoReload;
|
|
}
|
|
|
|
protected override bool OnBeforeBrowse(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, bool userGesture, bool isRedirect) {
|
|
return Logic.OnBeforeBrowse(request, userGesture);
|
|
}
|
|
|
|
protected override bool OnOpenUrlFromTab(IWebBrowser browserControl, IBrowser browser, IFrame frame, string targetUrl, WindowOpenDisposition targetDisposition, bool userGesture) {
|
|
return Logic.OnOpenUrlFromTab(targetUrl, userGesture, CefLifeSpanHandler.ConvertTargetDisposition(targetDisposition));
|
|
}
|
|
|
|
protected override void OnRenderProcessTerminated(IWebBrowser browserControl, IBrowser browser, CefTerminationStatus status) {
|
|
if (autoReload) {
|
|
browser.Reload();
|
|
}
|
|
}
|
|
}
|
|
}
|