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

Unified Diff: Source/core/html/parser/HTMLTreeBuilderSimulator.cpp

Issue 110843004: Replaced HTMLIdentifier with an atomized string factory function (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Review fixes Created 7 years 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
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;

Powered by Google App Engine
This is Rietveld 408576698