title: Embed a web browser in a cross platform Gtk application
body: <p>I need to embed a very simple browser ( can parse HTML, and JS Ext ) in a Gtk Widget hopefully in gtkmm. I looked into gtkmozembed, but the c++ wrapper is very out dated, so I tried to just write it in C, but I'm already committed to Gtk+ 3.0, and gtkmozembed doesn't work with Gtk+ 3.0. Is there a way to just extend Gtk::Widget and put a gecko parser in it? Can't really find any gecko documentation, I keep getting redirected to gtkmozembed.</p>
  
  <p>Any ideas/suggestions would be greatly appreciated.</p>
  
  <p>Edit:
  @Mark After I tried using Webkitgtk, I get the following output and the application crashes.</p>
  
  <pre><code>** (ttocui_gtk:16360): DEBUG: NP_Initialize
  ** (ttocui_gtk:16360): DEBUG: NP_Initialize succeeded
  ** (ttocui_gtk:16360): DEBUG: NP_Initialize
  ** (ttocui_gtk:16360): DEBUG: NP_Initialize succeeded
  ** (ttocui_gtk:16360): DEBUG: NP_Initialize
  ** (ttocui_gtk:16360): DEBUG: NP_Initialize succeeded
  ** (ttocui_gtk:16360): DEBUG: NP_Initialize
  ** (ttocui_gtk:16360): DEBUG: NP_Initialize succeeded
  ** (ttocui_gtk:16360): DEBUG: NP_Initialize
  ** (ttocui_gtk:16360): DEBUG: NP_Initialize succeeded
  ** (ttocui_gtk:16360): DEBUG: NP_Initialize
  ** (ttocui_gtk:16360): DEBUG: NP_Initialize succeeded
  ** (ttocui_gtk:16360): DEBUG: NP_Initialize
  ** (ttocui_gtk:16360): DEBUG: NP_Initialize succeeded
  ** (ttocui_gtk:16360): DEBUG: NP_Initialize
  ** (ttocui_gtk:16360): DEBUG: NP_Initialize succeeded
  
  (ttocui_gtk:16360): GLib-CRITICAL **: g_hash_table_foreach: assertion `hash_table != NULL' failed
  
  (ttocui_gtk:16360): GLib-CRITICAL **: g_hash_table_insert_internal: assertion `hash_table != NULL' failed
  
  (ttocui_gtk:16360): GLib-CRITICAL **: g_hash_table_lookup: assertion `hash_table != NULL' failed
  *** NSPlugin Wrapper *** ERROR: no valid NPP -&gt; PluginInstance mapping found
  
  (ttocui_gtk:16360): GLib-CRITICAL **: g_hash_table_lookup: assertion `hash_table != NULL' failed
  *** NSPlugin Wrapper *** ERROR: no valid NPP -&gt; PluginInstance mapping found
  
  (ttocui_gtk:16360): GLib-CRITICAL **: g_hash_table_lookup: assertion `hash_table != NULL' failed
  
  (ttocui_gtk:16360): GLib-CRITICAL **: g_hash_table_insert_internal: assertion `hash_table != NULL' failed
  
  (ttocui_gtk:16360): GLib-CRITICAL **: g_hash_table_insert_internal: assertion `hash_table != NULL' failed
  
  (ttocui_gtk:16360): GLib-CRITICAL **: g_hash_table_find: assertion `hash_table != NULL' failed
  
  (ttocui_gtk:16360): GLib-CRITICAL **: g_hash_table_insert_internal: assertion `hash_table != NULL' failed
  
  (ttocui_gtk:16360): GLib-CRITICAL **: g_hash_table_lookup: assertion `hash_table != NULL' failed
  *** NSPlugin Wrapper *** ERROR: no valid NPP -&gt; PluginInstance mapping found
  
  (ttocui_gtk:16360): GLib-CRITICAL **: g_hash_table_lookup: assertion `hash_table != NULL' failed
  ttocui_gtk: /build/buildd/nspluginwrapper-1.2.2/src/npw-rpc.c:1225: do_recv_NPObject: Assertion `npobj != ((void *)0)' failed.
  *** NSPlugin Viewer  *** ERROR: NPN_GetProperty() wait for reply: Connection reset by peer
  *** NSPlugin Viewer  *** WARNING:(/build/buildd/nspluginwrapper-1.2.2/src/npw-viewer.c:898):invoke_NPN_GetValue: assertion failed: (rpc_method_invoke_possible(g_rpc_connection))
  Aborted
  *** NSPlugin Viewer  *** WARNING: unhandled variable 18 (&lt;unknown variable&gt;) in NPN_GetValue()
  *** NSPlugin Viewer  *** WARNING:(/build/buildd/nspluginwrapper-1.2.2/src/npw-viewer.c:898):invoke_NPN_GetValue: assertion failed: (rpc_method_invoke_possible(g_rpc_connection))
  </code></pre>
  
  <p>The .js file is included in the head tag of my html pages...</p>
  
  <pre><code>&lt;link rel="stylesheet" type="text/css" href="/ext3.2.1/resources/css/ext-all.css"&gt;
  &lt;link rel="stylesheet" type="text/css" href="/ext3.2.1/resources/css/xtheme-access.css"/&gt;
  
  &lt;script type="text/javascript" src="/ext3.2.1/adapter/ext/ext-base.js"&gt;&lt;/script&gt;
  &lt;script type="text/javascript" src="/ext3.2.1/ext-all-debug.js"&gt;&lt;/script&gt;
  </code></pre>