1
0
mirror of https://github.com/chylex/TweetDuck.git synced 2025-04-29 20:34:04 +02:00
TweetDuck/Browser/Base/CefSchemeHandlerFactory.cs

30 lines
1013 B
C#

using CefSharp;
using CefSharp.WinForms;
using TweetLib.Browser.CEF.Logic;
using TweetLib.Browser.Interfaces;
namespace TweetDuck.Browser.Base {
sealed class CefSchemeHandlerFactory : ISchemeHandlerFactory {
public static void Register(CefSettings settings, ICustomSchemeHandler handler) {
settings.RegisterScheme(new CefCustomScheme {
SchemeName = handler.Protocol,
IsStandard = false,
IsSecure = true,
IsCorsEnabled = true,
IsCSPBypassing = true,
SchemeHandlerFactory = new CefSchemeHandlerFactory(handler)
});
}
private readonly SchemeHandlerFactoryLogic<IRequest, IResourceHandler> logic;
private CefSchemeHandlerFactory(ICustomSchemeHandler handler) {
this.logic = new SchemeHandlerFactoryLogic<IRequest, IResourceHandler>(handler, CefRequestAdapter.Instance, CefResourceHandlerFactory.Instance);
}
IResourceHandler ISchemeHandlerFactory.Create(IBrowser browser, IFrame frame, string schemeName, IRequest request) {
return logic.Create(request);
}
}
}