]> Cypherpunks repositories - gostls13.git/commitdiff
html: in foreign content, check for HTML integration points in breakout
authorNigel Tao <nigeltao@golang.org>
Thu, 19 Jan 2012 06:41:10 +0000 (17:41 +1100)
committerNigel Tao <nigeltao@golang.org>
Thu, 19 Jan 2012 06:41:10 +0000 (17:41 +1100)
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

src/pkg/html/parse.go
src/pkg/html/parse_test.go

index 43c04727ab83d7adfdbbab3372d54d1c9e2427b5..04f4ae7533494312ae79bf591ff33902daa3bceb 100644 (file)
@@ -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
                                }
index c929c257727f2e27fbdef26bd2645d18b3b7083a..1528dffaafa1533304fdba8022b3db5f4b0aa648 100644 (file)
@@ -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)