diff options
Diffstat (limited to 'render/html.c')
-rw-r--r-- | render/html.c | 14 |
1 files changed, 13 insertions, 1 deletions
diff --git a/render/html.c b/render/html.c index 5a9ba27ef..c54f23ea8 100644 --- a/render/html.c +++ b/render/html.c @@ -593,8 +593,20 @@ bool html_meta_refresh(struct content *c, xmlNode *head) if (n->type != XML_ELEMENT_NODE) continue; - if (strcmp((const char *)n->name, "meta")) + /* Recurse into noscript elements */ + if (strcmp((const char *)n->name, "noscript") == 0) { + if (!html_meta_refresh(c, n)) { + /* Some error occurred */ + return false; + } else if (c->refresh) { + /* Meta refresh found - stop */ + return true; + } + } + + if (strcmp((const char *)n->name, "meta")) { continue; + } equiv = xmlGetProp(n, (const xmlChar *)"http-equiv"); if (!equiv) |