diff --git a/content/handlers/html/html_script.c b/content/handlers/html/html_script.c
index ed73f50d8..9dad53117 100644
--- a/content/handlers/html/html_script.c
+++ b/content/handlers/html/html_script.c
@@ -60,6 +60,7 @@ nserror html_script_exec(html_content *c, bool allow_defer)
unsigned int i;
struct html_script *s;
script_handler_t *script_handler;
+ bool have_run_something = false;
if (c->jscontext == NULL) {
return NSERROR_BAD_PARAMETER;
@@ -96,6 +97,7 @@ nserror html_script_exec(html_content *c, bool allow_defer)
s->data.handle, &size );
script_handler(c->jscontext, data, size,
nsurl_access(hlcache_handle_get_url(s->data.handle)));
+ have_run_something = true;
/* We have to re-acquire this here since the
* c->scripts array may have been reallocated
* as a result of executing this script.
@@ -108,7 +110,11 @@ nserror html_script_exec(html_content *c, bool allow_defer)
}
}
- return html_proceed_to_done(c);
+ if (have_run_something) {
+ return html_proceed_to_done(c);
+ }
+
+ return NSERROR_OK;
}
/* create new html script entry */