Each Browser instance is running on a separate native process where the web page is rendered. Sometimes this process can exit unexpectedly because of the crash in plugin. To receive notifications about unexpected render process termination you can use RenderListener. When you receive notification about render process termination you can display a "sad" icon like Google Chrome does, for example, to inform the user that this particular Browsercomponent has crashed.


If you refresh or load the same or another URL, the rendering process and Browserinstance will be restored:


using DotNetBrowser;
using DotNetBrowser.Events;
using DotNetBrowser.WPF;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace RestoreBrowserSample
{
    /// <summary>
    /// This sample demonstrates how to restore Browser instance after its
    /// native process unexpectedly terminated. In general to rest Browser owser instance you just need to load the same or another URL.
    /// </summary>
    class Program
    {
       public class WindowMain : Window
       {
           private WPFBrowserView browserView;
           public WindowMain()
           {
               BrowserContext browserContext = BrowserContext.DefaultContext;
               Browser browser = BrowserFactory.Create(browserContext);
               browser.RenderGoneEvent += delegate(object sender, RenderEventArgs e)
               {
                   // Restore Browser instance by loading the same URL
                   browser.LoadURL(e.Browser.URL);
               };
               browserView = new WPFBrowserView(browser);
               Content = browserView;
               Width = 1024;
               Height = 768;
               this.Loaded += WindowMain_Loaded;
           }
           void WindowMain_Loaded(object sender, RoutedEventArgs e)
           {
               browserView.Browser.LoadURL("http://www.google.com");
               Console.Out.WriteLine("Run 'Task Manager' app and kill the 'browsercore32.exe' " +
               "process with the '--type=renderer' command line argument.");
           }
           [STAThread]
           public static void Main()
           {
               Application app = new Application();
               WindowMain wnd = new WindowMain();
               app.Run(wnd);
               var browser = wnd.browserView.Browser;
               wnd.browserView.Dispose();
               browser.Dispose();
           }
       }
    }
}