Chromium Code Reviews| Index: Source/core/dom/Element.cpp |
| diff --git a/Source/core/dom/Element.cpp b/Source/core/dom/Element.cpp |
| index bb3e0aad6f5ef42a05593dfba29040649ea60d5c..1b3ed64a3e6d54db62796b6e6eaab9f6d23a77e9 100644 |
| --- a/Source/core/dom/Element.cpp |
| +++ b/Source/core/dom/Element.cpp |
| @@ -1331,7 +1331,7 @@ Node::InsertionNotificationRequest Element::insertedInto(ContainerNode* insertio |
| if (!nameValue.isNull()) |
| updateName(nullAtom, nameValue); |
| - if (hasTagName(labelTag)) { |
| + if (isHTMLLabelElement(*this)) { |
| if (scope.shouldCacheLabelsByForAttribute()) |
| updateLabel(scope, nullAtom, fastGetAttribute(forAttr)); |
| } |
| @@ -1365,7 +1365,7 @@ void Element::removedFrom(ContainerNode* insertionPoint) |
| if (!nameValue.isNull()) |
| updateName(nameValue, nullAtom); |
| - if (hasTagName(labelTag)) { |
| + if (isHTMLLabelElement(*this)) { |
| TreeScope& treeScope = insertionPoint->treeScope(); |
| if (treeScope.shouldCacheLabelsByForAttribute()) |
| updateLabel(treeScope, fastGetAttribute(forAttr), nullAtom); |
| @@ -2261,7 +2261,7 @@ void Element::setInnerHTML(const String& html, ExceptionState& exceptionState) |
| { |
| if (RefPtr<DocumentFragment> fragment = createFragmentForInnerOuterHTML(html, this, AllowScriptingContent, "innerHTML", exceptionState)) { |
| ContainerNode* container = this; |
| - if (hasTagName(templateTag)) |
| + if (isHTMLTemplateElement(*this)) |
| container = toHTMLTemplateElement(this)->content(); |
| replaceChildrenWithFragment(container, fragment.release(), exceptionState); |
| } |
| @@ -2987,7 +2987,7 @@ inline void Element::updateId(TreeScope& scope, const AtomicString& oldId, const |
| void Element::updateLabel(TreeScope& scope, const AtomicString& oldForAttributeValue, const AtomicString& newForAttributeValue) |
| { |
| - ASSERT(hasTagName(labelTag)); |
| + ASSERT(isHTMLLabelElement(this)); |
|
adamk
2014/03/10 18:23:24
Why do you sometimes use "*this" and sometimes "th
adamk
2014/03/11 21:40:26
Still curious for an answer to this (maybe for ASS
|
| if (!inDocument()) |
| return; |
| @@ -3008,11 +3008,11 @@ static bool hasSelectorForAttribute(Document* document, const AtomicString& loca |
| void Element::willModifyAttribute(const QualifiedName& name, const AtomicString& oldValue, const AtomicString& newValue) |
| { |
| - if (isIdAttributeName(name)) |
| + if (isIdAttributeName(name)) { |
| updateId(oldValue, newValue); |
| - else if (name == HTMLNames::nameAttr) |
| + } else if (name == HTMLNames::nameAttr) { |
| updateName(oldValue, newValue); |
| - else if (name == HTMLNames::forAttr && hasTagName(labelTag)) { |
| + } else if (name == HTMLNames::forAttr && isHTMLLabelElement(*this)) { |
| TreeScope& scope = treeScope(); |
| if (scope.shouldCacheLabelsByForAttribute()) |
| updateLabel(scope, oldValue, newValue); |
| @@ -3128,13 +3128,13 @@ PassRefPtr<HTMLCollection> Element::ensureCachedHTMLCollection(CollectionType ty |
| return collection; |
| if (type == TableRows) { |
| - ASSERT(hasTagName(tableTag)); |
| + ASSERT(isHTMLTableElement(this)); |
| return ensureRareData().ensureNodeLists().addCache<HTMLTableRowsCollection>(*this, type); |
| } else if (type == SelectOptions) { |
| - ASSERT(hasTagName(selectTag)); |
| + ASSERT(isHTMLSelectElement(this)); |
| return ensureRareData().ensureNodeLists().addCache<HTMLOptionsCollection>(*this, type); |
| } else if (type == FormControls) { |
| - ASSERT(hasTagName(formTag) || hasTagName(fieldsetTag)); |
| + ASSERT(isHTMLFormElement(this) || isHTMLFieldSetElement(this)); |
| return ensureRareData().ensureNodeLists().addCache<HTMLFormControlsCollection>(*this, type); |
| } |
| return ensureRareData().ensureNodeLists().addCache<HTMLCollection>(*this, type); |
| @@ -3529,17 +3529,17 @@ bool Element::supportsStyleSharing() const |
| // Turn off style sharing for elements that can gain layers for reasons outside of the style system. |
| // See comments in RenderObject::setStyle(). |
| // FIXME: Why does gaining a layer from outside the style system require disabling sharing? |
| - if (hasTagName(iframeTag) |
| - || hasTagName(frameTag) |
| - || hasTagName(embedTag) |
| - || hasTagName(objectTag) |
| - || hasTagName(appletTag) |
| - || hasTagName(canvasTag)) |
| + if (isHTMLIFrameElement(*this) |
| + || isHTMLFrameElement(*this) |
| + || isHTMLEmbedElement(*this) |
| + || isHTMLObjectElement(*this) |
| + || isHTMLAppletElement(*this) |
| + || isHTMLCanvasElement(*this)) |
| return false; |
| // FIXME: We should share style for option and optgroup whenever possible. |
| // Before doing so, we need to resolve issues in HTMLSelectElement::recalcListItems |
| // and RenderMenuList::setText. See also https://bugs.webkit.org/show_bug.cgi?id=88405 |
| - if (hasTagName(optionTag) || hasTagName(optgroupTag)) |
| + if (isHTMLOptionElement(*this) || isHTMLOptGroupElement(*this)) |
| return false; |
| if (FullscreenElementStack::isActiveFullScreenElement(this)) |
| return false; |