bug 308592: MAP before BODY causes the body contents to not render. Remove MAP as a valid child of HTML, and fix a bogus check against HEAD being pushed onto mBodyContext. r+sr=jst

This commit is contained in:
mrbkap%gmail.com 2005-09-16 00:01:30 +00:00
Родитель 5f1c4fdf62
Коммит 0eaefa48bf
2 изменённых файлов: 4 добавлений и 3 удалений

Просмотреть файл

@ -781,7 +781,7 @@ nsresult CNavDTD::HandleToken(CToken* aToken,nsIParser* aParser){
eHTMLTags top = mBodyContext->Last();
NS_ASSERTION(top != eHTMLTag_userdefined,
"Userdefined tags should act as leaves in the head");
if (top != eHTMLTag_head &&
if (top != eHTMLTag_html &&
gHTMLElements[top].CanContain(theTag, mDTDMode)) {
// Some tags (such as <object> and <script>) are opened in the
// head and allow other non-head content to be children.
@ -3085,7 +3085,8 @@ CNavDTD::CloseContainer(const eHTMLTags aTag, eHTMLTags aTarget,PRBool aClosedBy
switch (aTag) {
case eHTMLTag_html:
result=CloseHTML(); break;
result=CloseHTML();
break;
case eHTMLTag_head:
result=CloseHead();

Просмотреть файл

@ -107,7 +107,7 @@ DECL_TAG_LIST(gFontKids,{eHTMLTag_legend COMMA eHTMLTag_table COMMA eHTMLTag_tex
DECL_TAG_LIST(gFormKids,{eHTMLTag_keygen})
DECL_TAG_LIST(gFramesetKids,{eHTMLTag_frame COMMA eHTMLTag_frameset COMMA eHTMLTag_noframes})
DECL_TAG_LIST(gHtmlKids,{eHTMLTag_body COMMA eHTMLTag_frameset COMMA eHTMLTag_head COMMA eHTMLTag_map COMMA eHTMLTag_noscript COMMA eHTMLTag_noframes COMMA eHTMLTag_script COMMA eHTMLTag_newline COMMA eHTMLTag_whitespace})
DECL_TAG_LIST(gHtmlKids,{eHTMLTag_body COMMA eHTMLTag_frameset COMMA eHTMLTag_head COMMA eHTMLTag_noscript COMMA eHTMLTag_noframes COMMA eHTMLTag_script COMMA eHTMLTag_newline COMMA eHTMLTag_whitespace})
DECL_TAG_LIST(gLabelKids,{eHTMLTag_span})
DECL_TAG_LIST(gLIKids,{eHTMLTag_ol COMMA eHTMLTag_ul})