public void Dispose() { lock (FLock) { if (FBrowser != null) { FBrowser.Close(); FBrowser.Dispose(); } FTextureResource.Dispose(); } }
protected override void ReceiveMessage(CefBrowser browser, PluginMessage pluginMessage) { var handler = PluginManager.GetLocalPlugin(pluginMessage.PluginId); if (handler == null) { // No handlers so cancel the query. if (pluginMessage.MessageType == PluginMessageType.FunctionInvoke) { CancelUnhandledQuery(browser, pluginMessage); } browser.Dispose(); return; } switch (pluginMessage.MessageType) { case PluginMessageType.FunctionInvoke: OnInvokeFunction(browser, pluginMessage, handler); break; case PluginMessageType.AddListener: OnAddListener(browser, pluginMessage, handler); break; case PluginMessageType.RemoveRetained: OnRemoveRetained(browser, pluginMessage, handler); break; } }
protected virtual void Dispose(bool disposing) { if (disposing) { if (_browserPageImage != null) { _browserPageImage.Source = null; _browserPageImage = null; } if (_browserPageBitmap != null) { _browserPageBitmap = null; } // TODO: What's the right way of disposing the browser instance? if (_browserHost != null) { _browserHost.CloseBrowser(); _browserHost = null; } if (_browser != null) { _browser.Dispose(); _browser = null; } } }
/// <summary> /// Releases unmanaged and - optionally - managed resources. /// </summary> /// <param name="disposing"><c>true</c> to release both managed and unmanaged resources; <c>false</c> to release only unmanaged resources.</param> protected virtual void Dispose(bool disposing) { Application.Current.EnsureMainThread(); if (!_disposed) { if (disposing) { // CEF browser if (CefBrowser != null) { var host = CefBrowser.GetHost(); if (host != null) { host.CloseBrowser(true); host.Dispose(); } CefBrowser.Dispose(); } DestroyControllers(); } _disposed = true; } }
public void Dispose() { if (FBrowser != null) { FBrowser.Close(); FBrowserDetachedEvent.WaitOne(); lock (FLock) { FBrowser.Dispose(); FBrowser = null; FTextureResource.Dispose(); } FBrowserAttachedEvent.Dispose(); FBrowserDetachedEvent.Dispose(); } if (FMouseSubscription != null) { FMouseSubscription.Dispose(); FMouseSubscription = null; } if (FKeyboardSubscription != null) { FKeyboardSubscription.Dispose(); FKeyboardSubscription = null; } }
public void Dispose() { callbackRegistry.Dispose(); functionCallPromiseRegistry.Dispose(); dynamicObjectPromiseRegistry.Dispose(); browser.Dispose(); }
private void Window_Closing(object sender, System.ComponentModel.CancelEventArgs e) { CefBrowser.Dispose(); //Dispose Owin server Application.Current.Shutdown(); }
internal void Close() { if (_browser != null) { _browser.Dispose(); _browser = null; } }
public void Dispose() { var browserhost = _CefBrowser.GetHost(); browserhost.CloseBrowser(true); _CefFrame.Dispose(); _CefBrowser.Dispose(); }
public void Dispose() { if (CefBrowser != null) { var host = CefBrowser.GetHost(); host.CloseBrowser(true); host.Dispose(); CefBrowser.Dispose(); CefBrowser = null; } }
public void Close() { if (_browser != null) { var host = _browser.GetHost(); host.CloseBrowser(true); host.Dispose(); _browser.Dispose(); _browser = null; } }
public void Dispose() { if (_host != null) { _host.CloseBrowser(); _host = null; } if (_browser != null) { _browser.Dispose(); _browser = null; } CefRuntime.Shutdown(); }
protected override void Dispose(bool disposing) { if (_browser != null) { var host = _browser.GetHost(); host.CloseBrowser(); host.ParentWindowWillClose(); host.Dispose(); _browser.Dispose(); _browser = null; _browserWindowHandle = IntPtr.Zero; } base.Dispose(disposing); }
protected override void Dispose(bool disposing) { if (_browser != null && disposing) // TODO: ugly hack to avoid crashes when CefWebBrowser are Finalized and underlying objects already finalized { var host = _browser.GetHost(); host.CloseBrowser(); host.ParentWindowWillClose(); host.Dispose(); _browser.Dispose(); _browser = null; _browserWindowHandle = IntPtr.Zero; } base.Dispose(disposing); }
private void OnRemoveRetained(CefBrowser browser, PluginMessage pluginMessage, JavaScriptPlugin handler) { var info = _pendingCallbacks.Remove(pluginMessage.MessageId); if (info != null) { if (info.IsEventListener) { handler.RemoveEventListener(pluginMessage.MemberName, info); } info.Dispose(); } browser.Dispose(); }
internal void Close() { if (!CefUtil.DISABLE_CEF) { _client.Close(); if (_browser == null) { return; } var host = _browser.GetHost(); host.CloseBrowser(true); host.Dispose(); _browser.Dispose(); } }
public void Dispose() { if (FBrowser != null) { FBrowser.Close(); FBrowserDetachedEvent.WaitOne(); lock (FLock) { FBrowser.Dispose(); FBrowser = null; FTextureResource.Dispose(); } FBrowserAttachedEvent.Dispose(); FBrowserDetachedEvent.Dispose(); } }
protected override void Dispose(bool disposing) { if (_browser != null && disposing) // TODO: ugly hack to avoid crashes when CefWebBrowser are Finalized and underlying objects already finalized { //var host = _browser.GetHost();//--注意 :这里作者把host 给释放了!会导致程序崩溃 //if (host != null) //{ // host.CloseBrowser(true); // host.Dispose(); //} _browser.Dispose(); _browser = null; _browserWindowHandle = IntPtr.Zero; } base.Dispose(disposing); }
protected override void Dispose(bool disposing) { if (m_browser != null && disposing) { var host = m_browser.GetHost(); if (host != null) { host.CloseBrowser(); host.Dispose(); } m_browser.Dispose(); m_browser = null; m_browserWindowHandle = IntPtr.Zero; } base.Dispose(disposing); }
protected virtual void Dispose(bool disposing) { if (disposing) { // TODO: What's the right way of disposing the browser instance? if (_browserHost != null) { _browserHost.CloseBrowser(true); _browserHost = null; } if (_browser != null) { _browser.Dispose(); _browser = null; } } }
void DestroyBrowser() { if (browser != null) { // TODO: What's the right way of disposing the browser instance? if (browserHost != null) { browserHost.CloseBrowser(); browserHost.Dispose(); browserHost = null; } if (browser != null) { browser.Dispose(); browser = null; } } }
protected override void Dispose(bool disposing) { if (_browser != null && disposing) // TODO: ugly hack to avoid crashes when CefWebBrowser are Finalized and underlying objects already finalized { var host = _browser.GetHost(); if (host != null) { host.CloseBrowser(); host.Dispose(); } _browser.Dispose(); _browser = null; _browserWindowHandle = IntPtr.Zero; } base.Dispose(disposing); /* BEG: erinus */ CefRuntime.Shutdown(); /* END: erinus */ }
protected override void OnBeforeClose(CefBrowser browser) { #if DIAGNOSTICS Cef.Logger.Trace(LogTarget.CefLifeSpanHandler, "OnBeforeClose"); #endif // TODO: raise Closing event ? this.context.Detach(); browser.Dispose(); /* if (!browser.IsPopup) { browser.Dispose(); if (this.context.browser != null) { this.context.browser.Dispose(); this.context.browser = null; this.context.browserWindowHandle = IntPtr.Zero; } if (!this.context.IsDisposed) { if (this.context.InvokeRequired) { this.context.BeginInvoke(new Action(this.context.DestroyHandle)); } else { this.context.DestroyHandle(); } } } else { browser.Dispose(); } */ }
protected override void OnBeforeClose(CefBrowser browser) { #if DIAGNOSTICS Cef.Logger.Trace(LogTarget.CefLifeSpanHandler, "OnBeforeClose"); #endif // TODO: raise Closing event ? this.context.Detach(); browser.Dispose(); /* * if (!browser.IsPopup) * { * browser.Dispose(); * * if (this.context.browser != null) * { * this.context.browser.Dispose(); * this.context.browser = null; * this.context.browserWindowHandle = IntPtr.Zero; * } * * if (!this.context.IsDisposed) * { * if (this.context.InvokeRequired) * { * this.context.BeginInvoke(new Action(this.context.DestroyHandle)); * } * else * { * this.context.DestroyHandle(); * } * } * } * else * { * browser.Dispose(); * } */ }
protected virtual void Dispose(bool disposing) { if (disposing) { if (_tooltipTimer != null) { _tooltipTimer.Stop(); } if (_browserPageImage != null) { _browserPageImage.Source = null; _browserPageImage = null; } if (_browserPageBitmap != null) { _browserPageBitmap = null; } // if (this.browserPageD3dImage != null) // this.browserPageD3dImage = null; // TODO: What's the right way of disposing the browser instance? if (_browserHost != null) { _browserHost.CloseBrowser(); _browserHost = null; } if (_browser != null) { _browser.Dispose(); _browser = null; } } _disposed = true; }
//Should I be making a Dispose method as well? http://msdn.microsoft.com/en-us/library/fs2xkftw(v=vs.110).aspx //No, see implementing for derived class in article protected override void Dispose(bool disposing) { Debug.WriteLine(DBGPREFIX + "Start Dispose with browser" + ((_browser == null) ? " " : " not ") + "null"); if (_browser != null && disposing) // TODO: ugly hack to avoid crashes when CefWebBrowser are Finalized and underlying objects already finalized { if (_browser.IsLoading) { Debug.WriteLine(DBGPREFIX + "Browser still trying to load a page"); System.Threading.Thread.Sleep(50); } var host = _browser.GetHost(); if (host != null) { host.CloseBrowser(false); host.Dispose(); } _browser.Dispose(); _browser = null; //Paint += PaintInDesignMode; //Not needed because LabVIEW creates a new control instance } base.Dispose(disposing); Debug.WriteLine(DBGPREFIX + "Finish Dispose"); }
protected override void ReceiveMessage(CefBrowser browser, PluginMessage pluginMessage) { switch (pluginMessage.MessageType) { case PluginMessageType.FunctionCallback: case PluginMessageType.EventFired: var payload = ParagonJsonSerializer.Deserialize <ResultData>(pluginMessage.Data); OnBrowserCallbackInvokeReceived(pluginMessage, payload); break; case PluginMessageType.RemoveRetained: // Remove a listener in the render process (handles browser side dynamic plugin dispose scenario) var retainedCallback = _pendingCallbacks.Remove(pluginMessage.MessageId); if (retainedCallback != null) { retainedCallback.Dispose(); } break; default: throw new ArgumentOutOfRangeException(); } browser.Dispose(); }
public void DisposeCefBrowser() { CefBrowser.Dispose(); CefBrowser = null; }
internal void Detach() { FBrowser.Dispose(); FBrowserDetachedEvent.Set(); }
protected override void OnBeforeClose(CefBrowser browser) { FRenderer.Detach(browser); browser.Dispose(); base.OnBeforeClose(browser); }
public new void Dispose() { logger.Debug($"Disposing {nameof(ManagedWebBrowser)}"); CefBrowser.Dispose(); }