add script_timeout option and use it

This commit is contained in:
Vincent Sanders 2013-05-22 18:40:21 +01:00
parent 7f7ff93745
commit af75070bee
2 changed files with 15 additions and 6 deletions

View File

@ -683,12 +683,15 @@ void browser_window_debug_dump(struct browser_window *bw, FILE *f)
content_debug_dump(bw->current_content, f);
}
static bool gui_slow_script(void *ctx)
/** slow script handler
*/
static bool slow_script(void *ctx)
{
static int count = 0;
LOG(("Continuing execution %d", count));
count++;
if (count >= 2) {
if (count > 1) {
count = 0;
return false;
}
return true;
@ -717,7 +720,9 @@ browser_window_create(enum browser_window_nav_flags flags,
}
/* new javascript context for window */
bw->jsctx = js_newcontext(10, gui_slow_script, NULL);
bw->jsctx = js_newcontext(nsoption_int(script_timeout),
slow_script,
NULL);
/* Initialise common parts */
browser_window_initialise_common(bw, clone);

View File

@ -87,6 +87,8 @@
bool animate_images; \
/** Whether to execute javascript */ \
bool enable_javascript; \
/** how long to wait for a script to run */ \
int script_timeout; \
/** How many days to retain URL data for */ \
int expire_url; \
/** Default font family */ \
@ -268,7 +270,8 @@
.suppress_curl_debug = true, \
.target_blank = true, \
.button_2_tab = true, \
.enable_javascript = true
.enable_javascript = true, \
.script_timeout = 10
#define NSOPTION_MAIN_SYS_COLOUR_DEFAULTS \
.sys_colour_ActiveBorder = 0x00000000, \
@ -318,7 +321,7 @@
{ "accept_language", OPTION_STRING, &nsoptions.accept_language }, \
{ "accept_charset", OPTION_STRING, &nsoptions.accept_charset }, \
{ "memory_cache_size", OPTION_INTEGER, &nsoptions.memory_cache_size }, \
{ "disc_cache_size", OPTION_INTEGER, &nsoptions.disc_cache_size }, \
{ "disc_cache_size", OPTION_INTEGER, &nsoptions.disc_cache_size }, \
{ "disc_cache_age", OPTION_INTEGER, &nsoptions.disc_cache_age }, \
{ "block_advertisements", OPTION_BOOL, &nsoptions.block_ads }, \
{ "do_not_track", OPTION_BOOL, &nsoptions.do_not_track }, \
@ -327,7 +330,8 @@
{ "foreground_images", OPTION_BOOL, &nsoptions.foreground_images }, \
{ "background_images", OPTION_BOOL, &nsoptions.background_images }, \
{ "animate_images", OPTION_BOOL, &nsoptions.animate_images }, \
{ "enable_javascript", OPTION_BOOL, &nsoptions.enable_javascript}, \
{ "enable_javascript", OPTION_BOOL, &nsoptions.enable_javascript}, \
{ "script_timeout", OPTION_INTEGER, &nsoptions.script_timeout}, \
{ "expire_url", OPTION_INTEGER, &nsoptions.expire_url }, \
{ "font_default", OPTION_INTEGER, &nsoptions.font_default }, \
{ "ca_bundle", OPTION_STRING, &nsoptions.ca_bundle }, \