diff --git a/htmlparser/src/nsParser.cpp b/htmlparser/src/nsParser.cpp
index 3c61b2f5d1a9..b7a79edeeab3 100644
--- a/htmlparser/src/nsParser.cpp
+++ b/htmlparser/src/nsParser.cpp
@@ -327,6 +327,8 @@ void nsParser::SetCommand(const char* aCommand){
void nsParser::SetDocumentCharset(nsString& aCharset, nsCharsetSource aCharsetSource){
mCharset = aCharset;
mCharsetSource = aCharsetSource;
+ if(mParserContext && mParserContext->mScanner)
+ mParserContext->mScanner->SetDocumentCharset(aCharset, aCharsetSource);
}
/**
@@ -1344,7 +1346,6 @@ nsresult nsParser::OnDataAvailable(nsIChannel* channel, nsISupports* aContext,
printf("xmlencoding detect- %s\n", guess.ToNewCString());
#endif
this->SetDocumentCharset(guess, guessSource);
- mParserContext->mScanner->SetDocumentCharset(guess, guessSource);
}
}
theTotalRead+=theNumRead;
diff --git a/parser/htmlparser/src/nsParser.cpp b/parser/htmlparser/src/nsParser.cpp
index 3c61b2f5d1a9..b7a79edeeab3 100644
--- a/parser/htmlparser/src/nsParser.cpp
+++ b/parser/htmlparser/src/nsParser.cpp
@@ -327,6 +327,8 @@ void nsParser::SetCommand(const char* aCommand){
void nsParser::SetDocumentCharset(nsString& aCharset, nsCharsetSource aCharsetSource){
mCharset = aCharset;
mCharsetSource = aCharsetSource;
+ if(mParserContext && mParserContext->mScanner)
+ mParserContext->mScanner->SetDocumentCharset(aCharset, aCharsetSource);
}
/**
@@ -1344,7 +1346,6 @@ nsresult nsParser::OnDataAvailable(nsIChannel* channel, nsISupports* aContext,
printf("xmlencoding detect- %s\n", guess.ToNewCString());
#endif
this->SetDocumentCharset(guess, guessSource);
- mParserContext->mScanner->SetDocumentCharset(guess, guessSource);
}
}
theTotalRead+=theNumRead;