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); } } }