Bug 1445541 - Enable the character encoding menu when the document is decoded as UTF-8 and an error is found, instead of disabling it when no errors are found. r=hsivonen

MozReview-Commit-ID: 1e6kQbAxcqm
This commit is contained in:
Masatoshi Kimura
2018-04-06 06:20:28 +09:00
parent a8330e650b
commit 63783eda6f
7 changed files with 21 additions and 13 deletions

View File

@@ -835,7 +835,12 @@ nsHtml5StreamParser::WriteStreamBytes(const uint8_t* aFromSegment,
bool hadErrors;
Tie(result, read, written, hadErrors) =
mUnicodeDecoder->DecodeToUTF16(src, dst, false);
mHasHadErrors |= hadErrors;
if (hadErrors && !mHasHadErrors) {
mHasHadErrors = true;
if (mEncoding == UTF_8_ENCODING) {
mTreeBuilder->TryToEnableEncodingMenu();
}
}
src = src.From(read);
totalRead += read;
mLastBuffer->AdvanceEnd(written);
@@ -1086,7 +1091,12 @@ nsHtml5StreamParser::DoStopRequest()
bool hadErrors;
Tie(result, read, written, hadErrors) =
mUnicodeDecoder->DecodeToUTF16(src, dst, true);
mHasHadErrors |= hadErrors;
if (hadErrors && !mHasHadErrors) {
mHasHadErrors = true;
if (mEncoding == UTF_8_ENCODING) {
mTreeBuilder->TryToEnableEncodingMenu();
}
}
MOZ_ASSERT(read == 0, "How come an empty span was read form?");
mLastBuffer->AdvanceEnd(written);
if (result == kOutputFull) {
@@ -1442,9 +1452,6 @@ nsHtml5StreamParser::ParseAvailableData()
return;
}
mAtEOF = true;
if (mEncoding == UTF_8_ENCODING && !mHasHadErrors) {
mTreeBuilder->TryToDisableEncodingMenu();
}
if (mCharsetSource < kCharsetFromMetaTag) {
if (mInitialEncodingWasFromParentFrame) {
// Unfortunately, this check doesn't take effect for