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

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

Issue 196683003: Use new is*Element() helper functions more in editing code (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 9 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/htmlediting.cpp ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/core/editing/markup.cpp
diff --git a/Source/core/editing/markup.cpp b/Source/core/editing/markup.cpp
index 9a6ec3e1846399acf4a8001652e39022abba0c55..f7240ebcdd02b76de91fe266e63a858ff9c5b6e0 100644
--- a/Source/core/editing/markup.cpp
+++ b/Source/core/editing/markup.cpp
@@ -53,6 +53,7 @@
#include "core/frame/LocalFrame.h"
#include "core/html/HTMLBodyElement.h"
#include "core/html/HTMLElement.h"
+#include "core/html/HTMLTableCellElement.h"
#include "core/html/HTMLTextFormControlElement.h"
#include "core/rendering/RenderObject.h"
#include "platform/weborigin/KURL.h"
@@ -418,8 +419,8 @@ Node* StyledMarkupAccumulator::traverseNodesForSerialization(Node* startNode, No
static bool isHTMLBlockElement(const Node* node)
{
- return node->hasTagName(tdTag)
- || node->hasTagName(thTag)
+ ASSERT(node);
+ return isHTMLTableCellElement(*node)
|| isNonTableCellHTMLBlockElement(node);
}
@@ -428,9 +429,9 @@ static Node* ancestorToRetainStructureAndAppearanceForBlock(Node* commonAncestor
if (!commonAncestorBlock)
return 0;
- if (commonAncestorBlock->hasTagName(tbodyTag) || commonAncestorBlock->hasTagName(trTag)) {
+ if (commonAncestorBlock->hasTagName(tbodyTag) || isHTMLTableRowElement(*commonAncestorBlock)) {
ContainerNode* table = commonAncestorBlock->parentNode();
- while (table && !table->hasTagName(tableTag))
+ while (table && !isHTMLTableElement(*table))
table = table->parentNode();
return table;
@@ -471,7 +472,7 @@ static bool needInterchangeNewlineAfter(const VisiblePosition& v)
Node* upstreamNode = next.deepEquivalent().upstream().deprecatedNode();
Node* downstreamNode = v.deepEquivalent().downstream().deprecatedNode();
// Add an interchange newline if a paragraph break is selected and a br won't already be added to the markup to represent it.
- return isEndOfParagraph(v) && isStartOfParagraph(next) && !(upstreamNode->hasTagName(brTag) && upstreamNode == downstreamNode);
+ return isEndOfParagraph(v) && isStartOfParagraph(next) && !(isHTMLBRElement(*upstreamNode) && upstreamNode == downstreamNode);
}
static PassRefPtr<EditingStyle> styleFromMatchedRulesAndInlineDecl(const Node* node)
@@ -784,11 +785,12 @@ static void fillContainerFromString(ContainerNode* paragraph, const String& stri
bool isPlainTextMarkup(Node* node)
{
+ ASSERT(node);
if (!node->isElementNode())
return false;
Element* element = toElement(node);
- if (!element->hasTagName(divTag) || !element->hasAttributes())
+ if (!isHTMLDivElement(*element) || !element->hasAttributes())
return false;
if (element->hasOneChild() && (element->firstChild()->isTextNode() || (element->firstChild()->firstChild())))
@@ -848,8 +850,8 @@ PassRefPtr<DocumentFragment> createFragmentFromText(Range* context, const String
Element* block = toElement(blockNode);
bool useClonesOfEnclosingBlock = blockNode
&& blockNode->isElementNode()
- && !block->hasTagName(bodyTag)
- && !block->hasTagName(htmlTag)
+ && !isHTMLBodyElement(*block)
+ && !isHTMLHtmlElement(*block)
&& block != editableRootForPosition(context->startPosition());
bool useLineBreak = enclosingTextFormControl(context->startPosition());
@@ -910,7 +912,8 @@ String urlToMarkup(const KURL& url, const String& title)
PassRefPtr<DocumentFragment> createFragmentForInnerOuterHTML(const String& markup, Element* contextElement, ParserContentPolicy parserContentPolicy, const char* method, ExceptionState& exceptionState)
{
- Document& document = contextElement->hasTagName(templateTag) ? contextElement->document().ensureTemplateDocument() : contextElement->document();
+ ASSERT(contextElement);
+ Document& document = isHTMLTemplateElement(*contextElement) ? contextElement->document().ensureTemplateDocument() : contextElement->document();
RefPtr<DocumentFragment> fragment = DocumentFragment::create(document);
if (document.isHTMLDocument()) {
@@ -981,7 +984,7 @@ PassRefPtr<DocumentFragment> createContextualFragment(const String& markup, HTML
RefPtr<Node> nextNode;
for (RefPtr<Node> node = fragment->firstChild(); node; node = nextNode) {
nextNode = node->nextSibling();
- if (node->hasTagName(htmlTag) || node->hasTagName(headTag) || node->hasTagName(bodyTag)) {
+ if (isHTMLHtmlElement(*node) || isHTMLHeadElement(*node) || isHTMLBodyElement(*node)) {
HTMLElement* element = toHTMLElement(node);
if (Node* firstChild = element->firstChild())
nextNode = firstChild;
« no previous file with comments | « Source/core/editing/htmlediting.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698