Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/src/hulahop-browser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/hulahop-browser.cpp')
-rw-r--r--src/hulahop-browser.cpp30
1 files changed, 26 insertions, 4 deletions
diff --git a/src/hulahop-browser.cpp b/src/hulahop-browser.cpp
index b353765..40d6562 100644
--- a/src/hulahop-browser.cpp
+++ b/src/hulahop-browser.cpp
@@ -21,8 +21,10 @@
#include <nsComponentManagerUtils.h>
#include <nsCOMPtr.h>
#include <nsIWebBrowser.h>
+#include <nsILocalFile.h>
#include <nsIBaseWindow.h>
#include <nsXULAppAPI.h>
+#include <PyXPCOM.h>
#include "hulahop-browser.h"
#include "HulahopDirectoryProvider.h"
@@ -43,12 +45,27 @@ static GObjectClass *parent_class = NULL;
static const HulahopDirectoryProvider kDirectoryProvider;
-static void
+gboolean
hulahop_startup()
{
- XRE_InitEmbedding(nsnull, nsnull,
- NS_CONST_CAST(HulahopDirectoryProvider *,
+ nsresult rv;
+
+ nsCOMPtr<nsILocalFile> greDir;
+ rv = NS_NewNativeLocalFile(nsCString(MOZILLA_HOME), PR_TRUE,
+ getter_AddRefs(greDir));
+ NS_ENSURE_SUCCESS(rv, FALSE);
+
+ nsCOMPtr<nsILocalFile> binDir;
+ rv = NS_NewNativeLocalFile(nsCString(MOZILLA_HOME"/components"), PR_TRUE,
+ getter_AddRefs(binDir));
+ NS_ENSURE_SUCCESS(rv, FALSE);
+
+ rv = XRE_InitEmbedding(greDir, binDir,
+ NS_CONST_CAST(HulahopDirectoryProvider *,
&kDirectoryProvider), nsnull, 0);
+ NS_ENSURE_SUCCESS(rv, FALSE);
+
+ return TRUE;
}
static void
@@ -130,6 +147,11 @@ static void
hulahop_browser_init(HulahopBrowser *browser)
{
GTK_WIDGET_UNSET_FLAGS(GTK_WIDGET(browser), GTK_NO_WINDOW);
+}
- hulahop_startup();
+PyObject *
+hulahop_browser_get_browser (HulahopBrowser *browser)
+{
+ return PyObject_FromNSInterface(browser->browser,
+ NS_GET_IID(nsIWebBrowser), PR_FALSE);
}