diff options
author | Vincent Sanders <vince@netsurf-browser.org> | 2013-05-22 18:40:21 +0100 |
---|---|---|
committer | Vincent Sanders <vince@netsurf-browser.org> | 2013-05-22 19:12:26 +0100 |
commit | af75070bee41816cb9ee4a53995d1f42870c1fcb (patch) | |
tree | ed7cae70d8f650c563292376ba4fde0bf44a8fad /desktop | |
parent | 7f7ff937453dc70144d1b6226fb7b34368ab271d (diff) | |
download | netsurf-af75070bee41816cb9ee4a53995d1f42870c1fcb.tar.gz netsurf-af75070bee41816cb9ee4a53995d1f42870c1fcb.tar.bz2 |
add script_timeout option and use it
Diffstat (limited to 'desktop')
-rw-r--r-- | desktop/browser.c | 11 | ||||
-rw-r--r-- | desktop/options_main.h | 10 |
2 files changed, 15 insertions, 6 deletions
diff --git a/desktop/browser.c b/desktop/browser.c index 53e3f13bf..ac8c6991c 100644 --- a/desktop/browser.c +++ b/desktop/browser.c @@ -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); diff --git a/desktop/options_main.h b/desktop/options_main.h index 7b9e7314b..43070acae 100644 --- a/desktop/options_main.h +++ b/desktop/options_main.h @@ -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 }, \ |