I notice cef add cookies on request (when not necessary) by it self if use "interceptor"
class FRequestHandlerFactory : IResourceRequestHandlerFactory
{
public FRequestHandlerFactory ()
{
InterceptorData = new InterceptorHandler();
}
public bool HasHandlers => true;
public InterceptorHandler InterceptorData { get; }
public IResourceRequestHandler GetResourceRequestHandler(...)
{
return Interceptor; //auto add cookie header
//return null; //normal behavior without cookie like real chrome
}
}
class InterceptorHandler : ResourceRequestHandler
{
private MemoryStream _memoryStream;
protected override void OnResourceLoadComplete(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response, UrlRequestStatus status, long receivedContentLength)
{ ... }
protected override IResponseFilter GetResourceResponseFilter(IWebBrowser chromiumWebBrowser, IBrowser browser, IFrame frame, IRequest request, IResponse response)
{
_memoryStream = new MemoryStream();
return new CefSharp.ResponseFilter.StreamResponseFilter(_memoryStream);
}
}
Test to replicate issue: https://reqbin.com/req/v0crmky0/rest-api-post-example
if you click send a generic packet and intercept it /api/v1/requests call you will see if no Intercept class not have cookie in request header and have it if you enable Interceptor class.
Look like while using ResourceRequestHandler class auto add Cookie header for request made by Javascript
Img 1 with interceptor class show cookie: https://postimg.cc/DSnvPnFW
Img 2 without interceprtor class not have cookie https://postimg.cc/0zn8tF2V