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

Unified Diff: Source/core/editing/ReplaceSelectionCommand.cpp

Issue 15622005: Introduce LiteralSet (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Literal, Literal, Literal Created 7 years, 7 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 | « Source/core/editing/FormatBlockCommand.cpp ('k') | Source/wtf/LiteralSet.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/editing/ReplaceSelectionCommand.cpp
diff --git a/Source/core/editing/ReplaceSelectionCommand.cpp b/Source/core/editing/ReplaceSelectionCommand.cpp
index bfda5b2611d21baf78c87fc11322adc76ea2dd1a..033e9128ac82dc87fc29055251440cb9cc9e37c2 100644
--- a/Source/core/editing/ReplaceSelectionCommand.cpp
+++ b/Source/core/editing/ReplaceSelectionCommand.cpp
@@ -58,8 +58,8 @@
#include "core/rendering/RenderInline.h"
#include "core/rendering/RenderObject.h"
#include "core/rendering/RenderText.h"
-#include <wtf/StdLibExtras.h>
-#include <wtf/Vector.h>
+#include "wtf/StdLibExtras.h"
+#include "wtf/Vector.h"
namespace WebCore {
@@ -558,61 +558,64 @@ void ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline(Insert
}
}
-static bool isProhibitedParagraphChild(const AtomicString& name)
+static bool isProhibitedParagraphChild(const QualifiedName& name)
{
// https://dvcs.w3.org/hg/editing/raw-file/57abe6d3cb60/editing.html#prohibited-paragraph-child
- DEFINE_STATIC_LOCAL(HashSet<AtomicString>, elements, ());
- if (elements.isEmpty()) {
- elements.add(addressTag.localName());
- elements.add(articleTag.localName());
- elements.add(asideTag.localName());
- elements.add(blockquoteTag.localName());
- elements.add(captionTag.localName());
- elements.add(centerTag.localName());
- elements.add(colTag.localName());
- elements.add(colgroupTag.localName());
- elements.add(ddTag.localName());
- elements.add(detailsTag.localName());
- elements.add(dirTag.localName());
- elements.add(divTag.localName());
- elements.add(dlTag.localName());
- elements.add(dtTag.localName());
- elements.add(fieldsetTag.localName());
- elements.add(figcaptionTag.localName());
- elements.add(figureTag.localName());
- elements.add(footerTag.localName());
- elements.add(formTag.localName());
- elements.add(h1Tag.localName());
- elements.add(h2Tag.localName());
- elements.add(h3Tag.localName());
- elements.add(h4Tag.localName());
- elements.add(h5Tag.localName());
- elements.add(h6Tag.localName());
- elements.add(headerTag.localName());
- elements.add(hgroupTag.localName());
- elements.add(hrTag.localName());
- elements.add(liTag.localName());
- elements.add(listingTag.localName());
- elements.add(mainTag.localName()); // Missing in the specification.
- elements.add(menuTag.localName());
- elements.add(navTag.localName());
- elements.add(olTag.localName());
- elements.add(pTag.localName());
- elements.add(plaintextTag.localName());
- elements.add(preTag.localName());
- elements.add(sectionTag.localName());
- elements.add(summaryTag.localName());
- elements.add(tableTag.localName());
- elements.add(tbodyTag.localName());
- elements.add(tdTag.localName());
- elements.add(tfootTag.localName());
- elements.add(thTag.localName());
- elements.add(theadTag.localName());
- elements.add(trTag.localName());
- elements.add(ulTag.localName());
- elements.add(xmpTag.localName());
+ DEFINE_STATIC_LOCAL(LocalNameLiteralSet, prohibitedChildren, ());
+ if (!prohibitedChildren.isInitialized()) {
+ static const QualifiedName* prohibitedChildrenData[] = {
+ &addressTag,
+ &articleTag,
+ &asideTag,
+ &blockquoteTag,
+ &captionTag,
+ &centerTag,
+ &colTag,
+ &colgroupTag,
+ &ddTag,
+ &detailsTag,
+ &dirTag,
+ &divTag,
+ &dlTag,
+ &dtTag,
+ &fieldsetTag,
+ &figcaptionTag,
+ &figureTag,
+ &footerTag,
+ &formTag,
+ &h1Tag,
+ &h2Tag,
+ &h3Tag,
+ &h4Tag,
+ &h5Tag,
+ &h6Tag,
+ &headerTag,
+ &hgroupTag,
+ &hrTag,
+ &liTag,
+ &listingTag,
+ &mainTag, // Missing in the specification.
+ &menuTag,
+ &navTag,
+ &olTag,
+ &pTag,
+ &plaintextTag,
+ &preTag,
+ &sectionTag,
+ &summaryTag,
+ &tableTag,
+ &tbodyTag,
+ &tdTag,
+ &tfootTag,
+ &thTag,
+ &theadTag,
+ &trTag,
+ &ulTag,
+ &xmpTag,
+ };
+ prohibitedChildren.init(prohibitedChildrenData, WTF_ARRAY_LENGTH(prohibitedChildrenData));
}
- return elements.contains(name);
+ return prohibitedChildren.contains(&name);
}
void ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder(InsertedNodes& insertedNodes)
@@ -625,7 +628,7 @@ void ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuild
if (!node->isHTMLElement())
continue;
- if (isProhibitedParagraphChild(toHTMLElement(node.get())->localName())) {
+ if (isProhibitedParagraphChild(toHTMLElement(node.get())->tagQName())) {
if (HTMLElement* paragraphElement = toHTMLElement(enclosingNodeWithTag(positionInParentBeforeNode(node.get()), pTag)))
moveNodeOutOfAncestor(node, paragraphElement);
}
« no previous file with comments | « Source/core/editing/FormatBlockCommand.cpp ('k') | Source/wtf/LiteralSet.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698