diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/hulahop-web-view.cpp | 14 | ||||
-rw-r--r-- | src/hulahop-web-view.h | 1 |
2 files changed, 15 insertions, 0 deletions
diff --git a/src/hulahop-web-view.cpp b/src/hulahop-web-view.cpp index 1ee6da4..3fcc3a7 100644 --- a/src/hulahop-web-view.cpp +++ b/src/hulahop-web-view.cpp @@ -25,6 +25,8 @@ #include <nsIDOMWindow2.h> #include <nsIDOMEventTarget.h> #include <nsIBaseWindow.h> +#include <nsIDocShell.h> +#include <nsIInterfaceRequestorUtils.h> #include <PyXPCOM.h> #include <gtk/gtkfixed.h> @@ -252,3 +254,15 @@ hulahop_web_view_get_window_root(HulahopWebView *web_view) return PyObject_FromNSInterface(eventTarget, NS_GET_IID(nsIDOMEventTarget)); } + +PyObject * +hulahop_web_view_get_doc_shell(HulahopWebView *web_view) +{ + nsresult rv; + + nsCOMPtr<nsIDocShell> docShell(do_GetInterface(web_view->browser, &rv)); + NS_ENSURE_SUCCESS (rv, NULL); + + return PyObject_FromNSInterface(docShell, + NS_GET_IID(nsIDocShell)); +} diff --git a/src/hulahop-web-view.h b/src/hulahop-web-view.h index e47431b..84db17b 100644 --- a/src/hulahop-web-view.h +++ b/src/hulahop-web-view.h @@ -38,6 +38,7 @@ typedef struct _HulahopWebViewClass HulahopWebViewClass; GType hulahop_web_view_get_type (void); PyObject *hulahop_web_view_get_browser (HulahopWebView *web_view); PyObject *hulahop_web_view_get_window_root (HulahopWebView *web_view); +PyObject *hulahop_web_view_get_doc_shell (HulahopWebView *web_view); G_END_DECLS |