/// <summary> /// Initializes a new instance of the <see cref="CefGlueClient"/> class. /// </summary> /// <param name="clientParams"> /// The client params. /// </param> public CefGlueClient(CefGlueClientParams clientParams) { CoreBrowser = clientParams.Browser; mLifeSpanHandler = clientParams.LifeSpanHandler; mLoadHandler = clientParams.LoadHandler; mRequestHandler = clientParams.RequestHandler; mDisplayHandler = clientParams.DisplayHandler; mContextMenuHandler = clientParams.ContextMenuHandler; mFocusHandler = clientParams.FocusHandler; mKeyboardHandler = clientParams.KeyboardHandler; mJsDialogHandler = clientParams.JsDialogHandler; mDialogHandler = clientParams.DialogHandler; mDragHandler = clientParams.DragHandler; mDownloadHandler = clientParams.DownloadHandler; mFindHandler = clientParams.FindHandler; }
/// <summary> /// Initializes a new instance of the <see cref="CefGlueClient"/> class. /// </summary> /// <param name="clientParams"> /// The client params. /// </param> public CefGlueClient(CefGlueClientParams clientParams) { CoreBrowser = clientParams.Browser; _lifeSpanHandler = clientParams.LifeSpanHandler; _loadHandler = clientParams.LoadHandler; _requestHandler = clientParams.RequestHandler; _displayHandler = clientParams.DisplayHandler; _contextMenuHandler = clientParams.ContextMenuHandler; _focusHandler = clientParams.FocusHandler; _keyboardHandler = clientParams.KeyboardHandler; _jsDialogHandler = clientParams.JsDialogHandler; _dialogHandler = clientParams.DialogHandler; _dragHandler = clientParams.DragHandler; _downloadHandler = clientParams.DownloadHandler; _findHandler = clientParams.FindHandler; }
/// <summary> /// The create. /// </summary> /// <param name="windowInfo"> /// The window info. /// </param> public void Create(CefWindowInfo windowInfo) { if (mClient == null) { IoC.RegisterInstance(typeof(CefGlueBrowser), typeof(CefGlueBrowser).FullName, this); mClient = new CefGlueClient(CefGlueClientParams.Create(this)); } mSettings = this.mSettings ?? new CefBrowserSettings(); mSettings.DefaultEncoding = "UTF-8"; mSettings.FileAccessFromFileUrls = CefState.Enabled; mSettings.UniversalAccessFromFileUrls = CefState.Enabled; mSettings.WebSecurity = CefState.Enabled; CefBrowserHost.CreateBrowser(windowInfo, mClient, mSettings, StartUrl); }
/// <summary> /// The create. /// </summary> /// <param name="browser"> /// The browser. /// </param> /// <returns> /// The <see cref="CefGlueClientParams"/>. /// </returns> public static CefGlueClientParams Create(CefGlueBrowser browser) { var clientParams = new CefGlueClientParams { Browser = browser }; try { foreach (var enumKey in CefCustomHandlerFakeTypes.GetAllCustomHandlerKeys()) { object instance = null; var service = CefCustomHandlerFakeTypes.GetHandlerType(enumKey); var keyStr = enumKey.EnumToString(); try { if (IoC.IsRegistered(service, keyStr)) { instance = IoC.GetInstance(service, keyStr); } } catch (Exception exception) { Log.Error(exception); } switch (enumKey) { case CefHandlerKey.LifeSpanHandler: if (instance is CefLifeSpanHandler spanHandler) { clientParams.LifeSpanHandler = spanHandler; } else { clientParams.LifeSpanHandler = new CefGlueLifeSpanHandler(); } break; case CefHandlerKey.LoadHandler: if (instance is CefLoadHandler loadHandler) { clientParams.LoadHandler = loadHandler; } else { clientParams.LoadHandler = new CefGlueLoadHandler(); } break; case CefHandlerKey.RequestHandler: if (instance is CefRequestHandler requestHandler) { clientParams.RequestHandler = requestHandler; } else { clientParams.RequestHandler = new CefGlueRequestHandler(); } break; case CefHandlerKey.DisplayHandler: if (instance is CefDisplayHandler displayHandler) { clientParams.DisplayHandler = displayHandler; } else { clientParams.DisplayHandler = new CefGlueDisplayHandler(); } break; case CefHandlerKey.ContextMenuHandler: if (instance is CefContextMenuHandler menuHandler) { clientParams.ContextMenuHandler = menuHandler; } else { clientParams.ContextMenuHandler = new CefGlueContextMenuHandler(); } break; case CefHandlerKey.FocusHandler: if (instance is CefFocusHandler focusHandler) { clientParams.FocusHandler = focusHandler; } break; case CefHandlerKey.KeyboardHandler: if (instance is CefKeyboardHandler keyboardHandler) { clientParams.KeyboardHandler = keyboardHandler; } break; case CefHandlerKey.JsDialogHandler: if (instance is CefJSDialogHandler jsDialogHandler) { clientParams.JsDialogHandler = jsDialogHandler; } break; case CefHandlerKey.DialogHandler: if (instance is CefDialogHandler dialogHandler) { clientParams.DialogHandler = dialogHandler; } break; case CefHandlerKey.DragHandler: if (instance is CefDragHandler dragHandler) { clientParams.DragHandler = dragHandler; } break; case CefHandlerKey.DownloadHandler: if (instance is CefDownloadHandler downloadHandler) { clientParams.DownloadHandler = downloadHandler; } break; case CefHandlerKey.FindHandler: if (instance is CefFindHandler handler) { clientParams.FindHandler = handler; } break; } } } catch (Exception exception) { Log.Error(exception); } return(clientParams); }