Ejemplo n.º 1
0
        /// <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();
            }
        }