Index: Source/core/html/parser/HTMLTreeBuilderSimulator.cpp |
diff --git a/Source/core/html/parser/HTMLTreeBuilderSimulator.cpp b/Source/core/html/parser/HTMLTreeBuilderSimulator.cpp |
index 32ccaaf1ae910ef58768edcf375ad5aed8b44bcd..37273cbaea093ba2ea178b508b1f9b0b8bfff2be 100644 |
--- a/Source/core/html/parser/HTMLTreeBuilderSimulator.cpp |
+++ b/Source/core/html/parser/HTMLTreeBuilderSimulator.cpp |
@@ -40,64 +40,64 @@ using namespace HTMLNames; |
static bool tokenExitsForeignContent(const CompactHTMLToken& token) |
{ |
// FIXME: This is copied from HTMLTreeBuilder::processTokenInForeignContent and changed to use threadSafeHTMLNamesMatch. |
- const HTMLIdentifier& tagName = token.data(); |
- return threadSafeHTMLNamesMatch(tagName, bTag) |
- || threadSafeHTMLNamesMatch(tagName, bigTag) |
- || threadSafeHTMLNamesMatch(tagName, blockquoteTag) |
- || threadSafeHTMLNamesMatch(tagName, bodyTag) |
- || threadSafeHTMLNamesMatch(tagName, brTag) |
- || threadSafeHTMLNamesMatch(tagName, centerTag) |
- || threadSafeHTMLNamesMatch(tagName, codeTag) |
- || threadSafeHTMLNamesMatch(tagName, ddTag) |
- || threadSafeHTMLNamesMatch(tagName, divTag) |
- || threadSafeHTMLNamesMatch(tagName, dlTag) |
- || threadSafeHTMLNamesMatch(tagName, dtTag) |
- || threadSafeHTMLNamesMatch(tagName, emTag) |
- || threadSafeHTMLNamesMatch(tagName, embedTag) |
- || threadSafeHTMLNamesMatch(tagName, h1Tag) |
- || threadSafeHTMLNamesMatch(tagName, h2Tag) |
- || threadSafeHTMLNamesMatch(tagName, h3Tag) |
- || threadSafeHTMLNamesMatch(tagName, h4Tag) |
- || threadSafeHTMLNamesMatch(tagName, h5Tag) |
- || threadSafeHTMLNamesMatch(tagName, h6Tag) |
- || threadSafeHTMLNamesMatch(tagName, headTag) |
- || threadSafeHTMLNamesMatch(tagName, hrTag) |
- || threadSafeHTMLNamesMatch(tagName, iTag) |
- || threadSafeHTMLNamesMatch(tagName, imgTag) |
- || threadSafeHTMLNamesMatch(tagName, liTag) |
- || threadSafeHTMLNamesMatch(tagName, listingTag) |
- || threadSafeHTMLNamesMatch(tagName, menuTag) |
- || threadSafeHTMLNamesMatch(tagName, metaTag) |
- || threadSafeHTMLNamesMatch(tagName, nobrTag) |
- || threadSafeHTMLNamesMatch(tagName, olTag) |
- || threadSafeHTMLNamesMatch(tagName, pTag) |
- || threadSafeHTMLNamesMatch(tagName, preTag) |
- || threadSafeHTMLNamesMatch(tagName, rubyTag) |
- || threadSafeHTMLNamesMatch(tagName, sTag) |
- || threadSafeHTMLNamesMatch(tagName, smallTag) |
- || threadSafeHTMLNamesMatch(tagName, spanTag) |
- || threadSafeHTMLNamesMatch(tagName, strongTag) |
- || threadSafeHTMLNamesMatch(tagName, strikeTag) |
- || threadSafeHTMLNamesMatch(tagName, subTag) |
- || threadSafeHTMLNamesMatch(tagName, supTag) |
- || threadSafeHTMLNamesMatch(tagName, tableTag) |
- || threadSafeHTMLNamesMatch(tagName, ttTag) |
- || threadSafeHTMLNamesMatch(tagName, uTag) |
- || threadSafeHTMLNamesMatch(tagName, ulTag) |
- || threadSafeHTMLNamesMatch(tagName, varTag) |
- || (threadSafeHTMLNamesMatch(tagName, fontTag) && (token.getAttributeItem(colorAttr) || token.getAttributeItem(faceAttr) || token.getAttributeItem(sizeAttr))); |
+ const String& tagName = token.data(); |
+ return threadSafeMatch(tagName, bTag) |
+ || threadSafeMatch(tagName, bigTag) |
+ || threadSafeMatch(tagName, blockquoteTag) |
+ || threadSafeMatch(tagName, bodyTag) |
+ || threadSafeMatch(tagName, brTag) |
+ || threadSafeMatch(tagName, centerTag) |
+ || threadSafeMatch(tagName, codeTag) |
+ || threadSafeMatch(tagName, ddTag) |
+ || threadSafeMatch(tagName, divTag) |
+ || threadSafeMatch(tagName, dlTag) |
+ || threadSafeMatch(tagName, dtTag) |
+ || threadSafeMatch(tagName, emTag) |
+ || threadSafeMatch(tagName, embedTag) |
+ || threadSafeMatch(tagName, h1Tag) |
+ || threadSafeMatch(tagName, h2Tag) |
+ || threadSafeMatch(tagName, h3Tag) |
+ || threadSafeMatch(tagName, h4Tag) |
+ || threadSafeMatch(tagName, h5Tag) |
+ || threadSafeMatch(tagName, h6Tag) |
+ || threadSafeMatch(tagName, headTag) |
+ || threadSafeMatch(tagName, hrTag) |
+ || threadSafeMatch(tagName, iTag) |
+ || threadSafeMatch(tagName, imgTag) |
+ || threadSafeMatch(tagName, liTag) |
+ || threadSafeMatch(tagName, listingTag) |
+ || threadSafeMatch(tagName, menuTag) |
+ || threadSafeMatch(tagName, metaTag) |
+ || threadSafeMatch(tagName, nobrTag) |
+ || threadSafeMatch(tagName, olTag) |
+ || threadSafeMatch(tagName, pTag) |
+ || threadSafeMatch(tagName, preTag) |
+ || threadSafeMatch(tagName, rubyTag) |
+ || threadSafeMatch(tagName, sTag) |
+ || threadSafeMatch(tagName, smallTag) |
+ || threadSafeMatch(tagName, spanTag) |
+ || threadSafeMatch(tagName, strongTag) |
+ || threadSafeMatch(tagName, strikeTag) |
+ || threadSafeMatch(tagName, subTag) |
+ || threadSafeMatch(tagName, supTag) |
+ || threadSafeMatch(tagName, tableTag) |
+ || threadSafeMatch(tagName, ttTag) |
+ || threadSafeMatch(tagName, uTag) |
+ || threadSafeMatch(tagName, ulTag) |
+ || threadSafeMatch(tagName, varTag) |
+ || (threadSafeMatch(tagName, fontTag) && (token.getAttributeItem(colorAttr) || token.getAttributeItem(faceAttr) || token.getAttributeItem(sizeAttr))); |
} |
static bool tokenExitsSVG(const CompactHTMLToken& token) |
{ |
// FIXME: It's very fragile that we special case foreignObject here to be case-insensitive. |
- return equalIgnoringCaseNonNull(token.data().asStringImpl(), SVGNames::foreignObjectTag.localName().impl()); |
+ return equalIgnoringCaseNonNull(token.data().impl(), SVGNames::foreignObjectTag.localName().impl()); |
} |
static bool tokenExitsMath(const CompactHTMLToken& token) |
{ |
// FIXME: This is copied from HTMLElementStack::isMathMLTextIntegrationPoint and changed to use threadSafeMatch. |
- const HTMLIdentifier& tagName = token.data(); |
+ const String& tagName = token.data(); |
return threadSafeMatch(tagName, MathMLNames::miTag) |
|| threadSafeMatch(tagName, MathMLNames::moTag) |
|| threadSafeMatch(tagName, MathMLNames::mnTag) |
@@ -132,7 +132,7 @@ HTMLTreeBuilderSimulator::State HTMLTreeBuilderSimulator::stateFor(HTMLTreeBuild |
bool HTMLTreeBuilderSimulator::simulate(const CompactHTMLToken& token, HTMLTokenizer* tokenizer) |
{ |
if (token.type() == HTMLToken::StartTag) { |
- const HTMLIdentifier& tagName = token.data(); |
+ const String& tagName = token.data(); |
if (threadSafeMatch(tagName, SVGNames::svgTag)) |
m_namespaceStack.append(SVG); |
if (threadSafeMatch(tagName, MathMLNames::mathTag)) |
@@ -144,30 +144,30 @@ bool HTMLTreeBuilderSimulator::simulate(const CompactHTMLToken& token, HTMLToken |
m_namespaceStack.append(HTML); |
if (!inForeignContent()) { |
// FIXME: This is just a copy of Tokenizer::updateStateFor which uses threadSafeMatches. |
- if (threadSafeHTMLNamesMatch(tagName, textareaTag) || threadSafeHTMLNamesMatch(tagName, titleTag)) |
+ if (threadSafeMatch(tagName, textareaTag) || threadSafeMatch(tagName, titleTag)) |
tokenizer->setState(HTMLTokenizer::RCDATAState); |
- else if (threadSafeHTMLNamesMatch(tagName, plaintextTag)) |
+ else if (threadSafeMatch(tagName, plaintextTag)) |
tokenizer->setState(HTMLTokenizer::PLAINTEXTState); |
- else if (threadSafeHTMLNamesMatch(tagName, scriptTag)) |
+ else if (threadSafeMatch(tagName, scriptTag)) |
tokenizer->setState(HTMLTokenizer::ScriptDataState); |
- else if (threadSafeHTMLNamesMatch(tagName, styleTag) |
- || threadSafeHTMLNamesMatch(tagName, iframeTag) |
- || threadSafeHTMLNamesMatch(tagName, xmpTag) |
- || (threadSafeHTMLNamesMatch(tagName, noembedTag) && m_options.pluginsEnabled) |
- || threadSafeHTMLNamesMatch(tagName, noframesTag) |
- || (threadSafeHTMLNamesMatch(tagName, noscriptTag) && m_options.scriptEnabled)) |
+ else if (threadSafeMatch(tagName, styleTag) |
+ || threadSafeMatch(tagName, iframeTag) |
+ || threadSafeMatch(tagName, xmpTag) |
+ || (threadSafeMatch(tagName, noembedTag) && m_options.pluginsEnabled) |
+ || threadSafeMatch(tagName, noframesTag) |
+ || (threadSafeMatch(tagName, noscriptTag) && m_options.scriptEnabled)) |
tokenizer->setState(HTMLTokenizer::RAWTEXTState); |
} |
} |
if (token.type() == HTMLToken::EndTag) { |
- const HTMLIdentifier& tagName = token.data(); |
+ const String& tagName = token.data(); |
if ((m_namespaceStack.last() == SVG && threadSafeMatch(tagName, SVGNames::svgTag)) |
|| (m_namespaceStack.last() == MathML && threadSafeMatch(tagName, MathMLNames::mathTag)) |
|| (m_namespaceStack.contains(SVG) && m_namespaceStack.last() == HTML && tokenExitsSVG(token)) |
|| (m_namespaceStack.contains(MathML) && m_namespaceStack.last() == HTML && tokenExitsMath(token))) |
m_namespaceStack.removeLast(); |
- if (threadSafeHTMLNamesMatch(tagName, scriptTag)) { |
+ if (threadSafeMatch(tagName, scriptTag)) { |
if (!inForeignContent()) |
tokenizer->setState(HTMLTokenizer::DataState); |
return false; |