diff --git a/mozilla/htmlparser/src/nsParser.cpp b/mozilla/htmlparser/src/nsParser.cpp index c13c72e47eb..dee54a0a21e 100644 --- a/mozilla/htmlparser/src/nsParser.cpp +++ b/mozilla/htmlparser/src/nsParser.cpp @@ -2392,11 +2392,12 @@ ParserWriteFunc(nsIInputStream* in, // Only continue if it's a recognized charset and not // one of a designated set that we ignore. if (NS_SUCCEEDED(result) && - !preferred.Equals(NS_LITERAL_STRING("UTF-16")) && - !preferred.Equals(NS_LITERAL_STRING("UTF-16BE")) && - !preferred.Equals(NS_LITERAL_STRING("UTF-16LE")) && - !preferred.Equals(NS_LITERAL_STRING("UTF-32BE")) && - !preferred.Equals(NS_LITERAL_STRING("UTF-32LE"))) { + ((kCharsetFromByteOrderMark == guessSource) || + (!preferred.Equals(NS_LITERAL_STRING("UTF-16")) && + !preferred.Equals(NS_LITERAL_STRING("UTF-16BE")) && + !preferred.Equals(NS_LITERAL_STRING("UTF-16LE")) && + !preferred.Equals(NS_LITERAL_STRING("UTF-32BE")) && + !preferred.Equals(NS_LITERAL_STRING("UTF-32LE"))))) { guess.Assign(preferred); pws->mParser->SetDocumentCharset(guess, guessSource); pws->mParser->SetSinkCharset(guess); diff --git a/mozilla/parser/htmlparser/src/nsParser.cpp b/mozilla/parser/htmlparser/src/nsParser.cpp index c13c72e47eb..dee54a0a21e 100644 --- a/mozilla/parser/htmlparser/src/nsParser.cpp +++ b/mozilla/parser/htmlparser/src/nsParser.cpp @@ -2392,11 +2392,12 @@ ParserWriteFunc(nsIInputStream* in, // Only continue if it's a recognized charset and not // one of a designated set that we ignore. if (NS_SUCCEEDED(result) && - !preferred.Equals(NS_LITERAL_STRING("UTF-16")) && - !preferred.Equals(NS_LITERAL_STRING("UTF-16BE")) && - !preferred.Equals(NS_LITERAL_STRING("UTF-16LE")) && - !preferred.Equals(NS_LITERAL_STRING("UTF-32BE")) && - !preferred.Equals(NS_LITERAL_STRING("UTF-32LE"))) { + ((kCharsetFromByteOrderMark == guessSource) || + (!preferred.Equals(NS_LITERAL_STRING("UTF-16")) && + !preferred.Equals(NS_LITERAL_STRING("UTF-16BE")) && + !preferred.Equals(NS_LITERAL_STRING("UTF-16LE")) && + !preferred.Equals(NS_LITERAL_STRING("UTF-32BE")) && + !preferred.Equals(NS_LITERAL_STRING("UTF-32LE"))))) { guess.Assign(preferred); pws->mParser->SetDocumentCharset(guess, guessSource); pws->mParser->SetSinkCharset(guess);