Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Browse files

HTML parser error with <noscript> in the <head>

For https://bugzilla.gnome.org/show_bug.cgi?id=615785
When the <noscript> is found, <head> is closed and a <body> element is created.
The real <body id="xxx"> gets skipped over, so I can't see any of the
body's attributes.
Just don't close <head> when encountering a <noscript>
Add a regression test too
  • Loading branch information...
commit a0cd075d94518cd254d5fe122cc6825a1dfc6093 1 parent 4609e6c
@0lvin 0lvin authored veillard committed
View
2  HTMLparser.c
@@ -1080,7 +1080,7 @@ static const char * const htmlStartClose[] = {
"menu", "p", "head", "ul", NULL,
"p", "p", "head", "h1", "h2", "h3", "h4", "h5", "h6", FONTSTYLE, NULL,
"div", "p", "head", NULL,
-"noscript", "p", "head", NULL,
+"noscript", "p", NULL,
"center", "font", "b", "i", "p", "head", NULL,
"a", "a", NULL,
"caption", "p", NULL,
View
10 result/HTML/noscript.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+<head>
+<title>omg</title>
+<noscript><link rel="stylesheet" href="http://foo.com"></noscript>
+</head>
+<body id="xxx">
+ <p>yo</p>
+ </body>
+</html>
View
0  result/HTML/noscript.html.err
No changes.
View
38 result/HTML/noscript.html.sax
@@ -0,0 +1,38 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.internalSubset(html, , )
+SAX.startElement(html)
+SAX.ignorableWhitespace(
+ , 5)
+SAX.startElement(head)
+SAX.ignorableWhitespace(
+ , 9)
+SAX.startElement(title)
+SAX.characters(omg, 3)
+SAX.endElement(title)
+SAX.ignorableWhitespace(
+ , 9)
+SAX.startElement(noscript)
+SAX.startElement(link, rel='stylesheet', href='http://foo.com')
+SAX.endElement(link)
+SAX.endElement(noscript)
+SAX.ignorableWhitespace(
+ , 5)
+SAX.endElement(head)
+SAX.ignorableWhitespace(
+ , 5)
+SAX.startElement(body, id='xxx')
+SAX.characters(
+ , 9)
+SAX.startElement(p)
+SAX.characters(yo, 2)
+SAX.endElement(p)
+SAX.characters(
+ , 5)
+SAX.endElement(body)
+SAX.ignorableWhitespace(
+, 1)
+SAX.endElement(html)
+SAX.ignorableWhitespace(
+, 1)
+SAX.endDocument()
View
10 test/HTML/noscript.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <title>omg</title>
+ <noscript><link rel="stylesheet" href="http://foo.com"></noscript>
+ </head>
+ <body id="xxx">
+ <p>yo</p>
+ </body>
+</html>
Please sign in to comment.
Something went wrong with that request. Please try again.