I'm having an issue with making an extension part of uzbl. There's no way to ask WebKitGtk to set up a communication channel between the extension and the main process. I could set one up, but I'm not sure how best to due so (environment variables + abstract UNIX sockets seem to be the best way that I can think of; there's DBus, but that would still rely on environment variables). It'd be nice if there were an API that an extension could call similar to: GIOChannel *webkit_extension_connect (WebKitWebExtension *extension, const gchar *name); where there is a "extension-connected" signal on WebKitWebView: gboolean extension_connected_cb (WebKitWebView *view, GIOChannel *chan, const gchar *name, gpointer data); where TRUE would imply that the connection should be kept and FALSE means that the connection should be torn down (and that the main process has not held onto the GIOChannel itself).
In epiphany we use dbus without environment variables. There's API to pass any data from the UI process to the extensions when they are initialized.
It's too much too hope for a way to send a file descriptor over it isn't it? :) I guess I could pass an abstract socket path over it...