X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=src%2Fthird_party%2FWebKit%2FSource%2Fcore%2Fhtml%2FHTMLElement.h;h=082ca218edb6a9674ca8c24bd6baee87f78fd74e;hb=4a1a0bdd01eef90b0826a0e761d3379d3715c10f;hp=492555175a634650522c5f699d2c414e1fc17a3e;hpb=b1be5ca53587d23e7aeb77b26861fdc0a181ffd8;p=platform%2Fframework%2Fweb%2Fcrosswalk.git diff --git a/src/third_party/WebKit/Source/core/html/HTMLElement.h b/src/third_party/WebKit/Source/core/html/HTMLElement.h index 4925551..082ca21 100644 --- a/src/third_party/WebKit/Source/core/html/HTMLElement.h +++ b/src/third_party/WebKit/Source/core/html/HTMLElement.h @@ -1,7 +1,7 @@ /* * Copyright (C) 1999 Lars Knoll (knoll@kde.org) * (C) 1999 Antti Koivisto (koivisto@kde.org) - * Copyright (C) 2004, 2005, 2006, 2007, 2009 Apple Inc. All rights reserved. + * Copyright (C) 2004-2007, 2009, 2014 Apple Inc. All rights reserved. * * This library is free software; you can redistribute it and/or * modify it under the terms of the GNU Library General Public @@ -25,7 +25,7 @@ #include "core/dom/Element.h" -namespace WebCore { +namespace blink { class DocumentFragment; class HTMLCollection; @@ -42,6 +42,8 @@ class HTMLElement : public Element { public: DECLARE_ELEMENT_FACTORY_WITH_TAGNAME(HTMLElement); + bool hasTagName(const HTMLQualifiedName& name) const { return hasLocalName(name.localName()); } + virtual String title() const OVERRIDE FINAL; virtual short tabIndex() const OVERRIDE; @@ -107,19 +109,22 @@ protected: virtual void collectStyleForPresentationAttribute(const QualifiedName&, const AtomicString&, MutableStylePropertySet*) OVERRIDE; unsigned parseBorderWidthAttribute(const AtomicString&) const; - virtual void childrenChanged(bool changedByParser = false, Node* beforeChange = 0, Node* afterChange = 0, int childCountDelta = 0) OVERRIDE; + virtual void childrenChanged(const ChildrenChange&) OVERRIDE; void calculateAndAdjustDirectionality(); private: virtual String nodeName() const OVERRIDE FINAL; + bool isHTMLElement() const WTF_DELETED_FUNCTION; // This will catch anyone doing an unnecessary check. + bool isStyledElement() const WTF_DELETED_FUNCTION; // This will catch anyone doing an unnecessary check. + void mapLanguageAttributeToLocale(const AtomicString&, MutableStylePropertySet*); PassRefPtrWillBeRawPtr textToFragment(const String&, ExceptionState&); void dirAttributeChanged(const AtomicString&); void adjustDirectionalityIfNeededAfterChildAttributeChanged(Element* child); - void adjustDirectionalityIfNeededAfterChildrenChanged(Node* beforeChange, int childCountDelta); + void adjustDirectionalityIfNeededAfterChildrenChanged(const ChildrenChange&); TextDirection directionality(Node** strongDirectionalityTextNode= 0) const; TranslateAttributeMode translateAttributeMode() const; @@ -129,7 +134,6 @@ private: DEFINE_ELEMENT_TYPE_CASTS(HTMLElement, isHTMLElement()); -template <> inline bool isElementOfType(const Node& node) { return node.isHTMLElement(); } template bool isElementOfType(const HTMLElement&); template <> inline bool isElementOfType(const HTMLElement&) { return true; } @@ -140,21 +144,35 @@ inline HTMLElement::HTMLElement(const QualifiedName& tagName, Document& document ScriptWrappable::init(this); } +inline bool Node::hasTagName(const HTMLQualifiedName& name) const +{ + return isHTMLElement() && toHTMLElement(*this).hasTagName(name); +} + +// Functor used to match HTMLElements with a specific HTML tag when using the ElementTraversal API. +class HasHTMLTagName { +public: + explicit HasHTMLTagName(const HTMLQualifiedName& tagName): m_tagName(tagName) { } + bool operator() (const HTMLElement& element) const { return element.hasTagName(m_tagName); } +private: + const HTMLQualifiedName& m_tagName; +}; + // This requires isHTML*Element(const Element&) and isHTML*Element(const HTMLElement&). // When the input element is an HTMLElement, we don't need to check the namespace URI, just the local name. #define DEFINE_HTMLELEMENT_TYPE_CASTS_WITH_FUNCTION(thisType) \ inline bool is##thisType(const thisType* element); \ inline bool is##thisType(const thisType& element); \ inline bool is##thisType(const HTMLElement* element) { return element && is##thisType(*element); } \ + inline bool is##thisType(const Node& node) { return node.isHTMLElement() ? is##thisType(toHTMLElement(node)) : false; } \ + inline bool is##thisType(const Node* node) { return node && is##thisType(*node); } \ inline bool is##thisType(const Element* element) { return element && is##thisType(*element); } \ - inline bool is##thisType(const Node& node) { return node.isElementNode() ? is##thisType(toElement(node)) : false; } \ - inline bool is##thisType(const Node* node) { return node && node->isElementNode() ? is##thisType(*toElement(node)) : false; } \ template inline bool is##thisType(const PassRefPtr& node) { return is##thisType(node.get()); } \ template inline bool is##thisType(const RefPtr& node) { return is##thisType(node.get()); } \ template <> inline bool isElementOfType(const HTMLElement& element) { return is##thisType(element); } \ DEFINE_ELEMENT_TYPE_CASTS_WITH_FUNCTION(thisType) -} // namespace WebCore +} // namespace blink #include "core/HTMLElementTypeHelpers.h"