Index: Source/core/html/parser/HTMLTokenizer.cpp |
diff --git a/Source/core/html/parser/HTMLTokenizer.cpp b/Source/core/html/parser/HTMLTokenizer.cpp |
index 8b03782d45ee356e9c575a865206a1b268ba7e4f..870f908bc202a0023a5840d2d282c697caad1895 100644 |
--- a/Source/core/html/parser/HTMLTokenizer.cpp |
+++ b/Source/core/html/parser/HTMLTokenizer.cpp |
@@ -1350,14 +1350,17 @@ bool HTMLTokenizer::nextToken(SegmentedString& source, HTMLToken& token) |
END_STATE() |
HTML_BEGIN_STATE(DOCTYPEPublicIdentifierDoubleQuotedState) { |
- if (cc == '"') |
+ if (cc == '"') { |
+ m_token->finalizeDoctypePublicIdentifier(); |
HTML_ADVANCE_TO(AfterDOCTYPEPublicIdentifierState); |
- else if (cc == '>') { |
+ } else if (cc == '>') { |
parseError(); |
+ m_token->finalizeDoctypePublicIdentifier(); |
m_token->setForceQuirks(); |
return emitAndResumeIn(source, HTMLTokenizer::DataState); |
} else if (cc == kEndOfFileMarker) { |
parseError(); |
+ m_token->finalizeDoctypePublicIdentifier(); |
m_token->setForceQuirks(); |
return emitAndReconsumeIn(source, HTMLTokenizer::DataState); |
} else { |
@@ -1368,14 +1371,17 @@ bool HTMLTokenizer::nextToken(SegmentedString& source, HTMLToken& token) |
END_STATE() |
HTML_BEGIN_STATE(DOCTYPEPublicIdentifierSingleQuotedState) { |
- if (cc == '\'') |
+ if (cc == '\'') { |
+ m_token->finalizeDoctypePublicIdentifier(); |
HTML_ADVANCE_TO(AfterDOCTYPEPublicIdentifierState); |
- else if (cc == '>') { |
+ } else if (cc == '>') { |
parseError(); |
+ m_token->finalizeDoctypePublicIdentifier(); |
m_token->setForceQuirks(); |
return emitAndResumeIn(source, HTMLTokenizer::DataState); |
} else if (cc == kEndOfFileMarker) { |
parseError(); |
+ m_token->finalizeDoctypePublicIdentifier(); |
m_token->setForceQuirks(); |
return emitAndReconsumeIn(source, HTMLTokenizer::DataState); |
} else { |
@@ -1486,14 +1492,17 @@ bool HTMLTokenizer::nextToken(SegmentedString& source, HTMLToken& token) |
END_STATE() |
HTML_BEGIN_STATE(DOCTYPESystemIdentifierDoubleQuotedState) { |
- if (cc == '"') |
+ if (cc == '"') { |
+ m_token->finalizeDoctypeSystemIdentifier(); |
HTML_ADVANCE_TO(AfterDOCTYPESystemIdentifierState); |
- else if (cc == '>') { |
+ } else if (cc == '>') { |
parseError(); |
+ m_token->finalizeDoctypeSystemIdentifier(); |
m_token->setForceQuirks(); |
return emitAndResumeIn(source, HTMLTokenizer::DataState); |
} else if (cc == kEndOfFileMarker) { |
parseError(); |
+ m_token->finalizeDoctypeSystemIdentifier(); |
m_token->setForceQuirks(); |
return emitAndReconsumeIn(source, HTMLTokenizer::DataState); |
} else { |
@@ -1504,14 +1513,17 @@ bool HTMLTokenizer::nextToken(SegmentedString& source, HTMLToken& token) |
END_STATE() |
HTML_BEGIN_STATE(DOCTYPESystemIdentifierSingleQuotedState) { |
- if (cc == '\'') |
+ if (cc == '\'') { |
+ m_token->finalizeDoctypeSystemIdentifier(); |
HTML_ADVANCE_TO(AfterDOCTYPESystemIdentifierState); |
- else if (cc == '>') { |
+ } else if (cc == '>') { |
parseError(); |
+ m_token->finalizeDoctypeSystemIdentifier(); |
m_token->setForceQuirks(); |
return emitAndResumeIn(source, HTMLTokenizer::DataState); |
} else if (cc == kEndOfFileMarker) { |
parseError(); |
+ m_token->finalizeDoctypeSystemIdentifier(); |
m_token->setForceQuirks(); |
return emitAndReconsumeIn(source, HTMLTokenizer::DataState); |
} else { |