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); }