Gtkmozembed
[GtkMozEmbed] is an embedding API designed many years ago for use in Gtk applications. See also [source code]
Gtk is built around Glib signals and has a fixed C structure method dispatch design. GtkMozEmbed unfortunately isn't perfect and was designed with basically a single object to represent the entire browser of its time. This didn't scale well and unfortunately wrapping each and every object in Gecko is unreasonable. It is conceivable that someone might someday make a Glib-connect XPTCall layer or something like it that could proxy between XPCOM (or its replacement) and Glib. The main advantage of doing this is that no person would have to manually spend time writing bloaty wrappers for each and every imaginable Gecko object.
Mozilla 2.0 is likely to cause this embedding API to be replaced. The exact plans for this are entirely unknown. Whether there will be a single cross platform, or a per platform API is unknown. If you're interested in expressing your opinions, there's probably a newsgroup that might accept input.
GtkMozEmbed hasn't really had much development in the past years, partly because of a Glib ABI promise (which we intend to break for Mozilla1.9, as the Linux distributors have explained very clearly that they really really really don't care about ABIs at all, as long as there's source compatibility, because as it happens, they rebuild everything for each distribution they make anyway).