Index: webkit/webkit-1.1.defs
===================================================================
--- webkit/webkit-1.1.defs	(revision 161)
+++ webkit/webkit-1.1.defs	(working copy)
@@ -244,6 +244,25 @@
 
 ;; from webkit/webkitwebframe.h
 
+(define-method get_xml_http_request
+  (of-object "WebKitWebFrame")
+  (c-name "webkit_web_frame_get_xml_http_request")
+  (return-type "gpointer")
+)
+
+(define-method get_dom_window
+  (of-object "WebKitWebFrame")
+  (c-name "webkit_web_frame_get_dom_window")
+  (return-type "gpointer")
+)
+
+(define-method get_dom_document
+  (of-object "WebKitWebFrame")
+  (c-name "webkit_web_frame_get_dom_document")
+  (return-type "gpointer")
+)
+
+
 (define-method load_uri
   (of-object "WebKitWebFrame")
   (c-name "webkit_web_frame_load_uri")
Index: webkit/webkit.override
===================================================================
--- webkit/webkit.override	(revision 161)
+++ webkit/webkit.override	(working copy)
@@ -30,6 +30,12 @@
 #include <JavaScriptCore/JSContextRef.h>
 
 #include "javascriptcore/javascriptcore_types.h"
+
+#include "pywebkit.h"
+
+extern struct pyjoinapi pywebkit_api_fns;
+
+
 %%
 body
 static PyObject *
@@ -310,3 +316,34 @@
 }
 
 
+%%
+override webkit_web_frame_get_dom_document noargs
+static PyObject *
+_wrap_webkit_web_frame_get_dom_document(PyGObject *self)
+{
+    gpointer ptr;
+    ptr = webkit_web_frame_get_dom_document(WEBKIT_WEB_FRAME(self->obj));
+    return pywebkit_api_fns.doc(ptr);
+}
+
+%%
+override webkit_web_frame_get_xml_http_request noargs
+static PyObject *
+_wrap_webkit_web_frame_get_xml_http_request(PyGObject *self)
+{
+    gpointer ptr;
+    ptr = webkit_web_frame_get_xml_http_request(WEBKIT_WEB_FRAME(self->obj));
+    return pywebkit_api_fns.xhr(ptr);
+}
+
+%%
+override webkit_web_frame_get_dom_window noargs
+static PyObject *
+_wrap_webkit_web_frame_get_dom_window(PyGObject *self)
+{
+    gpointer ptr;
+    ptr = webkit_web_frame_get_dom_window(WEBKIT_WEB_FRAME(self->obj));
+    return pywebkit_api_fns.win(ptr);
+}
+
+
Index: webkit/pywebkit.h
===================================================================
--- webkit/pywebkit.h	(revision 0)
+++ webkit/pywebkit.h	(revision 0)
@@ -0,0 +1,10 @@
+typedef PyObject* (*ToPythonFn) (gpointer);
+
+struct pyjoinapi {
+    ToPythonFn xhr;
+    ToPythonFn win;
+    ToPythonFn doc;
+};
+
+extern struct pyjoinapi pywebkit_api_fns;
+
Index: webkit/webkitmodule.c
===================================================================
--- webkit/webkitmodule.c	(revision 161)
+++ webkit/webkitmodule.c	(working copy)
@@ -27,10 +27,16 @@
 #include <pygobject.h>
 #include <pygtk/pygtk.h>
 
+#include "pywebkit.h"
+
 extern PyMethodDef pywebkit_functions[];
 
 void pywebkit_register_classes (PyObject *d);
+void webkit_init_pywebkit(PyObject *m, struct pyjoinapi *api_fns);
 
+struct pyjoinapi pywebkit_api_fns;
+
+
 DL_EXPORT(void)
 initwebkit(void)
 {
@@ -50,6 +56,7 @@
     m = Py_InitModule ("webkit", pywebkit_functions);
     d = PyModule_GetDict (m);
     pywebkit_register_classes (d);
+    webkit_init_pywebkit(m, &pywebkit_api_fns);
 
     if (PyErr_Occurred ()) {
         PyErr_Print();
