diff --git a/mozilla/htmlparser/src/nsExpatTokenizer.cpp b/mozilla/htmlparser/src/nsExpatTokenizer.cpp
index 80d360944f4..8dad05d59c0 100644
--- a/mozilla/htmlparser/src/nsExpatTokenizer.cpp
+++ b/mozilla/htmlparser/src/nsExpatTokenizer.cpp
@@ -60,8 +60,6 @@ typedef struct _XMLParserState {
And now for the main class -- nsExpatTokenizer...
************************************************************************/
-static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
-static NS_DEFINE_IID(kITokenizerIID, NS_ITOKENIZER_IID);
static NS_DEFINE_IID(kHTMLTokenizerIID, NS_HTMLTOKENIZER_IID);
static NS_DEFINE_IID(kClassIID, NS_EXPATTOKENIZER_IID);
@@ -100,10 +98,10 @@ nsresult nsExpatTokenizer::QueryInterface(const nsIID& aIID, void** aInstancePtr
return NS_ERROR_NULL_POINTER;
}
- if(aIID.Equals(kISupportsIID)) { //do IUnknown...
+ if(aIID.Equals(NS_GET_IID(nsISupports))) { //do IUnknown...
*aInstancePtr = (nsExpatTokenizer*)(this);
}
- else if(aIID.Equals(kITokenizerIID)) { //do ITokenizer base class...
+ else if(aIID.Equals(NS_GET_IID(nsITokenizer))) { //do ITokenizer base class...
*aInstancePtr = (nsITokenizer*)(this);
}
else if(aIID.Equals(kHTMLTokenizerIID)) { //do nsHTMLTokenizer base class...
@@ -627,12 +625,19 @@ void nsExpatTokenizer::HandleCharacterData(void *userData, const XML_Char *s, in
void nsExpatTokenizer::HandleComment(void *userData, const XML_Char *name) {
XMLParserState* state = (XMLParserState*) userData;
- CToken* theToken = state->tokenAllocator->CreateTokenOfType(eToken_comment, eHTMLTag_unknown, nsLiteralString((PRUnichar*)name));
- if(theToken) {
- AddToken(theToken, NS_OK, state->tokenDeque, state->tokenAllocator);
- }
- else{
- //THROW A HUGE ERROR IF WE CANT CREATE A TOKEN!
+ if (state->indoctype) {
+ // We do not want comments popping out of the doctype...
+ state->doctypeText.Append(NS_LITERAL_STRING(""));
+ } else {
+ CToken* theToken = state->tokenAllocator->CreateTokenOfType(eToken_comment, eHTMLTag_unknown, nsLiteralString((PRUnichar*)name));
+ if(theToken) {
+ AddToken(theToken, NS_OK, state->tokenDeque, state->tokenAllocator);
+ }
+ else{
+ //THROW A HUGE ERROR IF WE CANT CREATE A TOKEN!
+ }
}
}
diff --git a/mozilla/htmlparser/src/nsITokenizer.h b/mozilla/htmlparser/src/nsITokenizer.h
index c6f6ad1a088..0fd976d31c5 100644
--- a/mozilla/htmlparser/src/nsITokenizer.h
+++ b/mozilla/htmlparser/src/nsITokenizer.h
@@ -57,6 +57,7 @@ public:
class nsITokenizer : public nsISupports {
public:
+ NS_DEFINE_STATIC_IID_ACCESSOR(NS_ITOKENIZER_IID)
virtual nsresult WillTokenize(PRBool aIsFinalChunk,nsTokenAllocator* aTokenAllocator)=0;
virtual nsresult ConsumeToken(nsScanner& aScanner,PRBool& aFlushTokens)=0;
diff --git a/mozilla/parser/htmlparser/src/nsExpatTokenizer.cpp b/mozilla/parser/htmlparser/src/nsExpatTokenizer.cpp
index 80d360944f4..8dad05d59c0 100644
--- a/mozilla/parser/htmlparser/src/nsExpatTokenizer.cpp
+++ b/mozilla/parser/htmlparser/src/nsExpatTokenizer.cpp
@@ -60,8 +60,6 @@ typedef struct _XMLParserState {
And now for the main class -- nsExpatTokenizer...
************************************************************************/
-static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID);
-static NS_DEFINE_IID(kITokenizerIID, NS_ITOKENIZER_IID);
static NS_DEFINE_IID(kHTMLTokenizerIID, NS_HTMLTOKENIZER_IID);
static NS_DEFINE_IID(kClassIID, NS_EXPATTOKENIZER_IID);
@@ -100,10 +98,10 @@ nsresult nsExpatTokenizer::QueryInterface(const nsIID& aIID, void** aInstancePtr
return NS_ERROR_NULL_POINTER;
}
- if(aIID.Equals(kISupportsIID)) { //do IUnknown...
+ if(aIID.Equals(NS_GET_IID(nsISupports))) { //do IUnknown...
*aInstancePtr = (nsExpatTokenizer*)(this);
}
- else if(aIID.Equals(kITokenizerIID)) { //do ITokenizer base class...
+ else if(aIID.Equals(NS_GET_IID(nsITokenizer))) { //do ITokenizer base class...
*aInstancePtr = (nsITokenizer*)(this);
}
else if(aIID.Equals(kHTMLTokenizerIID)) { //do nsHTMLTokenizer base class...
@@ -627,12 +625,19 @@ void nsExpatTokenizer::HandleCharacterData(void *userData, const XML_Char *s, in
void nsExpatTokenizer::HandleComment(void *userData, const XML_Char *name) {
XMLParserState* state = (XMLParserState*) userData;
- CToken* theToken = state->tokenAllocator->CreateTokenOfType(eToken_comment, eHTMLTag_unknown, nsLiteralString((PRUnichar*)name));
- if(theToken) {
- AddToken(theToken, NS_OK, state->tokenDeque, state->tokenAllocator);
- }
- else{
- //THROW A HUGE ERROR IF WE CANT CREATE A TOKEN!
+ if (state->indoctype) {
+ // We do not want comments popping out of the doctype...
+ state->doctypeText.Append(NS_LITERAL_STRING(""));
+ } else {
+ CToken* theToken = state->tokenAllocator->CreateTokenOfType(eToken_comment, eHTMLTag_unknown, nsLiteralString((PRUnichar*)name));
+ if(theToken) {
+ AddToken(theToken, NS_OK, state->tokenDeque, state->tokenAllocator);
+ }
+ else{
+ //THROW A HUGE ERROR IF WE CANT CREATE A TOKEN!
+ }
}
}
diff --git a/mozilla/parser/htmlparser/src/nsITokenizer.h b/mozilla/parser/htmlparser/src/nsITokenizer.h
index c6f6ad1a088..0fd976d31c5 100644
--- a/mozilla/parser/htmlparser/src/nsITokenizer.h
+++ b/mozilla/parser/htmlparser/src/nsITokenizer.h
@@ -57,6 +57,7 @@ public:
class nsITokenizer : public nsISupports {
public:
+ NS_DEFINE_STATIC_IID_ACCESSOR(NS_ITOKENIZER_IID)
virtual nsresult WillTokenize(PRBool aIsFinalChunk,nsTokenAllocator* aTokenAllocator)=0;
virtual nsresult ConsumeToken(nsScanner& aScanner,PRBool& aFlushTokens)=0;