/// <summary> /// This method is called before a resource is loaded, if a valid resource handler /// is returned then this resource handler would serve the response of web request. /// </summary> public override IResourceHandler GetResourceHandler(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request) { try { DefaultResourceHandlerFactoryItem handlerItem; #if DEBUG if (logger != null) { logger.Log("Requested URL", request.Url); } #endif if (!Handlers.TryGetValue(request.Url, out handlerItem)) { IResourceHandler handler = this.GetResourceHandler(request); // TODO - verify bool param - determines whether or not the handler // should be used once(true) or until manually unregistered handlerItem = new DefaultResourceHandlerFactoryItem(handler, false); } return(handlerItem.Handler); } finally { request.Dispose(); } }
/// <summary> /// This method is called before a resource is loaded, if a valid resource handler /// is returned then this resource handler would serve the response of web request. /// </summary> public override IResourceHandler GetResourceHandler(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request) { try { DefaultResourceHandlerFactoryItem handlerItem; #if DEBUG if (logger != null) { logger.Log("Requested URL", request.Url); } #endif // Create a handlerItem for the new resource, // if the resource has already been loaded don't load it again if (!Handlers.TryGetValue(request.Url, out handlerItem)) { IResourceHandler handler = this.GetResourceHandler(request); // Make sure the handler is unregistered after use // See: https://cefsharp.github.io/api/63.0.0/html/T_CefSharp_DefaultResourceHandlerFactoryItem.htm handlerItem = new DefaultResourceHandlerFactoryItem(handler, true); } return(handlerItem.Handler); } finally { request.Dispose(); } }