private void OpenDeveloperToolsCommand(object sender, EventArgs e) { var host = MainView.CurrentBrowser.GetHost(); var wi = CefWindowInfo.Create(); wi.SetAsPopup(IntPtr.Zero, "DevTools"); host.ShowDevTools(wi, new DevToolsWebClient(), new CefBrowserSettings()); // Process.Start(devToolsUrl); }
/// <summary> /// 创建浏览器 /// </summary> private void CreateBrowser() { var windowInfo = CefWindowInfo.Create(); windowInfo.SetAsChild(Handle, new CefRectangle(0, 0, Width, Height)); var client = new WebClient(this); var settings = new CefBrowserSettings(); CefBrowserHost.CreateBrowser(windowInfo, client, settings, Url ?? "about:blank"); }
private LVCefClient _lvCefClient; //keeping references to anything CEF makes it crashy, release reference after browser made public void openDevTools() { if (_browser != null) { var host = _browser.GetHost(); var wi = CefWindowInfo.Create(); wi.SetAsPopup(IntPtr.Zero, "DevTools"); host.ShowDevTools(wi, new DevToolsWebClient(), new CefBrowserSettings(), new CefPoint(0, 0)); } }
public void showDevTools(bool firstWindow = true) { if (this.Browser != null) { CefBrowser b = firstWindow ? this.Browser : this.LastBrowser; CefWindowInfo wi = CefWindowInfo.Create(); wi.SetAsPopup(b.GetHost().GetWindowHandle(), "DevTools"); b.GetHost().ShowDevTools(wi, this.Client, new CefBrowserSettings(), new CefPoint()); } }
protected override void OnAfterCreated(CefBrowser browser) { base.OnAfterCreated(browser); var wi = CefWindowInfo.Create(); var host = browser.GetHost(); wi.SetAsPopup(IntPtr.Zero, "DevTools"); host.ShowDevTools(wi, new DevToolsWebClient(), new CefBrowserSettings(), new CefPoint(0, 0)); }
/// <summary> /// ShowDevTools. /// </summary> public void ShowDevTools() { var host = this.WebBrowser.CefBrowser.GetHost(); var wi = CefWindowInfo.Create(); wi.SetAsPopup(IntPtr.Zero, "DevTools"); var client = new CefGlue.Lib.Browser.WebClient(this.WebBrowser); host.ShowDevTools(wi, client, this.BrowserSettings, new CefPoint(0, 0)); }
private void StartCef() { #if UNITY_EDITOR CefRuntime.Load(Path.Combine(Application.dataPath, "Plugins", "Cef", "Windows")); #else CefRuntime.Load(); #endif var cefMainArgs = new CefMainArgs(new string[] { }); var cefApp = new OffscreenCEFClient.OffscreenCEFApp(); // This is where the code path diverges for child processes. if (CefRuntime.ExecuteProcess(cefMainArgs, cefApp, IntPtr.Zero) != -1) { Debug.LogError("Could not start the secondary process."); } var cefSettings = new CefSettings { //ExternalMessagePump = true, MultiThreadedMessageLoop = false, SingleProcess = true, LogSeverity = CefLogSeverity.Verbose, LogFile = "cef.log", WindowlessRenderingEnabled = true, NoSandbox = true }; // Start the browser process (a child process). CefRuntime.Initialize(cefMainArgs, cefSettings, cefApp, IntPtr.Zero); // Instruct CEF to not render to a window. CefWindowInfo cefWindowInfo = CefWindowInfo.Create(); cefWindowInfo.SetAsWindowless(IntPtr.Zero, true); // Settings for the browser window itself (e.g. enable JavaScript?). CefBrowserSettings cefBrowserSettings = new CefBrowserSettings() { }; Debug.Log("Start with window: " + this.windowWidth + ", " + this.windowHeight); // Initialize some of the custom interactions with the browser process. this.cefClient = new OffscreenCEFClient( this.windowWidth, this.windowHeight, this.hideScrollbars, this.BrowserTexture, this ); // Start up the browser instance. CefBrowserHost.CreateBrowser(cefWindowInfo, this.cefClient, cefBrowserSettings, string.IsNullOrEmpty(this.overlayUrl) ? "http://www.google.com" : this.overlayUrl); }
private void CreateBrowser() { var windowInfo = CefWindowInfo.Create(); var windowHandle = InteropLinux.gtk_widget_get_window(_container.Handle); var xid = InteropLinux.gdk_x11_window_get_xid(windowHandle); windowInfo.SetAsChild(xid, new CefRectangle(0, 0, AllocatedWidth, AllocatedHeight)); Browser.Create(windowInfo, _startUrl); _initialized = true; _startUrl = null; }
public Menu( CefApp menuCeffApp, CefMainArgs mainArgs, InputProcessor inputProcessor, MenuBrowserClient browserClient, StateManager stateManager, EventBus eventBus ) { // State Initialization _buttons = (GameControllerButton[])Enum.GetValues(typeof(GameControllerButton)); _analogs = (GameControllerAnalog[])Enum.GetValues(typeof(GameControllerAnalog)); _eventTokenList = new List <SubscriptionToken>(); _eventBus = eventBus; #if (DEBUG) var logSeverity = CefLogSeverity.Error; #else var logSeverity = CefLogSeverity.Error; #endif var settings = new CefSettings { WindowlessRenderingEnabled = true, LogSeverity = logSeverity, NoSandbox = true }; CefRuntime.Initialize(mainArgs, settings, menuCeffApp, IntPtr.Zero); // Instruct CEF to not render to a window at all. var cefWindowInfo = CefWindowInfo.Create(); cefWindowInfo.SetAsWindowless(IntPtr.Zero, false); var browserSettings = new CefBrowserSettings() { WindowlessFrameRate = 60, }; _inputProcessor = inputProcessor; _browserClient = browserClient; _browser = CefBrowserHost.CreateBrowserSync( cefWindowInfo, _browserClient, browserSettings, "http://localhost:4200" ); _eventTokenList.Add(_eventBus.Subscribe <OpenMenuEvent>(OnOpenMenuEvent)); _eventTokenList.Add(_eventBus.Subscribe <CloseMenuEvent>(OnCloseMenuEvent)); var game = stateManager.GetGameById("Super Mario World (USA)"); eventBus.Publish(new LoadGameEvent(game)); }
private void StartCef() { #if UNITY_EDITOR CefRuntime.Load("./Assets/Plugins/x86_64"); #else CefRuntime.Load(); #endif var cefMainArgs = new CefMainArgs(new string[] { }); var cefApp = new OffscreenCEFClient.OffscreenCEFApp(); // This is where the code path diverges for child processes. if (CefRuntime.ExecuteProcess(cefMainArgs, cefApp, IntPtr.Zero) != -1) { Debug.LogError("Could not start the secondary process."); } var cefSettings = new CefSettings { //ExternalMessagePump = true, MultiThreadedMessageLoop = false, SingleProcess = true, LogSeverity = CefLogSeverity.Verbose, LogFile = "cef.log", WindowlessRenderingEnabled = true, NoSandbox = true, }; // Start the browser process (a child process). CefRuntime.Initialize(cefMainArgs, cefSettings, cefApp, IntPtr.Zero); // Instruct CEF to not render to a window. CefWindowInfo cefWindowInfo = CefWindowInfo.Create(); cefWindowInfo.SetAsWindowless(IntPtr.Zero, false); // Settings for the browser window itself (e.g. enable JavaScript?). CefBrowserSettings cefBrowserSettings = new CefBrowserSettings() { BackgroundColor = new CefColor(255, 60, 85, 115), JavaScript = CefState.Enabled, JavaScriptAccessClipboard = CefState.Disabled, JavaScriptCloseWindows = CefState.Disabled, JavaScriptDomPaste = CefState.Disabled, JavaScriptOpenWindows = CefState.Disabled, LocalStorage = CefState.Disabled }; // Initialize some of the custom interactions with the browser process. this.cefClient = new OffscreenCEFClient(this.windowSize, this.hideScrollbars); // Start up the browser instance. CefBrowserHost.CreateBrowser(cefWindowInfo, this.cefClient, cefBrowserSettings, string.IsNullOrEmpty(this.url) ? "http://www.google.com" : this.url); }
protected override void OnCreated(object sender, CreatedEventArgs createdEventArgs) { Handle = createdEventArgs.Window; WinXID = createdEventArgs.WinXID; Browser.HostHandle = createdEventArgs.Window; var windowInfo = CefWindowInfo.Create(); windowInfo.SetAsChild(createdEventArgs.WinXID, new CefRectangle(0, 0, _config.WindowOptions.Size.Width, _config.WindowOptions.Size.Height)); Browser.Create(windowInfo); }
public void ShowDevTools(bool firstwindow = true) { this.allBrowsersSemaphore.Wait(); if (this.allBrowsers.Count > 0) { var b = firstwindow ? this.allBrowsers.First() : this.allBrowsers.Last(); var wi = CefWindowInfo.Create(); wi.SetAsPopup(b.GetHost().GetWindowHandle(), "DevTools"); b.GetHost().ShowDevTools(wi, this.Client, new CefBrowserSettings(), new CefPoint()); } this.allBrowsersSemaphore.Release(); }
/// <summary> /// Opens the developer tools. /// </summary> private void OpenDeveloperTools() { Application.Current.InvokeOnMain(() => { var windowInfo = CefWindowInfo.Create(); windowInfo.SetAsPopup(IntPtr.Zero, "Developer tools"); windowInfo.Width = 1200; windowInfo.Height = 500; CefBrowser.GetHost().ShowDevTools(windowInfo, new DeveloperToolsClient(), new CefBrowserSettings(), new CefPoint(0, 0)); }); }
void CreateBrowser() { if (!isCefRuntimeInitialized) { InitializeCefRuntime(); } if (isCefRuntimeInitialized) { viewSize = GetNeededSize(); var windowInfo = CefWindowInfo.Create(); windowInfo.SetAsWindowless(IntPtr.Zero, false); var client = new WebClient(this); var settings = new CefBrowserSettings { // AuthorAndUserStylesDisabled = false, }; //string r = GetURLFromVirtualFileName( "Maps\\Engine Features Demo\\Resources\\GUI\\FileTest.html" ); //r = PathUtils.GetRealPathByVirtual( "Maps\\Engine Features Demo\\Resources\\GUI\\FileTest.html" ); //CefBrowserHost.CreateBrowser( windowInfo, client, settings, r );//"about:blank" ); //if( !string.IsNullOrEmpty( startUrl ) ) // LoadURL( startUrl ); //LoadFileByVirtualFileName( "Maps\\Engine Features Demo\\Resources\\GUI\\FileTest.html" ); string url = "about:blank"; if (!string.IsNullOrEmpty(StartURL)) { url = StartURL; } else if (!string.IsNullOrEmpty(StartFile)) { url = GetURLByFileName(StartFile); } CefBrowserHost.CreateBrowser(windowInfo, client, settings, url); //CefBrowserHost.CreateBrowser( windowInfo, client, settings, "about:blank" ); //if( !string.IsNullOrEmpty( startFile ) ) // LoadFileByVirtualFileName( startFile ); //else if( !string.IsNullOrEmpty( startUrl ) ) // LoadURL( startUrl ); //CefBrowserHost.CreateBrowser( windowInfo, client, settings, !string.IsNullOrEmpty( StartURL ) ? StartURL : "about:blank" ); //if( !string.IsNullOrEmpty( startUrl ) ) // LoadURL( startUrl ); } }
protected override void OnHandleCreated(EventArgs e) { base.OnHandleCreated(e); if (!DesignMode) { var windowInfo = CefWindowInfo.Create(); windowInfo.SetAsChild(Handle, new CefRectangle { X = 0, Y = 0, Width = Width, Height = Height }); _core.Create(windowInfo); } }
private static void Main(string[] args) { // Load CEF. This checks for the correct CEF version. CefRuntime.Load(); // Start the secondary CEF process. var cefMainArgs = new CefMainArgs(new string[0]); var cefApp = new DemoCefApp(); // This is where the code path divereges for child processes. if (CefRuntime.ExecuteProcess(cefMainArgs, cefApp) != -1) { Console.Error.WriteLine("CefRuntime could not the secondary process."); } // Settings for all of CEF (e.g. process management and control). var cefSettings = new CefSettings { SingleProcess = false, MultiThreadedMessageLoop = true }; // Start the browser process (a child process). CefRuntime.Initialize(cefMainArgs, cefSettings, cefApp); // Instruct CEF to not render to a window at all. CefWindowInfo cefWindowInfo = CefWindowInfo.Create(); cefWindowInfo.SetAsOffScreen(IntPtr.Zero); // Settings for the browser window itself (e.g. should JavaScript be enabled?). var cefBrowserSettings = new CefBrowserSettings(); // Initialize some the cust interactions with the browser process. // The browser window will be 1280 x 720 (pixels). var cefClient = new DemoCefClient(1280, 720); // Start up the browser instance. string url = "http://www.reddit.com/"; CefBrowserHost.CreateBrowser(cefWindowInfo, cefClient, cefBrowserSettings, url); // Hang, to let the browser to do its work. Console.WriteLine("Press a key at any time to end the program."); Console.ReadKey(); // Clean up CEF. CefRuntime.Shutdown(); }
protected override bool OnContextMenuCommand(CefBrowser browser, CefFrame frame, CefContextMenuParams state, int commandId, CefEventFlags eventFlags) { if (commandId == ShowDevTools) { var host = browser.GetHost(); var wi = CefWindowInfo.Create(); wi.SetAsPopup(IntPtr.Zero, "DevTools"); host.ShowDevTools(wi, new DevToolsWebClient(), new CefBrowserSettings(), new CefPoint(0, 0)); } if (commandId == CloseDevTools) { browser.GetHost().CloseDevTools(); } return(false); }
public override void CreateControl() { base.CreateControl(); if (!_controlCreated && !DesignMode) { if (!ParagonRuntime.IsInitialized) { ParagonRuntime.Initialize(); } _client = new CefWebClient(this); if (!IsPopup && _browser == null) { var settings = new CefBrowserSettings { Java = CefState.Disabled }; using (AutoStopwatch.TimeIt("Creating browser")) { var info = CefWindowInfo.Create(); var ea = new BrowserCreateEventArgs(); using (AutoStopwatch.TimeIt("Raising BeforeBrowserCreate event")) { BeforeBrowserCreate.Raise(this, ea); } _router = ea.Router; _currentUrl = _sourceUrl; if (IntPtr.Zero != ParentHandle) { RECT rect = new RECT(); Win32Api.GetClientRect(ParentHandle, ref rect); info.SetAsChild(ParentHandle, new CefRectangle(rect.Left, rect.Top, rect.Width, rect.Height)); } Logger.Info(string.Format("OnHandleCreated - Creating a browser with url {0}", _currentUrl)); CefBrowserHost.CreateBrowser(info, _client, settings, _currentUrl); } } _controlCreated = true; } }
private CefWindowInfo getCefWindowInfo() { Debug.WriteLine(DBGPREFIX + "getCefWindowInfo"); if (_controlHandleCreated) { var windowInfo = CefWindowInfo.Create(); windowInfo.SetAsChild(Handle, new CefRectangle { X = 0, Y = 0, Width = Width, Height = Height }); return(windowInfo); } else { throw new CefRuntimeException("LVCefControl handle must be created before it can be used (added to a form, etc)"); } }
public CefGlueBrowser(IntPtr parentHandle, CefApp app, CefConfig config) { this.ParentHandle = parentHandle; this.App = app; this.Config = config; var windowInfo = CefWindowInfo.Create(); windowInfo.SetAsChild(parentHandle, new CefRectangle(0, 0, config.Width, config.Height)); this.WebBrowser = new WebBrowser(this); this.WebBrowser.Created += WebBrowser_Created; this.Client = new WebClient(this.WebBrowser); CefBrowserHost.CreateBrowser(windowInfo, Client, config.CefBrowserSettings, config.StartUrl); }
//BSCompletionCallback bsc = new BSCompletionCallback(); //BSSetCookieCallback bscc = new BSSetCookieCallback(); public BsCtl(Control ctl, string url, string type) { Parent = ctl; var cwi = CefWindowInfo.Create(); cwi.SetAsChild(Parent.Handle, new CefRectangle(0, 0, Parent.Width, Parent.Height)); var bc = new BsClient(type, ctl); bc.OnCreated += bc_OnCreated; var bss = new CefBrowserSettings() { }; CefBrowserHost.CreateBrowser(cwi, bc, bss, url);//,rc); Parent.SizeChanged += Parent_SizeChanged; }
public XiboCefWebBrowser() { SetStyle( ControlStyles.ContainerControl | ControlStyles.ResizeRedraw | ControlStyles.FixedWidth | ControlStyles.FixedHeight | ControlStyles.StandardClick | ControlStyles.UserMouse | ControlStyles.SupportsTransparentBackColor | ControlStyles.StandardDoubleClick | ControlStyles.OptimizedDoubleBuffer | ControlStyles.CacheText | ControlStyles.EnableNotifyMessage | ControlStyles.DoubleBuffer | ControlStyles.OptimizedDoubleBuffer | ControlStyles.UseTextForAccessibility | ControlStyles.Opaque, false); SetStyle( ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.Selectable, true); StartUrl = "about:blank"; var windowInfo = CefWindowInfo.Create(); windowInfo.SetAsChild(Handle, new CefRectangle { X = 0, Y = 0, Width = Width, Height = Height }); var client = CreateWebClient(); var settings = BrowserSettings; if (settings == null) { settings = new CefBrowserSettings { } } ; CefBrowserHost.CreateBrowser(windowInfo, client, settings, StartUrl); }
public IDisposable GetDeveloperToolsControl(CefPoint element, CefWindowInfo info = null, CefBrowserSettings settings = null) { if (_browser != null) { var ctl = new DevToolsWebBrowser(); ctl.Disposed += (sender, args) => { if (_browser != null) { _browser.GetHost().CloseDevTools(); } }; ctl.CreateControl(); if (info == null) { info = CefWindowInfo.Create(); info.Width = (int)ActualWidth; info.Height = (int)ActualHeight; } if (ctl.ParentHandle != IntPtr.Zero) { info.SetAsChild(ctl.ParentHandle, new CefRectangle(0, 0, info.Width, info.Height)); } if (settings == null) { settings = new CefBrowserSettings(); } if (element.X > int.MinValue && element.Y > int.MinValue) { _browser.GetHost().ShowDevTools(info, ctl.Client, settings, element); } else { var defaultCefPoint = new CefPoint(0, 0); _browser.GetHost().ShowDevTools(info, ctl.Client, settings, defaultCefPoint); } return(ctl); } return(null); }
/// <summary> /// 打开或者关闭DevTools /// </summary> /// <param name="_core"></param> /// <param name="browser"></param> public static void DevTools(CefWebBrowser _core, CefBrowser browser) { MainForm.Instance.Invoke(new Action(() => { if (!_core.DevToolsOpen) { if (MainForm.Instance.faTabStrip1.SelectedItem.DevToolsName == null || MainForm.Instance.faTabStrip1.SelectedItem.DevToolsName == string.Empty) { CefWindowInfo CefWindowInfo1; int devWidth = MainForm.Instance.faTabStrip1.SelectedItem.Width; MainForm.Instance.faTabStrip1.SelectedItem.splic.Panel1.AutoScroll = true; MainForm.Instance.faTabStrip1.SelectedItem.splic.Panel2.AutoScroll = true; MainForm.Instance.faTabStrip1.SelectedItem.splic.Panel2Collapsed = false; MainForm.Instance.faTabStrip1.SelectedItem.Tag = _core; CefWindowInfo1 = CefWindowInfo.Create(); CefWindowInfo1.X = devWidth / 2; CefWindowInfo1.Y = 0; CefRectangle rectangle = new CefRectangle(0, 0, devWidth / 2, _core.Height); //此举是为了多个Devtools打开的情况,要让后面的FindwindowEX函数能找到这个窗口的句柄 MainForm.Instance.faTabStrip1.SelectedItem.DevToolsName = "CefDevTools" + DateTime.Now.ToString("yyyyMMddHHmmss"); CefWindowInfo1.SetAsWindow(MainForm.Instance.faTabStrip1.SelectedItem.splic.Panel2.Handle, rectangle, MainForm.Instance.faTabStrip1.SelectedItem.DevToolsName); browser.GetHost().ShowDevTools(CefWindowInfo1, new DevFormClient(), new CefBrowserSettings(), new CefPoint(0, 0)); browser.GetHost().SetFocus(true); _core.DevToolsOpen = MainForm.Instance.faTabStrip1.SelectedItem.DevToolsOpen = true; MainForm.Instance.faTabStrip1.SelectedItem.ItemBrowser = browser; MainForm.Instance.faTabStrip1.SelectedItem.splic.BackColor = SystemColors.ControlDark; } else { MainForm.Instance.faTabStrip1.SelectedItem.splic.Panel2Collapsed = false; _core.DevToolsOpen = MainForm.Instance.faTabStrip1.SelectedItem.DevToolsOpen = true; MainForm.Instance.faTabStrip1.SelectedItem.ItemBrowser = browser; } } else { MainForm.Instance.faTabStrip1.SelectedItem.splic.Panel2Collapsed = true; _core.DevToolsOpen = MainForm.Instance.faTabStrip1.SelectedItem.DevToolsOpen = false; //_core = null; MainForm.Instance.faTabStrip1.SelectedItem.ItemBrowser = null; // MainForm.Instance.faTabStrip1.SelectedItem.DevToolsName = null; ResizeWindow(browser.GetHost().GetWindowHandle(), MainForm.Instance.faTabStrip1.SelectedItem.Width, MainForm.Instance.faTabStrip1.SelectedItem.Height); GC.Collect(); } })); }
public SharpDXCefBrowser(GraphicsDevice GraphicsDevice, int width = 1024, int height = 768) { Width = width; Height = height; var windowInfo = CefWindowInfo.Create(); windowInfo.SetAsOffScreen(IntPtr.Zero); windowInfo.TransparentPainting = true; var cefBrowserSettings = new CefBrowserSettings(); _cefClient = new SharpDXCefClient(this, GraphicsDevice); CefBrowserHost.CreateBrowser(windowInfo, _cefClient, cefBrowserSettings); }
public void Show(int x, int y) { if (!isShown) { initialX = x; initialY = y; window.ShowAll(); return; } var xid = InteropLinux.gdk_x11_window_get_xid(InteropLinux.gtk_widget_get_window(window.Handle)); var windowInfo = CefWindowInfo.Create(); windowInfo.SetAsChild(xid, new CefRectangle(0, 0, window.AllocatedWidth, window.AllocatedHeight)); host.ShowDevTools(windowInfo, new DummyClient(), new CefBrowserSettings(), new CefPoint(x, y)); window.Present(); }
private void CreateBrowser() { var windowInfo = CefWindowInfo.Create(); windowInfo.SetAsChild(m_browserConfig.ParentHandle, m_browserConfig.CefRectangle); var client = CreateWebClient(); var settings = BrowserSettings; if (settings == null) settings = new CefBrowserSettings { }; settings.DefaultEncoding = "UTF-8"; settings.FileAccessFromFileUrls = CefState.Enabled; settings.UniversalAccessFromFileUrls = CefState.Enabled; settings.WebSecurity = CefState.Enabled; CefBrowserHost.CreateBrowser(windowInfo, client, settings, StartUrl); }
/// <summary> /// The create browser. /// </summary> private void CreateBrowser() { var windowInfo = CefWindowInfo.Create(); windowInfo.SetAsChild(this.mBrowserConfig.ParentHandle, this.mBrowserConfig.CefRectangle); var client = this.CreateWebClient(); var settings = this.BrowserSettings ?? new CefBrowserSettings(); settings.DefaultEncoding = "UTF-8"; settings.FileAccessFromFileUrls = CefState.Enabled; settings.UniversalAccessFromFileUrls = CefState.Enabled; settings.WebSecurity = CefState.Disabled; CefBrowserHost.CreateBrowser(windowInfo, client, settings, this.StartUrl); }
public OffscreenBrowser() { var parentHandle = IntPtr.Zero; var windowInfo = CefWindowInfo.Create(); windowInfo.SetAsChild(parentHandle, new CefRectangle(0, 0, 1280, 800)); windowInfo.SetAsWindowless(parentHandle, true); var client = new OffscreenCefClient(this); var settings = new CefBrowserSettings { BackgroundColor = new CefColor(0, 0, 0, 0) }; CefBrowserHost.CreateBrowser(windowInfo, client, settings); client.LoadingStateChanged += (browser, loading, back, forward) => LoadingStateChanged?.Invoke(browser, loading, back, forward); }
protected override bool OnKeyEvent(CefBrowser browser, CefKeyEvent keyEvent, IntPtr osEvent) { if (keyEvent.WindowsKeyCode == Convert.ToInt32(Keys.F5)) { browser.Reload(); } if (keyEvent.WindowsKeyCode == Convert.ToInt32(Keys.F12)) { CefWindowInfo windowInfo = CefWindowInfo.Create(); windowInfo.SetAsPopup(IntPtr.Zero, "DevTools"); browser.GetHost().ShowDevTools(windowInfo, new CefWebDevToolsClient(), new CefBrowserSettings(), new CefPoint(0, 0)); } return(base.OnKeyEvent(browser, keyEvent, osEvent)); }