@@ -1541,13 +1541,16 @@ def __init__(self, parser, tree):
1541
1541
("frame" , self .startTagFrame ),
1542
1542
("noframes" , self .startTagNoframes )
1543
1543
])
1544
- self .startTagHandler .default = self .tagOther
1544
+ self .startTagHandler .default = self .startTagOther
1545
1545
1546
- self .endTagHandler = utils .MethodDispatcher ([("frameset" , self .endTagFrameset )])
1547
- self .endTagHandler .default = self .tagOther
1546
+ self .endTagHandler = utils .MethodDispatcher ([
1547
+ ("frameset" , self .endTagFrameset )
1548
+ ])
1549
+ self .endTagHandler .default = self .endTagOther
1548
1550
1549
1551
def processCharacters (self , data ):
1550
- self .parser .parseError ()
1552
+ self .parser .parseError ("Unepxected characters in the frameset phase. "
1553
+ "Characters ignored." )
1551
1554
1552
1555
def startTagFrameset (self , name , attributes ):
1553
1556
self .tree .insertElement (name , attributes )
@@ -1559,18 +1562,26 @@ def startTagFrame(self, name, attributes):
1559
1562
def startTagNoframes (self , name , attributes ):
1560
1563
self .parser .phases ["inBody" ].processStartTag (name , attributes )
1561
1564
1565
+ def startTagOther (self , name , attributes ):
1566
+ self .parser .parseError ("Unexpected start tag token (" + name + \
1567
+ ") in the frameset phase." )
1568
+
1562
1569
def endTagFrameset (self , name ):
1563
1570
if self .tree .openElements [- 1 ].name == "html" :
1564
1571
# innerHTML case
1565
- self .parser .parseError ()
1572
+ self .parser .parseError ("Unexpected end tag token (frameset) in the"
1573
+ "frameset phase (innerHTML)" )
1566
1574
else :
1567
1575
self .tree .openElements .pop ()
1568
- if not self .parser .innerHTML and \
1569
- self .tree .openElements [- 1 ].name == "frameset" :
1576
+ if not self .parser .innerHTML and \
1577
+ self .tree .openElements [- 1 ].name != "frameset" :
1578
+ # If we're not in innerHTML mode and the the current node is not a
1579
+ # "frameset" element (anymore) then switch.
1570
1580
self .parser .phase = self .parser .phases ["afterFrameset" ]
1571
1581
1572
- def tagOther (self , name , attributes = {}):
1573
- self .parser .parseError ()
1582
+ def endTagOther (self , name ):
1583
+ self .parser .parseError ("Unexpected end tag token (" + name +
1584
+ ") in the frameset phase." )
1574
1585
1575
1586
1576
1587
class AfterFramesetPhase (Phase ):
0 commit comments