using System.Collections.Specialized;
using CefSharp;
using CefSharp.Handler;
using TweetDuck.Core.Handling.General;

namespace TweetDuck.Core.Handling{
    class RequestHandlerBase : DefaultRequestHandler{
        private readonly bool autoReload;

        public RequestHandlerBase(bool autoReload){
            this.autoReload = autoReload;
        }

        public override bool OnOpenUrlFromTab(IWebBrowser browserControl, IBrowser browser, IFrame frame, string targetUrl, WindowOpenDisposition targetDisposition, bool userGesture){
            return LifeSpanHandler.HandleLinkClick(browserControl, targetDisposition, targetUrl);
        }

        public override CefReturnValue OnBeforeResourceLoad(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request, IRequestCallback callback){
            if (ContextMenuBase.HasDevTools){
                NameValueCollection headers = request.Headers;
                headers.Remove("x-devtools-emulate-network-conditions-client-id");
                request.Headers = headers;
            }

            return base.OnBeforeResourceLoad(browserControl, browser, frame, request, callback);
        }
        
        public override void OnRenderProcessTerminated(IWebBrowser browserControl, IBrowser browser, CefTerminationStatus status){
            if (autoReload){
                browser.Reload();
            }
        }
    }
}