| 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 {
|
|
|