| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Peter Kelly (pmk@post.com) | 4 * (C) 2001 Peter Kelly (pmk@post.com) |
| 5 * (C) 2001 Dirk Mueller (mueller@kde.org) | 5 * (C) 2001 Dirk Mueller (mueller@kde.org) |
| 6 * Copyright (C) 2003-2011, 2013, 2014 Apple Inc. All rights reserved. | 6 * Copyright (C) 2003-2011, 2013, 2014 Apple Inc. All rights reserved. |
| 7 * | 7 * |
| 8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
| 9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
| 10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 83 | 83 |
| 84 NumberOfElementFlags = 6, // Required size of bitfield used to store the fla
gs. | 84 NumberOfElementFlags = 6, // Required size of bitfield used to store the fla
gs. |
| 85 }; | 85 }; |
| 86 | 86 |
| 87 typedef WillBeHeapVector<RefPtrWillBeMember<Attr>> AttrNodeList; | 87 typedef WillBeHeapVector<RefPtrWillBeMember<Attr>> AttrNodeList; |
| 88 | 88 |
| 89 class CORE_EXPORT Element : public ContainerNode { | 89 class CORE_EXPORT Element : public ContainerNode { |
| 90 DEFINE_WRAPPERTYPEINFO(); | 90 DEFINE_WRAPPERTYPEINFO(); |
| 91 public: | 91 public: |
| 92 static PassRefPtrWillBeRawPtr<Element> create(const QualifiedName&, Document
*); | 92 static PassRefPtrWillBeRawPtr<Element> create(const QualifiedName&, Document
*); |
| 93 virtual ~Element(); | 93 ~Element() override; |
| 94 | 94 |
| 95 DEFINE_ATTRIBUTE_EVENT_LISTENER(beforecopy); | 95 DEFINE_ATTRIBUTE_EVENT_LISTENER(beforecopy); |
| 96 DEFINE_ATTRIBUTE_EVENT_LISTENER(beforecut); | 96 DEFINE_ATTRIBUTE_EVENT_LISTENER(beforecut); |
| 97 DEFINE_ATTRIBUTE_EVENT_LISTENER(beforepaste); | 97 DEFINE_ATTRIBUTE_EVENT_LISTENER(beforepaste); |
| 98 DEFINE_ATTRIBUTE_EVENT_LISTENER(copy); | 98 DEFINE_ATTRIBUTE_EVENT_LISTENER(copy); |
| 99 DEFINE_ATTRIBUTE_EVENT_LISTENER(cut); | 99 DEFINE_ATTRIBUTE_EVENT_LISTENER(cut); |
| 100 DEFINE_ATTRIBUTE_EVENT_LISTENER(paste); | 100 DEFINE_ATTRIBUTE_EVENT_LISTENER(paste); |
| 101 DEFINE_ATTRIBUTE_EVENT_LISTENER(search); | 101 DEFINE_ATTRIBUTE_EVENT_LISTENER(search); |
| 102 DEFINE_ATTRIBUTE_EVENT_LISTENER(selectstart); | 102 DEFINE_ATTRIBUTE_EVENT_LISTENER(selectstart); |
| 103 DEFINE_ATTRIBUTE_EVENT_LISTENER(touchcancel); | 103 DEFINE_ATTRIBUTE_EVENT_LISTENER(touchcancel); |
| (...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 199 | 199 |
| 200 ClientRectList* getClientRects(); | 200 ClientRectList* getClientRects(); |
| 201 ClientRect* getBoundingClientRect(); | 201 ClientRect* getBoundingClientRect(); |
| 202 | 202 |
| 203 const AtomicString& computedRole(); | 203 const AtomicString& computedRole(); |
| 204 String computedName(); | 204 String computedName(); |
| 205 | 205 |
| 206 // Returns the absolute bounding box translated into screen coordinates: | 206 // Returns the absolute bounding box translated into screen coordinates: |
| 207 IntRect screenRect() const; | 207 IntRect screenRect() const; |
| 208 | 208 |
| 209 virtual void didMoveToNewDocument(Document&) override; | 209 void didMoveToNewDocument(Document&) override; |
| 210 | 210 |
| 211 void removeAttribute(const AtomicString& name); | 211 void removeAttribute(const AtomicString& name); |
| 212 void removeAttributeNS(const AtomicString& namespaceURI, const AtomicString&
localName); | 212 void removeAttributeNS(const AtomicString& namespaceURI, const AtomicString&
localName); |
| 213 | 213 |
| 214 PassRefPtrWillBeRawPtr<Attr> detachAttribute(size_t index); | 214 PassRefPtrWillBeRawPtr<Attr> detachAttribute(size_t index); |
| 215 | 215 |
| 216 PassRefPtrWillBeRawPtr<Attr> getAttributeNode(const AtomicString& name); | 216 PassRefPtrWillBeRawPtr<Attr> getAttributeNode(const AtomicString& name); |
| 217 PassRefPtrWillBeRawPtr<Attr> getAttributeNodeNS(const AtomicString& namespac
eURI, const AtomicString& localName); | 217 PassRefPtrWillBeRawPtr<Attr> getAttributeNodeNS(const AtomicString& namespac
eURI, const AtomicString& localName); |
| 218 PassRefPtrWillBeRawPtr<Attr> setAttributeNode(Attr*, ExceptionState&); | 218 PassRefPtrWillBeRawPtr<Attr> setAttributeNode(Attr*, ExceptionState&); |
| 219 PassRefPtrWillBeRawPtr<Attr> setAttributeNodeNS(Attr*, ExceptionState&); | 219 PassRefPtrWillBeRawPtr<Attr> setAttributeNodeNS(Attr*, ExceptionState&); |
| (...skipping 12 matching lines...) Expand all Loading... |
| 232 bool hasTagName(const QualifiedName& tagName) const { return m_tagName.match
es(tagName); } | 232 bool hasTagName(const QualifiedName& tagName) const { return m_tagName.match
es(tagName); } |
| 233 bool hasTagName(const HTMLQualifiedName& tagName) const { return ContainerNo
de::hasTagName(tagName); } | 233 bool hasTagName(const HTMLQualifiedName& tagName) const { return ContainerNo
de::hasTagName(tagName); } |
| 234 bool hasTagName(const SVGQualifiedName& tagName) const { return ContainerNod
e::hasTagName(tagName); } | 234 bool hasTagName(const SVGQualifiedName& tagName) const { return ContainerNod
e::hasTagName(tagName); } |
| 235 | 235 |
| 236 // Should be called only by Document::createElementNS to fix up m_tagName im
mediately after construction. | 236 // Should be called only by Document::createElementNS to fix up m_tagName im
mediately after construction. |
| 237 void setTagNameForCreateElementNS(const QualifiedName&); | 237 void setTagNameForCreateElementNS(const QualifiedName&); |
| 238 | 238 |
| 239 // A fast function for checking the local name against another atomic string
. | 239 // A fast function for checking the local name against another atomic string
. |
| 240 bool hasLocalName(const AtomicString& other) const { return m_tagName.localN
ame() == other; } | 240 bool hasLocalName(const AtomicString& other) const { return m_tagName.localN
ame() == other; } |
| 241 | 241 |
| 242 virtual const AtomicString& localName() const override final { return m_tagN
ame.localName(); } | 242 const AtomicString& localName() const final { return m_tagName.localName();
} |
| 243 AtomicString localNameForSelectorMatching() const; | 243 AtomicString localNameForSelectorMatching() const; |
| 244 const AtomicString& prefix() const { return m_tagName.prefix(); } | 244 const AtomicString& prefix() const { return m_tagName.prefix(); } |
| 245 virtual const AtomicString& namespaceURI() const override final { return m_t
agName.namespaceURI(); } | 245 const AtomicString& namespaceURI() const final { return m_tagName.namespaceU
RI(); } |
| 246 | 246 |
| 247 const AtomicString& locateNamespacePrefix(const AtomicString& namespaceURI)
const; | 247 const AtomicString& locateNamespacePrefix(const AtomicString& namespaceURI)
const; |
| 248 | 248 |
| 249 virtual String nodeName() const override; | 249 String nodeName() const override; |
| 250 | 250 |
| 251 PassRefPtrWillBeRawPtr<Element> cloneElementWithChildren(); | 251 PassRefPtrWillBeRawPtr<Element> cloneElementWithChildren(); |
| 252 PassRefPtrWillBeRawPtr<Element> cloneElementWithoutChildren(); | 252 PassRefPtrWillBeRawPtr<Element> cloneElementWithoutChildren(); |
| 253 | 253 |
| 254 void scheduleSVGFilterLayerUpdateHack(); | 254 void scheduleSVGFilterLayerUpdateHack(); |
| 255 | 255 |
| 256 void setBooleanAttribute(const QualifiedName& name, bool); | 256 void setBooleanAttribute(const QualifiedName& name, bool); |
| 257 | 257 |
| 258 virtual const StylePropertySet* additionalPresentationAttributeStyle() { ret
urn nullptr; } | 258 virtual const StylePropertySet* additionalPresentationAttributeStyle() { ret
urn nullptr; } |
| 259 void invalidateStyleAttribute(); | 259 void invalidateStyleAttribute(); |
| (...skipping 39 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 299 // Clones attributes only. | 299 // Clones attributes only. |
| 300 void cloneAttributesFromElement(const Element&); | 300 void cloneAttributesFromElement(const Element&); |
| 301 | 301 |
| 302 // Clones all attribute-derived data, including subclass specifics (through
copyNonAttributeProperties.) | 302 // Clones all attribute-derived data, including subclass specifics (through
copyNonAttributeProperties.) |
| 303 void cloneDataFromElement(const Element&); | 303 void cloneDataFromElement(const Element&); |
| 304 | 304 |
| 305 bool hasEquivalentAttributes(const Element* other) const; | 305 bool hasEquivalentAttributes(const Element* other) const; |
| 306 | 306 |
| 307 virtual void copyNonAttributePropertiesFromElement(const Element&) { } | 307 virtual void copyNonAttributePropertiesFromElement(const Element&) { } |
| 308 | 308 |
| 309 virtual void attach(const AttachContext& = AttachContext()) override; | 309 void attach(const AttachContext& = AttachContext()) override; |
| 310 virtual void detach(const AttachContext& = AttachContext()) override; | 310 void detach(const AttachContext& = AttachContext()) override; |
| 311 | 311 |
| 312 virtual LayoutObject* createLayoutObject(const ComputedStyle&); | 312 virtual LayoutObject* createLayoutObject(const ComputedStyle&); |
| 313 virtual bool layoutObjectIsNeeded(const ComputedStyle&); | 313 virtual bool layoutObjectIsNeeded(const ComputedStyle&); |
| 314 void recalcStyle(StyleRecalcChange, Text* nextTextSibling = nullptr); | 314 void recalcStyle(StyleRecalcChange, Text* nextTextSibling = nullptr); |
| 315 void pseudoStateChanged(CSSSelector::PseudoType); | 315 void pseudoStateChanged(CSSSelector::PseudoType); |
| 316 void setAnimationStyleChange(bool); | 316 void setAnimationStyleChange(bool); |
| 317 void clearAnimationStyleChange(); | 317 void clearAnimationStyleChange(); |
| 318 void setNeedsAnimationStyleRecalc(); | 318 void setNeedsAnimationStyleRecalc(); |
| 319 | 319 |
| 320 void setNeedsCompositingUpdate(); | 320 void setNeedsCompositingUpdate(); |
| (...skipping 123 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 444 virtual bool isTextFormControl() const { return false; } | 444 virtual bool isTextFormControl() const { return false; } |
| 445 virtual bool isOptionalFormControl() const { return false; } | 445 virtual bool isOptionalFormControl() const { return false; } |
| 446 virtual bool isRequiredFormControl() const { return false; } | 446 virtual bool isRequiredFormControl() const { return false; } |
| 447 virtual bool isDefaultButtonForForm() const { return false; } | 447 virtual bool isDefaultButtonForForm() const { return false; } |
| 448 virtual bool willValidate() const { return false; } | 448 virtual bool willValidate() const { return false; } |
| 449 virtual bool isValidElement() { return false; } | 449 virtual bool isValidElement() { return false; } |
| 450 virtual bool isInRange() const { return false; } | 450 virtual bool isInRange() const { return false; } |
| 451 virtual bool isOutOfRange() const { return false; } | 451 virtual bool isOutOfRange() const { return false; } |
| 452 virtual bool isClearButtonElement() const { return false; } | 452 virtual bool isClearButtonElement() const { return false; } |
| 453 | 453 |
| 454 virtual bool canContainRangeEndPoint() const override { return true; } | 454 bool canContainRangeEndPoint() const override { return true; } |
| 455 | 455 |
| 456 // Used for disabled form elements; if true, prevents mouse events from bein
g dispatched | 456 // Used for disabled form elements; if true, prevents mouse events from bein
g dispatched |
| 457 // to event listeners, and prevents DOMActivate events from being sent at al
l. | 457 // to event listeners, and prevents DOMActivate events from being sent at al
l. |
| 458 virtual bool isDisabledFormControl() const { return false; } | 458 virtual bool isDisabledFormControl() const { return false; } |
| 459 | 459 |
| 460 bool hasPendingResources() const { return hasElementFlag(HasPendingResources
); } | 460 bool hasPendingResources() const { return hasElementFlag(HasPendingResources
); } |
| 461 void setHasPendingResources() { setElementFlag(HasPendingResources); } | 461 void setHasPendingResources() { setElementFlag(HasPendingResources); } |
| 462 void clearHasPendingResources() { clearElementFlag(HasPendingResources); } | 462 void clearHasPendingResources() { clearElementFlag(HasPendingResources); } |
| 463 virtual void buildPendingResource() { }; | 463 virtual void buildPendingResource() { }; |
| 464 | 464 |
| (...skipping 24 matching lines...) Expand all Loading... |
| 489 ElementAnimations* elementAnimations() const; | 489 ElementAnimations* elementAnimations() const; |
| 490 ElementAnimations& ensureElementAnimations(); | 490 ElementAnimations& ensureElementAnimations(); |
| 491 bool hasAnimations() const; | 491 bool hasAnimations() const; |
| 492 | 492 |
| 493 void synchronizeAttribute(const AtomicString& localName) const; | 493 void synchronizeAttribute(const AtomicString& localName) const; |
| 494 | 494 |
| 495 MutableStylePropertySet& ensureMutableInlineStyle(); | 495 MutableStylePropertySet& ensureMutableInlineStyle(); |
| 496 void clearMutableInlineStyleIfEmpty(); | 496 void clearMutableInlineStyleIfEmpty(); |
| 497 | 497 |
| 498 void setTabIndex(int); | 498 void setTabIndex(int); |
| 499 virtual short tabIndex() const override; | 499 short tabIndex() const override; |
| 500 | 500 |
| 501 void incrementProxyCount(); | 501 void incrementProxyCount(); |
| 502 void decrementProxyCount(); | 502 void decrementProxyCount(); |
| 503 | 503 |
| 504 DECLARE_VIRTUAL_TRACE(); | 504 DECLARE_VIRTUAL_TRACE(); |
| 505 | 505 |
| 506 SpellcheckAttributeState spellcheckAttributeState() const; | 506 SpellcheckAttributeState spellcheckAttributeState() const; |
| 507 | 507 |
| 508 protected: | 508 protected: |
| 509 Element(const QualifiedName& tagName, Document*, ConstructionType); | 509 Element(const QualifiedName& tagName, Document*, ConstructionType); |
| 510 | 510 |
| 511 const ElementData* elementData() const { return m_elementData.get(); } | 511 const ElementData* elementData() const { return m_elementData.get(); } |
| 512 UniqueElementData& ensureUniqueElementData(); | 512 UniqueElementData& ensureUniqueElementData(); |
| 513 | 513 |
| 514 void addPropertyToPresentationAttributeStyle(MutableStylePropertySet*, CSSPr
opertyID, CSSValueID identifier); | 514 void addPropertyToPresentationAttributeStyle(MutableStylePropertySet*, CSSPr
opertyID, CSSValueID identifier); |
| 515 void addPropertyToPresentationAttributeStyle(MutableStylePropertySet*, CSSPr
opertyID, double value, CSSPrimitiveValue::UnitType); | 515 void addPropertyToPresentationAttributeStyle(MutableStylePropertySet*, CSSPr
opertyID, double value, CSSPrimitiveValue::UnitType); |
| 516 void addPropertyToPresentationAttributeStyle(MutableStylePropertySet*, CSSPr
opertyID, const String& value); | 516 void addPropertyToPresentationAttributeStyle(MutableStylePropertySet*, CSSPr
opertyID, const String& value); |
| 517 | 517 |
| 518 virtual InsertionNotificationRequest insertedInto(ContainerNode*) override; | 518 InsertionNotificationRequest insertedInto(ContainerNode*) override; |
| 519 virtual void removedFrom(ContainerNode*) override; | 519 void removedFrom(ContainerNode*) override; |
| 520 virtual void childrenChanged(const ChildrenChange&) override; | 520 void childrenChanged(const ChildrenChange&) override; |
| 521 | 521 |
| 522 virtual void willRecalcStyle(StyleRecalcChange); | 522 virtual void willRecalcStyle(StyleRecalcChange); |
| 523 virtual void didRecalcStyle(StyleRecalcChange); | 523 virtual void didRecalcStyle(StyleRecalcChange); |
| 524 virtual PassRefPtr<ComputedStyle> customStyleForLayoutObject(); | 524 virtual PassRefPtr<ComputedStyle> customStyleForLayoutObject(); |
| 525 | 525 |
| 526 virtual bool shouldRegisterAsNamedItem() const { return false; } | 526 virtual bool shouldRegisterAsNamedItem() const { return false; } |
| 527 virtual bool shouldRegisterAsExtraNamedItem() const { return false; } | 527 virtual bool shouldRegisterAsExtraNamedItem() const { return false; } |
| 528 | 528 |
| 529 bool supportsSpatialNavigationFocus() const; | 529 bool supportsSpatialNavigationFocus() const; |
| 530 | 530 |
| (...skipping 63 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 594 void didModifyAttribute(const QualifiedName&, const AtomicString&); | 594 void didModifyAttribute(const QualifiedName&, const AtomicString&); |
| 595 void didRemoveAttribute(const QualifiedName&); | 595 void didRemoveAttribute(const QualifiedName&); |
| 596 | 596 |
| 597 void synchronizeAllAttributes() const; | 597 void synchronizeAllAttributes() const; |
| 598 void synchronizeAttribute(const QualifiedName&) const; | 598 void synchronizeAttribute(const QualifiedName&) const; |
| 599 | 599 |
| 600 void updateId(const AtomicString& oldId, const AtomicString& newId); | 600 void updateId(const AtomicString& oldId, const AtomicString& newId); |
| 601 void updateId(TreeScope&, const AtomicString& oldId, const AtomicString& new
Id); | 601 void updateId(TreeScope&, const AtomicString& oldId, const AtomicString& new
Id); |
| 602 void updateName(const AtomicString& oldName, const AtomicString& newName); | 602 void updateName(const AtomicString& oldName, const AtomicString& newName); |
| 603 | 603 |
| 604 virtual NodeType nodeType() const override final; | 604 NodeType nodeType() const final; |
| 605 virtual bool childTypeAllowed(NodeType) const override final; | 605 bool childTypeAllowed(NodeType) const final; |
| 606 | 606 |
| 607 void setAttributeInternal(size_t index, const QualifiedName&, const AtomicSt
ring& value, SynchronizationOfLazyAttribute); | 607 void setAttributeInternal(size_t index, const QualifiedName&, const AtomicSt
ring& value, SynchronizationOfLazyAttribute); |
| 608 void appendAttributeInternal(const QualifiedName&, const AtomicString& value
, SynchronizationOfLazyAttribute); | 608 void appendAttributeInternal(const QualifiedName&, const AtomicString& value
, SynchronizationOfLazyAttribute); |
| 609 void removeAttributeInternal(size_t index, SynchronizationOfLazyAttribute); | 609 void removeAttributeInternal(size_t index, SynchronizationOfLazyAttribute); |
| 610 void attributeChangedFromParserOrByCloning(const QualifiedName&, const Atomi
cString&, AttributeModificationReason); | 610 void attributeChangedFromParserOrByCloning(const QualifiedName&, const Atomi
cString&, AttributeModificationReason); |
| 611 | 611 |
| 612 #ifndef NDEBUG | 612 #ifndef NDEBUG |
| 613 virtual void formatForDebugger(char* buffer, unsigned length) const override
; | 613 void formatForDebugger(char* buffer, unsigned length) const override; |
| 614 #endif | 614 #endif |
| 615 | 615 |
| 616 bool pseudoStyleCacheIsInvalid(const ComputedStyle* currentStyle, ComputedSt
yle* newStyle); | 616 bool pseudoStyleCacheIsInvalid(const ComputedStyle* currentStyle, ComputedSt
yle* newStyle); |
| 617 | 617 |
| 618 void cancelFocusAppearanceUpdate(); | 618 void cancelFocusAppearanceUpdate(); |
| 619 | 619 |
| 620 virtual const ComputedStyle* virtualEnsureComputedStyle(PseudoId pseudoEleme
ntSpecifier = NOPSEUDO) override { return ensureComputedStyle(pseudoElementSpeci
fier); } | 620 const ComputedStyle* virtualEnsureComputedStyle(PseudoId pseudoElementSpecif
ier = NOPSEUDO) override { return ensureComputedStyle(pseudoElementSpecifier); } |
| 621 | 621 |
| 622 inline void updateCallbackSelectors(const ComputedStyle* oldStyle, const Com
putedStyle* newStyle); | 622 inline void updateCallbackSelectors(const ComputedStyle* oldStyle, const Com
putedStyle* newStyle); |
| 623 inline void removeCallbackSelectors(); | 623 inline void removeCallbackSelectors(); |
| 624 inline void addCallbackSelectors(); | 624 inline void addCallbackSelectors(); |
| 625 | 625 |
| 626 // cloneNode is private so that non-virtual cloneElementWithChildren and clo
neElementWithoutChildren | 626 // cloneNode is private so that non-virtual cloneElementWithChildren and clo
neElementWithoutChildren |
| 627 // are used instead. | 627 // are used instead. |
| 628 virtual PassRefPtrWillBeRawPtr<Node> cloneNode(bool deep) override; | 628 PassRefPtrWillBeRawPtr<Node> cloneNode(bool deep) override; |
| 629 virtual PassRefPtrWillBeRawPtr<Element> cloneElementWithoutAttributesAndChil
dren(); | 629 virtual PassRefPtrWillBeRawPtr<Element> cloneElementWithoutAttributesAndChil
dren(); |
| 630 | 630 |
| 631 QualifiedName m_tagName; | 631 QualifiedName m_tagName; |
| 632 | 632 |
| 633 void updateNamedItemRegistration(const AtomicString& oldName, const AtomicSt
ring& newName); | 633 void updateNamedItemRegistration(const AtomicString& oldName, const AtomicSt
ring& newName); |
| 634 void updateExtraNamedItemRegistration(const AtomicString& oldName, const Ato
micString& newName); | 634 void updateExtraNamedItemRegistration(const AtomicString& oldName, const Ato
micString& newName); |
| 635 | 635 |
| 636 void createUniqueElementData(); | 636 void createUniqueElementData(); |
| 637 | 637 |
| 638 bool shouldInvalidateDistributionWhenAttributeChanged(ElementShadow*, const
QualifiedName&, const AtomicString&); | 638 bool shouldInvalidateDistributionWhenAttributeChanged(ElementShadow*, const
QualifiedName&, const AtomicString&); |
| (...skipping 241 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 880 static PassRefPtrWillBeRawPtr<T> create(const QualifiedName&, Document&) | 880 static PassRefPtrWillBeRawPtr<T> create(const QualifiedName&, Document&) |
| 881 #define DEFINE_ELEMENT_FACTORY_WITH_TAGNAME(T) \ | 881 #define DEFINE_ELEMENT_FACTORY_WITH_TAGNAME(T) \ |
| 882 PassRefPtrWillBeRawPtr<T> T::create(const QualifiedName& tagName, Document&
document) \ | 882 PassRefPtrWillBeRawPtr<T> T::create(const QualifiedName& tagName, Document&
document) \ |
| 883 { \ | 883 { \ |
| 884 return adoptRefWillBeNoop(new T(tagName, document)); \ | 884 return adoptRefWillBeNoop(new T(tagName, document)); \ |
| 885 } | 885 } |
| 886 | 886 |
| 887 } // namespace | 887 } // namespace |
| 888 | 888 |
| 889 #endif // Element_h | 889 #endif // Element_h |
| OLD | NEW |