diff --git a/mozilla/htmlparser/src/CNavDTD.cpp b/mozilla/htmlparser/src/CNavDTD.cpp
index 802a4519eb2..7d577e7d3e7 100644
--- a/mozilla/htmlparser/src/CNavDTD.cpp
+++ b/mozilla/htmlparser/src/CNavDTD.cpp
@@ -492,9 +492,21 @@ nsresult CNavDTD::BuildModel(nsIParser* aParser,nsITokenizer* aTokenizer,nsIToke
mTokenizer->PushTokenFront(theToken);
}
//if the content model is empty, then begin by opening ...
- theToken=NS_STATIC_CAST(CStartToken*,mTokenAllocator->CreateTokenOfType(eToken_start,eHTMLTag_html,NS_LITERAL_STRING("html")));
- if(theToken) {
- mTokenizer->PushTokenFront(theToken); //this token should get pushed on the context stack.
+ theToken = (CStartToken*)mTokenizer->GetTokenAt(0);
+ if (theToken) {
+ eHTMLTags theTag = (eHTMLTags)theToken->GetTypeID();
+ if (theTag != eHTMLTag_html) {
+ theToken = NS_STATIC_CAST(CStartToken*,mTokenAllocator->CreateTokenOfType(eToken_start,eHTMLTag_html,NS_LITERAL_STRING("html")));
+ if (theToken) {
+ mTokenizer->PushTokenFront(theToken); //this token should get pushed on the context stack.
+ }
+ }
+ }
+ else {
+ theToken = NS_STATIC_CAST(CStartToken*,mTokenAllocator->CreateTokenOfType(eToken_start,eHTMLTag_html,NS_LITERAL_STRING("html")));
+ if (theToken) {
+ mTokenizer->PushTokenFront(theToken); //this token should get pushed on the context stack.
+ }
}
}
diff --git a/mozilla/parser/htmlparser/src/CNavDTD.cpp b/mozilla/parser/htmlparser/src/CNavDTD.cpp
index 802a4519eb2..7d577e7d3e7 100644
--- a/mozilla/parser/htmlparser/src/CNavDTD.cpp
+++ b/mozilla/parser/htmlparser/src/CNavDTD.cpp
@@ -492,9 +492,21 @@ nsresult CNavDTD::BuildModel(nsIParser* aParser,nsITokenizer* aTokenizer,nsIToke
mTokenizer->PushTokenFront(theToken);
}
//if the content model is empty, then begin by opening ...
- theToken=NS_STATIC_CAST(CStartToken*,mTokenAllocator->CreateTokenOfType(eToken_start,eHTMLTag_html,NS_LITERAL_STRING("html")));
- if(theToken) {
- mTokenizer->PushTokenFront(theToken); //this token should get pushed on the context stack.
+ theToken = (CStartToken*)mTokenizer->GetTokenAt(0);
+ if (theToken) {
+ eHTMLTags theTag = (eHTMLTags)theToken->GetTypeID();
+ if (theTag != eHTMLTag_html) {
+ theToken = NS_STATIC_CAST(CStartToken*,mTokenAllocator->CreateTokenOfType(eToken_start,eHTMLTag_html,NS_LITERAL_STRING("html")));
+ if (theToken) {
+ mTokenizer->PushTokenFront(theToken); //this token should get pushed on the context stack.
+ }
+ }
+ }
+ else {
+ theToken = NS_STATIC_CAST(CStartToken*,mTokenAllocator->CreateTokenOfType(eToken_start,eHTMLTag_html,NS_LITERAL_STRING("html")));
+ if (theToken) {
+ mTokenizer->PushTokenFront(theToken); //this token should get pushed on the context stack.
+ }
}
}