using CPF; using CPF.Cef; using CPF.Cef.JSExtenstions; using CPF.Mac.CoreText; using CPF.Reflection; using System; using System.Collections.Generic; using System.Linq; using System.Runtime.ConstrainedExecution; using System.Text; using System.Threading.Tasks; namespace AKS.EnterpriseLibrary.WebBrowser { public class CusWebBrowser : CPF.Cef.WebBrowser { public CusCefRequestHandler CusRequest = new CusCefRequestHandler(); public CusWebBrowser() { } protected override CpfCefClient OnCreateWebBrowser(CefBrowserSettings settings) { CpfCefClient cefClient = base.OnCreateWebBrowser(settings); cefClient.RequestHandler = CusRequest; cefClient.ContextMenuHandler = new MenuHandler(); cefClient.DragHandler = new DragHandler(); return cefClient; } } public class CusCefRequestHandler : CpfCefRequestHandler { public delegate void CusResquestDelegate(CefPostData postData, CefRequest request); public event CusResquestDelegate CusResquestEvent; public CusCefRequestHandler() { } protected override CefResourceRequestHandler GetResourceRequestHandler(CefBrowser browser, CefFrame frame, CefRequest request, bool isNavigation, bool isDownload, string requestInitiator, ref bool disableDefaultHandling) { CusResquestEvent(request.PostData, request); return null; } } public class DragHandler : CpfCefDragHandler { protected override bool OnDragEnter(CefBrowser browser, CefDragData dragData, CefDragOperationsMask mask) { return true; } protected override void OnDraggableRegionsChanged(CefBrowser browser, CefFrame frame, CefDraggableRegion[] regions) { } } public class MenuHandler : CpfCefContextMenuHandler { protected override void OnBeforeContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams state, CefMenuModel model) { model.Clear(); } protected override bool OnContextMenuCommand(CefBrowser browser, CefFrame frame, CefContextMenuParams state, int commandId, CefEventFlags eventFlags) { return false; } protected override void OnContextMenuDismissed(CefBrowser browser, CefFrame frame) { } protected override bool RunContextMenu(CefBrowser browser, CefFrame frame, CefContextMenuParams parameters, CefMenuModel model, CefRunContextMenuCallback callback) { return false; } } }