summaryrefslogtreecommitdiff
path: root/desktop/browser.c
diff options
context:
space:
mode:
authorVincent Sanders <vince@netsurf-browser.org>2012-01-01 21:42:38 +0000
committerVincent Sanders <vince@netsurf-browser.org>2012-01-01 21:42:38 +0000
commit6ebaecccafbca464ee366d45fd15a0df13509849 (patch)
treec5aa49a34ab8412a04a1099b7b2740166225806b /desktop/browser.c
parenta195728c51a34e68b4361cb685d3e20acbbecbe0 (diff)
downloadnetsurf-6ebaecccafbca464ee366d45fd15a0df13509849.tar.gz
netsurf-6ebaecccafbca464ee366d45fd15a0df13509849.tar.bz2
Totaly prefunctry binding to spidermonkey
svn path=/trunk/netsurf/; revision=13360
Diffstat (limited to 'desktop/browser.c')
-rw-r--r--desktop/browser.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/desktop/browser.c b/desktop/browser.c
index 8ae68d377..9645d5ed6 100644
--- a/desktop/browser.c
+++ b/desktop/browser.c
@@ -54,6 +54,7 @@
#include "desktop/selection.h"
#include "desktop/textinput.h"
#include "desktop/plotters.h"
+#include "desktop/js.h"
#include "render/form.h"
#include "render/html.h"
@@ -646,6 +647,8 @@ struct browser_window *browser_window_create(const char *url,
return NULL;
}
+ bw->jsctx = js_newcontext();
+
/* Initialise common parts */
browser_window_initialise_common(bw, clone);
@@ -669,8 +672,9 @@ struct browser_window *browser_window_create(const char *url,
return NULL;
}
- if (url)
+ if (url) {
browser_window_go(bw, url, referer, history_add);
+ }
return bw;
@@ -936,6 +940,9 @@ void browser_window_go_post(struct browser_window *bw, const char *url,
browser_window_set_status(bw, messages_get("Loading"));
bw->history_add = add_to_history;
+ /* fresh javascript compartment */
+ bw->jsglobal = js_newcompartment(bw->jsctx);
+
/* Verifiable fetches may trigger a download */
if (verifiable)
fetch_flags |= HLCACHE_RETRIEVE_MAY_DOWNLOAD;
@@ -1943,6 +1950,10 @@ void browser_window_destroy_internal(struct browser_window *bw)
bw->box = NULL;
}
+ if (bw->jsctx != NULL) {
+ js_destroycontext(bw->jsctx);
+ }
+
/* These simply free memory, so are safe here */
if (bw->frag_id != NULL)