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);
        }
 protected override void OnBeforeClose(CefBrowser browser)
 {
     _ctl.OnBeforeClose(browser);
     _ctl = null;
 }
 public DefToolsLifeSpanHandler(DevToolsWebBrowser ctl)
 {
     _ctl = ctl;
 }
 public void Dispose()
 {
     _ctl = null;
 }
 public DevToolsWebClient(DevToolsWebBrowser ctl)
 {
     _ctl             = ctl;
     _lifeSpanHandler = new DefToolsLifeSpanHandler(ctl);
 }