summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Sanders <vince@netsurf-browser.org>2012-07-07 00:16:07 +0100
committerVincent Sanders <vince@netsurf-browser.org>2012-07-07 00:16:07 +0100
commit752261c66c3a8f6d5cbfb4d1311776dd07f0e144 (patch)
tree505abca8507f8fa5c73e9f4f82b4c4e4c4582983
parent1fc96acf47937cbe0ed7c5b1e90fefc9c9b862da (diff)
downloadnetsurf-752261c66c3a8f6d5cbfb4d1311776dd07f0e144.tar.gz
netsurf-752261c66c3a8f6d5cbfb4d1311776dd07f0e144.tar.bz2
Improve logging and inline script handling
-rw-r--r--javascript/jsapi.c2
-rw-r--r--javascript/jsapi/document.c2
-rw-r--r--render/html.c34
3 files changed, 21 insertions, 17 deletions
diff --git a/javascript/jsapi.c b/javascript/jsapi.c
index 6ba9427bf..fa8726b42 100644
--- a/javascript/jsapi.c
+++ b/javascript/jsapi.c
@@ -133,7 +133,7 @@ bool js_exec(jscontext *ctx, const char *txt, size_t txtlen)
{
JSContext *cx = (JSContext *)ctx;
- LOG(("%p \"%s\"",cx ,txt));
+ /* LOG(("%p \"%s\"",cx ,txt)); */
if (ctx == NULL) {
return false;
diff --git a/javascript/jsapi/document.c b/javascript/jsapi/document.c
index 29ed20c1b..fb1da7ef8 100644
--- a/javascript/jsapi/document.c
+++ b/javascript/jsapi/document.c
@@ -56,7 +56,7 @@ static JSBool JSAPI_NATIVE(write, JSContext *cx, uintN argc, jsval *vp)
JSString_to_char(u16_txt, txt, length);
- LOG(("content %p writing %s",htmlc, txt));
+ LOG(("content %p parser %p writing %s",htmlc, htmlc->parser_binding, txt));
dom_hubbub_parser_insert_chunk(htmlc->parser_binding, (uint8_t *)txt, length);
diff --git a/render/html.c b/render/html.c
index ede8343ac..9db7ab971 100644
--- a/render/html.c
+++ b/render/html.c
@@ -183,21 +183,6 @@ static bool html_scripts_exec(html_content *c)
break;
}
}
- } else {
- struct lwc_string_s *lwcmimetype;
- dom_string_intern(s->mimetype, &lwcmimetype);
-
- /* ensure script handler for content type */
- script_handler = select_script_handler(content_factory_type_from_mime_type(lwcmimetype));
- lwc_string_unref(lwcmimetype);
-
- if (script_handler == NULL)
- continue; /* unsupported type */
-
- script_handler(c->jscontext,
- dom_string_data(s->data.internal),
- dom_string_byte_length(s->data.internal));
- s->already_started = true;
}
}
@@ -511,6 +496,8 @@ html_process_script(void *ctx, dom_node *node)
}
}
+ LOG(("content %p parser %p node %p",c,c->parser_binding, node));
+
exc = dom_element_get_attribute(node, html_dom_string_type, &mimetype);
if (exc != DOM_NO_ERR || mimetype == NULL) {
mimetype = dom_string_ref(html_dom_string_text_javascript);
@@ -518,6 +505,9 @@ html_process_script(void *ctx, dom_node *node)
exc = dom_element_get_attribute(node, html_dom_string_src, &src);
if (exc != DOM_NO_ERR || src == NULL) {
+ struct lwc_string_s *lwcmimetype;
+ script_handler_t *script_handler;
+
/* does not appear to be a src so script is inline content */
exc = dom_node_get_text_content(node, &script);
if ((exc != DOM_NO_ERR) || (script == NULL)) {
@@ -534,8 +524,22 @@ html_process_script(void *ctx, dom_node *node)
nscript->data.internal = script;
nscript->mimetype = mimetype;
+ nscript->already_started = true;
/* charset (encoding) */
+
+ /* ensure script handler for content type */
+ dom_string_intern(mimetype, &lwcmimetype);
+ script_handler = select_script_handler(content_factory_type_from_mime_type(lwcmimetype));
+ lwc_string_unref(lwcmimetype);
+
+ if (script_handler != NULL) {
+ script_handler(c->jscontext,
+ dom_string_data(script),
+ dom_string_byte_length(script));
+ }
+
+
} else {
/* script with a src tag */
nserror ns_error;