Commit cf3bd585 authored by Kunpei Sakai's avatar Kunpei Sakai Committed by Nigel Tao

html: don't set im if <template> doesn't have HTML namespace

If there are nested <template> elements and the <template> node isn't in HTML namespace,
couldn't continue to parse documents correctly.
By this patch, it makes the <template> which is in math namespace be skipped on
resetting insertion mode.

Fixes golang/go#27702

Change-Id: I6eacdb98fe29eb3c61781afca5bc4d83e72ba4ed
Reviewed-on: https://go-review.googlesource.com/136875Reviewed-by: 's avatarNigel Tao <nigeltao@golang.org>
parent 2f5d2388
......@@ -470,6 +470,10 @@ func (p *parser) resetInsertionMode() {
case a.Table:
p.im = inTableIM
case a.Template:
// TODO: remove this divergence from the HTML5 spec.
if n.Namespace != "" {
continue
}
p.im = p.templateStack.top()
case a.Head:
// TODO: remove this divergence from the HTML5 spec.
......
......@@ -22,3 +22,16 @@
| content
| <tbody>
| <body>
#data
<math><template><mo><template>
#errors
#document
| <html>
| <head>
| <body>
| <math math>
| <math template>
| <math mo>
| <template>
| content
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment