aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNigel Tao <nigeltao@golang.org>2012-01-19 17:41:10 +1100
committerNigel Tao <nigeltao@golang.org>2012-01-19 17:41:10 +1100
commitb4829c1de6ffd8581c40932da7a57dcfdd0610fb (patch)
tree1c580baae0b0d1d5f95bfb34c0537a48f2ca6326
parentd4fe9c6a9d8232b9d925dfd1f0e11f4891a5ad27 (diff)
downloadgo-b4829c1de6ffd8581c40932da7a57dcfdd0610fb.tar.gz
go-b4829c1de6ffd8581c40932da7a57dcfdd0610fb.zip
html: in foreign content, check for HTML integration points in breakout
elements. Pass tests10.dat, test 33: <!DOCTYPE html><svg><desc><svg><ul>a | <!DOCTYPE html> | <html> | <head> | <body> | <svg svg> | <svg desc> | <svg svg> | <ul> | "a" Also pass test 34: <!DOCTYPE html><p><svg><desc><p> R=andybalholm, dsymonds CC=golang-dev https://golang.org/cl/5536048
-rw-r--r--src/pkg/html/parse.go4
-rw-r--r--src/pkg/html/parse_test.go2
2 files changed, 3 insertions, 3 deletions
diff --git a/src/pkg/html/parse.go b/src/pkg/html/parse.go
index 43c04727ab..04f4ae7533 100644
--- a/src/pkg/html/parse.go
+++ b/src/pkg/html/parse.go
@@ -1713,8 +1713,8 @@ func parseForeignContent(p *parser) bool {
}
if breakout[p.tok.Data] {
for i := len(p.oe) - 1; i >= 0; i-- {
- // TODO: HTML, MathML integration points.
- if p.oe[i].Namespace == "" {
+ // TODO: MathML integration points.
+ if p.oe[i].Namespace == "" || htmlIntegrationPoint(p.oe[i]) {
p.oe = p.oe[:i+1]
break
}
diff --git a/src/pkg/html/parse_test.go b/src/pkg/html/parse_test.go
index c929c25772..1528dffaaf 100644
--- a/src/pkg/html/parse_test.go
+++ b/src/pkg/html/parse_test.go
@@ -184,7 +184,7 @@ func TestParser(t *testing.T) {
{"tests4.dat", -1},
{"tests5.dat", -1},
{"tests6.dat", -1},
- {"tests10.dat", 33},
+ {"tests10.dat", 35},
}
for _, tf := range testFiles {
f, err := os.Open("testdata/webkit/" + tf.filename)