Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(218)

Unified Diff: sky/engine/core/html/parser/HTMLTokenizer.cpp

Issue 678913002: Remove ScriptData* states (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: Created 6 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « sky/engine/core/html/parser/HTMLTokenizer.h ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: sky/engine/core/html/parser/HTMLTokenizer.cpp
diff --git a/sky/engine/core/html/parser/HTMLTokenizer.cpp b/sky/engine/core/html/parser/HTMLTokenizer.cpp
index 8fbf9ac43ec401411e423ab7b51c519e621f93cf..7e765b277ea71084fe31a34ad8f7308930a44c34 100644
--- a/sky/engine/core/html/parser/HTMLTokenizer.cpp
+++ b/sky/engine/core/html/parser/HTMLTokenizer.cpp
@@ -86,10 +86,6 @@ static inline bool isEndTagBufferingState(HTMLTokenizer::State state)
switch (state) {
case HTMLTokenizer::RAWTEXTEndTagOpenState:
case HTMLTokenizer::RAWTEXTEndTagNameState:
- case HTMLTokenizer::ScriptDataEndTagOpenState:
- case HTMLTokenizer::ScriptDataEndTagNameState:
- case HTMLTokenizer::ScriptDataEscapedEndTagOpenState:
- case HTMLTokenizer::ScriptDataEscapedEndTagNameState:
return true;
default:
return false;
@@ -231,18 +227,6 @@ bool HTMLTokenizer::nextToken(SegmentedString& source, HTMLToken& token)
}
END_STATE()
- HTML_BEGIN_STATE(ScriptDataState) {
- if (cc == '<')
- HTML_ADVANCE_TO(ScriptDataLessThanSignState);
- else if (cc == kEndOfFileMarker)
- return emitEndOfFile(source);
- else {
- bufferCharacter(cc);
- HTML_ADVANCE_TO(ScriptDataState);
- }
- }
- END_STATE()
-
HTML_BEGIN_STATE(TagOpenState) {
if (cc == '!')
HTML_ADVANCE_TO(MarkupDeclarationOpenState);
@@ -377,325 +361,6 @@ bool HTMLTokenizer::nextToken(SegmentedString& source, HTMLToken& token)
}
END_STATE()
- HTML_BEGIN_STATE(ScriptDataLessThanSignState) {
- if (cc == '/') {
- m_temporaryBuffer.clear();
- ASSERT(m_bufferedEndTagName.isEmpty());
- HTML_ADVANCE_TO(ScriptDataEndTagOpenState);
- } else if (cc == '!') {
- bufferCharacter('<');
- bufferCharacter('!');
- HTML_ADVANCE_TO(ScriptDataEscapeStartState);
- } else {
- bufferCharacter('<');
- HTML_RECONSUME_IN(ScriptDataState);
- }
- }
- END_STATE()
-
- HTML_BEGIN_STATE(ScriptDataEndTagOpenState) {
- if (isASCIIUpper(cc)) {
- m_temporaryBuffer.append(static_cast<LChar>(cc));
- addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc)));
- HTML_ADVANCE_TO(ScriptDataEndTagNameState);
- } else if (isASCIILower(cc)) {
- m_temporaryBuffer.append(static_cast<LChar>(cc));
- addToPossibleEndTag(static_cast<LChar>(cc));
- HTML_ADVANCE_TO(ScriptDataEndTagNameState);
- } else {
- bufferCharacter('<');
- bufferCharacter('/');
- HTML_RECONSUME_IN(ScriptDataState);
- }
- }
- END_STATE()
-
- HTML_BEGIN_STATE(ScriptDataEndTagNameState) {
- if (isASCIIUpper(cc)) {
- m_temporaryBuffer.append(static_cast<LChar>(cc));
- addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc)));
- HTML_ADVANCE_TO(ScriptDataEndTagNameState);
- } else if (isASCIILower(cc)) {
- m_temporaryBuffer.append(static_cast<LChar>(cc));
- addToPossibleEndTag(static_cast<LChar>(cc));
- HTML_ADVANCE_TO(ScriptDataEndTagNameState);
- } else {
- if (isTokenizerWhitespace(cc)) {
- if (isAppropriateEndTag()) {
- m_temporaryBuffer.append(static_cast<LChar>(cc));
- FLUSH_AND_ADVANCE_TO(BeforeAttributeNameState);
- }
- } else if (cc == '/') {
- if (isAppropriateEndTag()) {
- m_temporaryBuffer.append(static_cast<LChar>(cc));
- FLUSH_AND_ADVANCE_TO(SelfClosingStartTagState);
- }
- } else if (cc == '>') {
- if (isAppropriateEndTag()) {
- m_temporaryBuffer.append(static_cast<LChar>(cc));
- return flushEmitAndResumeIn(source, HTMLTokenizer::DataState);
- }
- }
- bufferCharacter('<');
- bufferCharacter('/');
- m_token->appendToCharacter(m_temporaryBuffer);
- m_bufferedEndTagName.clear();
- m_temporaryBuffer.clear();
- HTML_RECONSUME_IN(ScriptDataState);
- }
- }
- END_STATE()
-
- HTML_BEGIN_STATE(ScriptDataEscapeStartState) {
- if (cc == '-') {
- bufferCharacter(cc);
- HTML_ADVANCE_TO(ScriptDataEscapeStartDashState);
- } else
- HTML_RECONSUME_IN(ScriptDataState);
- }
- END_STATE()
-
- HTML_BEGIN_STATE(ScriptDataEscapeStartDashState) {
- if (cc == '-') {
- bufferCharacter(cc);
- HTML_ADVANCE_TO(ScriptDataEscapedDashDashState);
- } else
- HTML_RECONSUME_IN(ScriptDataState);
- }
- END_STATE()
-
- HTML_BEGIN_STATE(ScriptDataEscapedState) {
- if (cc == '-') {
- bufferCharacter(cc);
- HTML_ADVANCE_TO(ScriptDataEscapedDashState);
- } else if (cc == '<')
- HTML_ADVANCE_TO(ScriptDataEscapedLessThanSignState);
- else if (cc == kEndOfFileMarker) {
- parseError();
- HTML_RECONSUME_IN(DataState);
- } else {
- bufferCharacter(cc);
- HTML_ADVANCE_TO(ScriptDataEscapedState);
- }
- }
- END_STATE()
-
- HTML_BEGIN_STATE(ScriptDataEscapedDashState) {
- if (cc == '-') {
- bufferCharacter(cc);
- HTML_ADVANCE_TO(ScriptDataEscapedDashDashState);
- } else if (cc == '<')
- HTML_ADVANCE_TO(ScriptDataEscapedLessThanSignState);
- else if (cc == kEndOfFileMarker) {
- parseError();
- HTML_RECONSUME_IN(DataState);
- } else {
- bufferCharacter(cc);
- HTML_ADVANCE_TO(ScriptDataEscapedState);
- }
- }
- END_STATE()
-
- HTML_BEGIN_STATE(ScriptDataEscapedDashDashState) {
- if (cc == '-') {
- bufferCharacter(cc);
- HTML_ADVANCE_TO(ScriptDataEscapedDashDashState);
- } else if (cc == '<')
- HTML_ADVANCE_TO(ScriptDataEscapedLessThanSignState);
- else if (cc == '>') {
- bufferCharacter(cc);
- HTML_ADVANCE_TO(ScriptDataState);
- } else if (cc == kEndOfFileMarker) {
- parseError();
- HTML_RECONSUME_IN(DataState);
- } else {
- bufferCharacter(cc);
- HTML_ADVANCE_TO(ScriptDataEscapedState);
- }
- }
- END_STATE()
-
- HTML_BEGIN_STATE(ScriptDataEscapedLessThanSignState) {
- if (cc == '/') {
- m_temporaryBuffer.clear();
- ASSERT(m_bufferedEndTagName.isEmpty());
- HTML_ADVANCE_TO(ScriptDataEscapedEndTagOpenState);
- } else if (isASCIIUpper(cc)) {
- bufferCharacter('<');
- bufferCharacter(cc);
- m_temporaryBuffer.clear();
- m_temporaryBuffer.append(toLowerCase(cc));
- HTML_ADVANCE_TO(ScriptDataDoubleEscapeStartState);
- } else if (isASCIILower(cc)) {
- bufferCharacter('<');
- bufferCharacter(cc);
- m_temporaryBuffer.clear();
- m_temporaryBuffer.append(static_cast<LChar>(cc));
- HTML_ADVANCE_TO(ScriptDataDoubleEscapeStartState);
- } else {
- bufferCharacter('<');
- HTML_RECONSUME_IN(ScriptDataEscapedState);
- }
- }
- END_STATE()
-
- HTML_BEGIN_STATE(ScriptDataEscapedEndTagOpenState) {
- if (isASCIIUpper(cc)) {
- m_temporaryBuffer.append(static_cast<LChar>(cc));
- addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc)));
- HTML_ADVANCE_TO(ScriptDataEscapedEndTagNameState);
- } else if (isASCIILower(cc)) {
- m_temporaryBuffer.append(static_cast<LChar>(cc));
- addToPossibleEndTag(static_cast<LChar>(cc));
- HTML_ADVANCE_TO(ScriptDataEscapedEndTagNameState);
- } else {
- bufferCharacter('<');
- bufferCharacter('/');
- HTML_RECONSUME_IN(ScriptDataEscapedState);
- }
- }
- END_STATE()
-
- HTML_BEGIN_STATE(ScriptDataEscapedEndTagNameState) {
- if (isASCIIUpper(cc)) {
- m_temporaryBuffer.append(static_cast<LChar>(cc));
- addToPossibleEndTag(static_cast<LChar>(toLowerCase(cc)));
- HTML_ADVANCE_TO(ScriptDataEscapedEndTagNameState);
- } else if (isASCIILower(cc)) {
- m_temporaryBuffer.append(static_cast<LChar>(cc));
- addToPossibleEndTag(static_cast<LChar>(cc));
- HTML_ADVANCE_TO(ScriptDataEscapedEndTagNameState);
- } else {
- if (isTokenizerWhitespace(cc)) {
- if (isAppropriateEndTag()) {
- m_temporaryBuffer.append(static_cast<LChar>(cc));
- FLUSH_AND_ADVANCE_TO(BeforeAttributeNameState);
- }
- } else if (cc == '/') {
- if (isAppropriateEndTag()) {
- m_temporaryBuffer.append(static_cast<LChar>(cc));
- FLUSH_AND_ADVANCE_TO(SelfClosingStartTagState);
- }
- } else if (cc == '>') {
- if (isAppropriateEndTag()) {
- m_temporaryBuffer.append(static_cast<LChar>(cc));
- return flushEmitAndResumeIn(source, HTMLTokenizer::DataState);
- }
- }
- bufferCharacter('<');
- bufferCharacter('/');
- m_token->appendToCharacter(m_temporaryBuffer);
- m_bufferedEndTagName.clear();
- m_temporaryBuffer.clear();
- HTML_RECONSUME_IN(ScriptDataEscapedState);
- }
- }
- END_STATE()
-
- HTML_BEGIN_STATE(ScriptDataDoubleEscapeStartState) {
- if (isTokenizerWhitespace(cc) || cc == '/' || cc == '>') {
- bufferCharacter(cc);
- if (temporaryBufferIs(HTMLNames::scriptTag.localName()))
- HTML_ADVANCE_TO(ScriptDataDoubleEscapedState);
- else
- HTML_ADVANCE_TO(ScriptDataEscapedState);
- } else if (isASCIIUpper(cc)) {
- bufferCharacter(cc);
- m_temporaryBuffer.append(toLowerCase(cc));
- HTML_ADVANCE_TO(ScriptDataDoubleEscapeStartState);
- } else if (isASCIILower(cc)) {
- bufferCharacter(cc);
- m_temporaryBuffer.append(static_cast<LChar>(cc));
- HTML_ADVANCE_TO(ScriptDataDoubleEscapeStartState);
- } else
- HTML_RECONSUME_IN(ScriptDataEscapedState);
- }
- END_STATE()
-
- HTML_BEGIN_STATE(ScriptDataDoubleEscapedState) {
- if (cc == '-') {
- bufferCharacter(cc);
- HTML_ADVANCE_TO(ScriptDataDoubleEscapedDashState);
- } else if (cc == '<') {
- bufferCharacter(cc);
- HTML_ADVANCE_TO(ScriptDataDoubleEscapedLessThanSignState);
- } else if (cc == kEndOfFileMarker) {
- parseError();
- HTML_RECONSUME_IN(DataState);
- } else {
- bufferCharacter(cc);
- HTML_ADVANCE_TO(ScriptDataDoubleEscapedState);
- }
- }
- END_STATE()
-
- HTML_BEGIN_STATE(ScriptDataDoubleEscapedDashState) {
- if (cc == '-') {
- bufferCharacter(cc);
- HTML_ADVANCE_TO(ScriptDataDoubleEscapedDashDashState);
- } else if (cc == '<') {
- bufferCharacter(cc);
- HTML_ADVANCE_TO(ScriptDataDoubleEscapedLessThanSignState);
- } else if (cc == kEndOfFileMarker) {
- parseError();
- HTML_RECONSUME_IN(DataState);
- } else {
- bufferCharacter(cc);
- HTML_ADVANCE_TO(ScriptDataDoubleEscapedState);
- }
- }
- END_STATE()
-
- HTML_BEGIN_STATE(ScriptDataDoubleEscapedDashDashState) {
- if (cc == '-') {
- bufferCharacter(cc);
- HTML_ADVANCE_TO(ScriptDataDoubleEscapedDashDashState);
- } else if (cc == '<') {
- bufferCharacter(cc);
- HTML_ADVANCE_TO(ScriptDataDoubleEscapedLessThanSignState);
- } else if (cc == '>') {
- bufferCharacter(cc);
- HTML_ADVANCE_TO(ScriptDataState);
- } else if (cc == kEndOfFileMarker) {
- parseError();
- HTML_RECONSUME_IN(DataState);
- } else {
- bufferCharacter(cc);
- HTML_ADVANCE_TO(ScriptDataDoubleEscapedState);
- }
- }
- END_STATE()
-
- HTML_BEGIN_STATE(ScriptDataDoubleEscapedLessThanSignState) {
- if (cc == '/') {
- bufferCharacter(cc);
- m_temporaryBuffer.clear();
- HTML_ADVANCE_TO(ScriptDataDoubleEscapeEndState);
- } else
- HTML_RECONSUME_IN(ScriptDataDoubleEscapedState);
- }
- END_STATE()
-
- HTML_BEGIN_STATE(ScriptDataDoubleEscapeEndState) {
- if (isTokenizerWhitespace(cc) || cc == '/' || cc == '>') {
- bufferCharacter(cc);
- if (temporaryBufferIs(HTMLNames::scriptTag.localName()))
- HTML_ADVANCE_TO(ScriptDataEscapedState);
- else
- HTML_ADVANCE_TO(ScriptDataDoubleEscapedState);
- } else if (isASCIIUpper(cc)) {
- bufferCharacter(cc);
- m_temporaryBuffer.append(toLowerCase(cc));
- HTML_ADVANCE_TO(ScriptDataDoubleEscapeEndState);
- } else if (isASCIILower(cc)) {
- bufferCharacter(cc);
- m_temporaryBuffer.append(static_cast<LChar>(cc));
- HTML_ADVANCE_TO(ScriptDataDoubleEscapeEndState);
- } else
- HTML_RECONSUME_IN(ScriptDataDoubleEscapedState);
- }
- END_STATE()
-
HTML_BEGIN_STATE(BeforeAttributeNameState) {
if (isTokenizerWhitespace(cc))
HTML_ADVANCE_TO(BeforeAttributeNameState);
« no previous file with comments | « sky/engine/core/html/parser/HTMLTokenizer.h ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698