Beispiel #1
0
        private void FreeUnmanagedResources()
        {
            browser = null;

            if (parentFormMessageInterceptor != null)
            {
                parentFormMessageInterceptor.Dispose();
                parentFormMessageInterceptor = null;
            }

            if (BrowserSettings != null)
            {
                BrowserSettings.Dispose();
                BrowserSettings = null;
            }

            if (managedCefBrowserAdapter != null)
            {
                managedCefBrowserAdapter.Dispose();
                managedCefBrowserAdapter = null;
            }
        }
        private void InternalDispose(bool disposing)
        {
            if (disposing)
            {
                IsBrowserInitialized = false;

                browser = null;

                if (parentFormMessageInterceptor != null)
                {
                    parentFormMessageInterceptor.Dispose();
                    parentFormMessageInterceptor = null;
                }

                if (managedCefBrowserAdapter != null)
                {
                    managedCefBrowserAdapter.Dispose();
                    managedCefBrowserAdapter = null;
                }

                // Don't maintain a reference to event listeners anylonger:
                AddressChanged = null;
                ConsoleMessage = null;
                FrameLoadEnd   = null;
                FrameLoadStart = null;
                IsBrowserInitializedChanged = null;
                LoadError           = null;
                LoadingStateChanged = null;
                StatusMessage       = null;
                TitleChanged        = null;

                // Release reference to handlers, make sure this is done after we dispose managedCefBrowserAdapter
                // otherwise the ILifeSpanHandler.DoClose will not be invoked.
                this.SetHandlersToNull();
            }

            Cef.RemoveDisposable(this);
        }