I have cefsharp ChromiumWebBrowser. For example i'm opening discord.com website and in the background site itself making requests to discordapp.com. How can i block requests to discordapp.com domain?
I tried using custom IRequestHandler.OnBeforeBrowse, but it trigers only when opening site, not when site making requests.
In chrome i found this: https://chrome.google.com/webstore/detail/http-request-blocker/eckpjmeijpoipmldfbckahppeonkoeko and it's working fine, but idk how to do same in cefsharp.
Solution:
public class CustomRequestHandler : CefSharp.Handler.RequestHandler
{
protected override IResourceRequestHandler GetResourceRequestHandler(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, bool isNavigation, bool isDownload, string requestInitiator, ref bool disableDefaultHandling)
{
if (request.Url.Contains("discordapp"))
{
return new CustomResourceRequestHandler();
}
return null;
}
}
public class CustomResourceRequestHandler : CefSharp.Handler.ResourceRequestHandler
{
protected override CefReturnValue OnBeforeResourceLoad(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IRequestCallback callback)
{
request.Url = "";
request.Dispose();
return CefReturnValue.Cancel;
}
}
browser.RequestHandler = new CustomRequestHandler();