Bug 1552008 - Track column number in the HTML. r=smaug,nchevobbe

Differential Revision: https://phabricator.services.mozilla.com/D170579
This commit is contained in:
Henri Sivonen
2023-03-08 15:32:52 +00:00
parent 3d3e7ea5c3
commit d88d111193
7 changed files with 88 additions and 17 deletions

View File

@@ -791,7 +791,7 @@ nsresult nsHtml5StreamParser::SniffStreamBytes(Span<const uint8_t> aFromSegment,
mozilla::MutexAutoLock speculationAutoLock(mSpeculationMutex);
nsHtml5Speculation* speculation = new nsHtml5Speculation(
mFirstBuffer, mFirstBuffer->getStart(), mTokenizer->getLineNumber(),
mTreeBuilder->newSnapshot());
mTokenizer->getColumnNumber(), mTreeBuilder->newSnapshot());
MOZ_ASSERT(!mFlushTimerArmed, "How did we end up arming the timer?");
if (mMode == VIEW_SOURCE_HTML) {
mTokenizer->SetViewSourceOpSink(speculation);
@@ -1999,7 +1999,7 @@ void nsHtml5StreamParser::DiscardMetaSpeculation() {
nsHtml5Speculation* speculation = new nsHtml5Speculation(
mFirstBuffer, mFirstBuffer->getStart(), mTokenizer->getLineNumber(),
mTreeBuilder->newSnapshot());
mTokenizer->getColumnNumber(), mTreeBuilder->newSnapshot());
MOZ_ASSERT(!mFlushTimerArmed, "How did we end up arming the timer?");
if (mMode == VIEW_SOURCE_HTML) {
mTokenizer->SetViewSourceOpSink(speculation);
@@ -2486,7 +2486,7 @@ void nsHtml5StreamParser::ParseAvailableData() {
mozilla::MutexAutoLock speculationAutoLock(mSpeculationMutex);
nsHtml5Speculation* speculation = new nsHtml5Speculation(
mFirstBuffer, mFirstBuffer->getStart(), mTokenizer->getLineNumber(),
mTreeBuilder->newSnapshot());
mTokenizer->getColumnNumber(), mTreeBuilder->newSnapshot());
mTreeBuilder->AddSnapshotToScript(speculation->GetSnapshot(),
speculation->GetStartLineNumber());
if (mLookingForMetaCharset) {
@@ -2649,12 +2649,15 @@ void nsHtml5StreamParser::ContinueAfterScriptsOrEncodingCommitment(
mFirstBuffer = speculation->GetBuffer();
mFirstBuffer->setStart(speculation->GetStart());
mTokenizer->setLineNumber(speculation->GetStartLineNumber());
mTokenizer->setColumnNumberAndResetNextLine(
speculation->GetStartColumnNumber());
nsContentUtils::ReportToConsole(
nsIScriptError::warningFlag, "DOM Events"_ns,
mExecutor->GetDocument(), nsContentUtils::eDOM_PROPERTIES,
"SpeculationFailed2", nsTArray<nsString>(), nullptr, u""_ns,
speculation->GetStartLineNumber());
speculation->GetStartLineNumber(),
speculation->GetStartColumnNumber());
nsHtml5OwningUTF16Buffer* buffer = mFirstBuffer->next;
while (buffer) {