mirror of
https://github.com/chylex/TweetDuck.git
synced 2025-04-28 09:15:46 +02:00
36 lines
1.3 KiB
C#
36 lines
1.3 KiB
C#
using System.Diagnostics.CodeAnalysis;
|
|
using CefSharp;
|
|
using TweetDuck.Browser.Data;
|
|
|
|
namespace TweetDuck.Browser.Handling {
|
|
abstract class ResourceRequestHandler : CefSharp.Handler.ResourceRequestHandler {
|
|
private class SelfFactoryImpl : IResourceRequestHandlerFactory {
|
|
private readonly ResourceRequestHandler me;
|
|
|
|
public SelfFactoryImpl(ResourceRequestHandler me) {
|
|
this.me = me;
|
|
}
|
|
|
|
bool IResourceRequestHandlerFactory.HasHandlers => true;
|
|
|
|
[SuppressMessage("ReSharper", "RedundantAssignment")]
|
|
IResourceRequestHandler IResourceRequestHandlerFactory.GetResourceRequestHandler(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, bool isNavigation, bool isDownload, string requestInitiator, ref bool disableDefaultHandling) {
|
|
disableDefaultHandling = me.ResourceHandlers.HasHandler(request);
|
|
return me;
|
|
}
|
|
}
|
|
|
|
public IResourceRequestHandlerFactory SelfFactory { get; }
|
|
public ResourceHandlers ResourceHandlers { get; }
|
|
|
|
protected ResourceRequestHandler() {
|
|
this.SelfFactory = new SelfFactoryImpl(this);
|
|
this.ResourceHandlers = new ResourceHandlers();
|
|
}
|
|
|
|
protected override IResourceHandler GetResourceHandler(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request) {
|
|
return ResourceHandlers.GetHandler(request);
|
|
}
|
|
}
|
|
}
|