protected virtual void Dispose(bool disposing) { if (!disposing) { return; } if (_windowManager != null) { _windowManager.NoWindowsOpen -= OnWindowManagerNoWindowsOpen; _windowManager.CreatingWindow -= OnWindowManagerCreatingWindow; _windowManager.CreatedWindow -= OnWindowManagerCreatedWindow; _windowManager = null; } _schemeHandler = null; if (_eventPageLaunchTimer != null) { _eventPageLaunchTimer.Dispose(); _eventPageLaunchTimer = null; } if (_router != null) { _router.Dispose(); _router = null; } if (_eventPageBrowser != null) { _eventPageBrowser.Dispose(); _eventPageBrowser = null; } if (_appRegistrationToken != null) { _appRegistrationToken.Dispose(); _appRegistrationToken = null; } if (_setCookieEvent != null) { _setCookieEvent.Close(); _setCookieEvent = null; } if (_eventPageUnloadTimer != null) { _eventPageUnloadTimer.Dispose(); _eventPageUnloadTimer = null; } }
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; } }
protected override void Dispose(bool disposing) { base.Dispose(disposing); if (_browser != null && disposing) { ParagonRuntime.RemoveBrowser(this); if (_widgetWindowZOrderHandler != null) { _widgetWindowZOrderHandler.Dispose(); _widgetWindowZOrderHandler = null; } if (_containerWindowMoveListener != null) { _containerWindowMoveListener.Dispose(); _containerWindowMoveListener = null; } if (_client != null) { _client.Dispose(); _client = null; } if (_router != null) { // Router should not be disposed here since it is shared by all cefwebbrowsers //_router.Dispose(); _router = null; } if (_browser != null) { _browser.Dispose(); _browser = null; } _browserWindowHandle = IntPtr.Zero; } }
protected virtual CefWebBrowser CreatePopupBrowser(int parentId, IBrowserSideMessageRouter router) { return(new CefWebBrowser(parentId, router)); }
protected CefWebBrowser(int parentId, IBrowserSideMessageRouter router) : this() { _parentBrowserId = parentId; _router = router; }