mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-01-26 10:03:34 +03:00
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
This commit is contained in:
parent
4609e6c980
commit
a0cd075d94
@ -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,
|
||||
|
10
result/HTML/noscript.html
Normal file
10
result/HTML/noscript.html
Normal file
@ -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>
|
0
result/HTML/noscript.html.err
Normal file
0
result/HTML/noscript.html.err
Normal file
38
result/HTML/noscript.html.sax
Normal file
38
result/HTML/noscript.html.sax
Normal file
@ -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()
|
10
test/HTML/noscript.html
Normal file
10
test/HTML/noscript.html
Normal file
@ -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>
|
Loading…
x
Reference in New Issue
Block a user