diff options
author | Vincent Sanders <vince@netsurf-browser.org> | 2012-01-01 21:42:38 +0000 |
---|---|---|
committer | Vincent Sanders <vince@netsurf-browser.org> | 2012-01-01 21:42:38 +0000 |
commit | 6ebaecccafbca464ee366d45fd15a0df13509849 (patch) | |
tree | c5aa49a34ab8412a04a1099b7b2740166225806b /desktop/browser.c | |
parent | a195728c51a34e68b4361cb685d3e20acbbecbe0 (diff) | |
download | netsurf-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.c | 13 |
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) |