Merge branch 'master' of git://git.netsurf-browser.org/netsurf

This commit is contained in:
Michael Drake 2012-07-31 22:38:34 +01:00
commit de7361ca88
3 changed files with 9 additions and 14 deletions

View File

@ -1972,6 +1972,9 @@ html_begin_conversion(html_content *htmlc)
return false;
}
/* complete script execution */
html_scripts_exec(htmlc);
htmlc->document = dom_hubbub_parser_get_document(htmlc->parser);
if (htmlc->document == NULL) {

View File

@ -158,6 +158,7 @@ void html_overflow_scroll_callback(void *client_data,
/* in render/html_script.c */
dom_hubbub_error html_process_script(void *ctx, dom_node *node);
void html_free_scripts(html_content *html);
bool html_scripts_exec(html_content *c);
/* in render/html_forms.c */
struct form *html_forms_get_forms(const char *docenc, dom_html_document *doc);

View File

@ -49,13 +49,13 @@ static script_handler_t *select_script_handler(content_type ctype)
}
/* attempt to progress script execution
/* attempt defer and async script execution
*
* execute scripts using algorithm found in:
* http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting-1.html#the-script-element
*
*/
static bool html_scripts_exec(html_content *c)
bool html_scripts_exec(html_content *c)
{
unsigned int i;
struct html_script *s;
@ -69,10 +69,8 @@ static bool html_scripts_exec(html_content *c)
continue;
}
assert((s->type == HTML_SCRIPT_SYNC) ||
(s->type == HTML_SCRIPT_INLINE));
if (s->type == HTML_SCRIPT_SYNC) {
if ((s->type == HTML_SCRIPT_ASYNC) ||
(s->type == HTML_SCRIPT_DEFER)) {
/* ensure script content is present */
if (s->data.handle == NULL)
continue;
@ -99,14 +97,7 @@ static bool html_scripts_exec(html_content *c)
s->already_started = true;
} else {
/* script not yet available */
/* check if deferable or asynchronous */
if (!s->defer && !s->async) {
break;
}
}
}
}
}