mirror of
https://gitlab.winehq.org/wine/wine-gecko.git
synced 2024-09-13 09:24:08 -07:00
Fix for bug 773780 (Add API for new DOM bindings for Node). r=bz.
--HG-- extra : rebase_source : 5dd51c4ad5274da9235c8c341b0531f234e95a91
This commit is contained in:
parent
350f7dd89a
commit
57adeb4354
@ -684,7 +684,7 @@ logging::Node(const char* aDescr, nsINode* aNode)
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsINode* parentNode = aNode->GetNodeParent();
|
nsINode* parentNode = aNode->GetParentNode();
|
||||||
int32_t idxInParent = parentNode ? parentNode->IndexOf(aNode) : - 1;
|
int32_t idxInParent = parentNode ? parentNode->IndexOf(aNode) : - 1;
|
||||||
|
|
||||||
if (aNode->IsNodeOfType(nsINode::eTEXT)) {
|
if (aNode->IsNodeOfType(nsINode::eTEXT)) {
|
||||||
|
@ -424,8 +424,8 @@ NotificationController::CoalesceEvents()
|
|||||||
|
|
||||||
// Coalesce events by sibling targets (this is a case for reorder
|
// Coalesce events by sibling targets (this is a case for reorder
|
||||||
// events).
|
// events).
|
||||||
if (thisEvent->mNode->GetNodeParent() ==
|
if (thisEvent->mNode->GetParentNode() ==
|
||||||
tailEvent->mNode->GetNodeParent()) {
|
tailEvent->mNode->GetParentNode()) {
|
||||||
tailEvent->mEventRule = thisEvent->mEventRule;
|
tailEvent->mEventRule = thisEvent->mEventRule;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -521,7 +521,7 @@ NotificationController::ApplyToSiblings(uint32_t aStart, uint32_t aEnd,
|
|||||||
AccEvent* accEvent = mEvents[index];
|
AccEvent* accEvent = mEvents[index];
|
||||||
if (accEvent->mEventType == aEventType &&
|
if (accEvent->mEventType == aEventType &&
|
||||||
accEvent->mEventRule != AccEvent::eDoNotEmit && accEvent->mNode &&
|
accEvent->mEventRule != AccEvent::eDoNotEmit && accEvent->mNode &&
|
||||||
accEvent->mNode->GetNodeParent() == aNode->GetNodeParent()) {
|
accEvent->mNode->GetParentNode() == aNode->GetParentNode()) {
|
||||||
accEvent->mEventRule = aEventRule;
|
accEvent->mEventRule = aEventRule;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -705,7 +705,7 @@ NotificationController::TextEnumerator(nsCOMPtrHashKey<nsIContent>* aEntry,
|
|||||||
|
|
||||||
// If the text node is not in tree or doesn't have frame then this case should
|
// If the text node is not in tree or doesn't have frame then this case should
|
||||||
// have been handled already by content removal notifications.
|
// have been handled already by content removal notifications.
|
||||||
nsINode* containerNode = textNode->GetNodeParent();
|
nsINode* containerNode = textNode->GetParentNode();
|
||||||
if (!containerNode) {
|
if (!containerNode) {
|
||||||
NS_ASSERTION(!textAcc,
|
NS_ASSERTION(!textAcc,
|
||||||
"Text node was removed but accessible is kept alive!");
|
"Text node was removed but accessible is kept alive!");
|
||||||
|
@ -248,7 +248,7 @@ nsCoreUtils::IsAncestorOf(nsINode *aPossibleAncestorNode,
|
|||||||
NS_ENSURE_TRUE(aPossibleAncestorNode && aPossibleDescendantNode, false);
|
NS_ENSURE_TRUE(aPossibleAncestorNode && aPossibleDescendantNode, false);
|
||||||
|
|
||||||
nsINode *parentNode = aPossibleDescendantNode;
|
nsINode *parentNode = aPossibleDescendantNode;
|
||||||
while ((parentNode = parentNode->GetNodeParent()) &&
|
while ((parentNode = parentNode->GetParentNode()) &&
|
||||||
parentNode != aRootNode) {
|
parentNode != aRootNode) {
|
||||||
if (parentNode == aPossibleAncestorNode)
|
if (parentNode == aPossibleAncestorNode)
|
||||||
return true;
|
return true;
|
||||||
|
@ -1394,7 +1394,7 @@ DocAccessible::GetAccessibleOrContainer(nsINode* aNode)
|
|||||||
nsINode* currNode = aNode;
|
nsINode* currNode = aNode;
|
||||||
Accessible* accessible = nullptr;
|
Accessible* accessible = nullptr;
|
||||||
while (!(accessible = GetAccessible(currNode)) &&
|
while (!(accessible = GetAccessible(currNode)) &&
|
||||||
(currNode = currNode->GetNodeParent()));
|
(currNode = currNode->GetParentNode()));
|
||||||
|
|
||||||
return accessible;
|
return accessible;
|
||||||
}
|
}
|
||||||
|
@ -269,7 +269,7 @@ public:
|
|||||||
*/
|
*/
|
||||||
Accessible* GetContainerAccessible(nsINode* aNode)
|
Accessible* GetContainerAccessible(nsINode* aNode)
|
||||||
{
|
{
|
||||||
return aNode ? GetAccessibleOrContainer(aNode->GetNodeParent()) : nullptr;
|
return aNode ? GetAccessibleOrContainer(aNode->GetParentNode()) : nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -18,8 +18,7 @@
|
|||||||
nsAutoString title;
|
nsAutoString title;
|
||||||
// XXX use the flattening API when there are available
|
// XXX use the flattening API when there are available
|
||||||
// see bug 768298
|
// see bug 768298
|
||||||
nsresult rv = mGeckoAccessible->GetContent()->GetTextContent(title);
|
mGeckoAccessible->GetContent()->GetTextContent(title);
|
||||||
NS_ENSURE_SUCCESS(rv, nil);
|
|
||||||
|
|
||||||
return nsCocoaUtils::ToNSString(title);
|
return nsCocoaUtils::ToNSString(title);
|
||||||
}
|
}
|
||||||
|
@ -409,7 +409,7 @@ __try {
|
|||||||
if (!node)
|
if (!node)
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
|
|
||||||
*aNode = MakeAccessNode(node->GetNodeParent());
|
*aNode = MakeAccessNode(node->GetParentNode());
|
||||||
|
|
||||||
} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { }
|
} __except(FilterA11yExceptions(::GetExceptionCode(), GetExceptionInformation())) { }
|
||||||
|
|
||||||
|
@ -60,8 +60,7 @@ nsXFormsAccessible::GetBoundChildElementValue(const nsAString& aTagName,
|
|||||||
if (IsDefunct())
|
if (IsDefunct())
|
||||||
return NS_ERROR_FAILURE;
|
return NS_ERROR_FAILURE;
|
||||||
|
|
||||||
nsINodeList* nodes = mContent->GetChildNodesList();
|
nsINodeList* nodes = mContent->ChildNodes();
|
||||||
NS_ENSURE_STATE(nodes);
|
|
||||||
|
|
||||||
uint32_t length;
|
uint32_t length;
|
||||||
nsresult rv = nodes->GetLength(&length);
|
nsresult rv = nodes->GetLength(&length);
|
||||||
@ -545,7 +544,7 @@ nsXFormsSelectableItemAccessible::IsSelected()
|
|||||||
nsresult rv;
|
nsresult rv;
|
||||||
|
|
||||||
nsINode* parent = mContent;
|
nsINode* parent = mContent;
|
||||||
while ((parent = parent->GetNodeParent())) {
|
while ((parent = parent->GetParentNode())) {
|
||||||
nsCOMPtr<nsIContent> content(do_QueryInterface(parent));
|
nsCOMPtr<nsIContent> content(do_QueryInterface(parent));
|
||||||
if (!content)
|
if (!content)
|
||||||
return false;
|
return false;
|
||||||
|
@ -156,7 +156,7 @@ nsXFormsComboboxPopupWidgetAccessible::Value(nsString& aValue)
|
|||||||
void
|
void
|
||||||
nsXFormsComboboxPopupWidgetAccessible::CacheChildren()
|
nsXFormsComboboxPopupWidgetAccessible::CacheChildren()
|
||||||
{
|
{
|
||||||
nsCOMPtr<nsIDOMNode> parent = do_QueryInterface(mContent->GetNodeParent());
|
nsCOMPtr<nsIDOMNode> parent = do_QueryInterface(mContent->GetParentNode());
|
||||||
// Parent node must be an xforms:select1 element.
|
// Parent node must be an xforms:select1 element.
|
||||||
CacheSelectChildren(parent);
|
CacheSelectChildren(parent);
|
||||||
}
|
}
|
||||||
|
@ -348,4 +348,9 @@ inline const mozilla::dom::Element* nsINode::AsElement() const
|
|||||||
return static_cast<const mozilla::dom::Element*>(this);
|
return static_cast<const mozilla::dom::Element*>(this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline bool nsINode::HasAttributes() const
|
||||||
|
{
|
||||||
|
return IsElement() && AsElement()->GetAttrCount() > 0;
|
||||||
|
}
|
||||||
|
|
||||||
#endif // mozilla_dom_Element_h__
|
#endif // mozilla_dom_Element_h__
|
||||||
|
@ -191,8 +191,9 @@ public:
|
|||||||
virtual nsresult InsertChildAt(nsIContent* aKid, uint32_t aIndex,
|
virtual nsresult InsertChildAt(nsIContent* aKid, uint32_t aIndex,
|
||||||
bool aNotify);
|
bool aNotify);
|
||||||
virtual void RemoveChildAt(uint32_t aIndex, bool aNotify);
|
virtual void RemoveChildAt(uint32_t aIndex, bool aNotify);
|
||||||
NS_IMETHOD GetTextContent(nsAString &aTextContent);
|
virtual void GetTextContentInternal(nsAString& aTextContent);
|
||||||
NS_IMETHOD SetTextContent(const nsAString& aTextContent);
|
virtual void SetTextContentInternal(const nsAString& aTextContent,
|
||||||
|
mozilla::ErrorResult& aError);
|
||||||
|
|
||||||
// nsIContent interface methods
|
// nsIContent interface methods
|
||||||
virtual already_AddRefed<nsINodeList> GetChildren(uint32_t aFilter);
|
virtual already_AddRefed<nsINodeList> GetChildren(uint32_t aFilter);
|
||||||
@ -219,49 +220,6 @@ public:
|
|||||||
NS_IMETHOD WalkContentStyleRules(nsRuleWalker* aRuleWalker);
|
NS_IMETHOD WalkContentStyleRules(nsRuleWalker* aRuleWalker);
|
||||||
|
|
||||||
public:
|
public:
|
||||||
// nsIDOMNode method implementation
|
|
||||||
NS_IMETHOD GetNodeName(nsAString& aNodeName);
|
|
||||||
NS_IMETHOD GetLocalName(nsAString& aLocalName);
|
|
||||||
NS_IMETHOD GetNodeValue(nsAString& aNodeValue);
|
|
||||||
NS_IMETHOD SetNodeValue(const nsAString& aNodeValue);
|
|
||||||
NS_IMETHOD GetNodeType(uint16_t* aNodeType);
|
|
||||||
NS_IMETHOD GetAttributes(nsIDOMNamedNodeMap** aAttributes);
|
|
||||||
NS_IMETHOD GetNamespaceURI(nsAString& aNamespaceURI);
|
|
||||||
NS_IMETHOD GetPrefix(nsAString& aPrefix);
|
|
||||||
NS_IMETHOD IsSupported(const nsAString& aFeature,
|
|
||||||
const nsAString& aVersion, bool* aReturn);
|
|
||||||
NS_IMETHOD HasAttributes(bool* aHasAttributes);
|
|
||||||
NS_IMETHOD HasChildNodes(bool* aHasChildNodes);
|
|
||||||
nsresult InsertBefore(nsIDOMNode* aNewChild, nsIDOMNode* aRefChild,
|
|
||||||
nsIDOMNode** aReturn)
|
|
||||||
{
|
|
||||||
return ReplaceOrInsertBefore(false, aNewChild, aRefChild, aReturn);
|
|
||||||
}
|
|
||||||
nsresult ReplaceChild(nsIDOMNode* aNewChild, nsIDOMNode* aOldChild,
|
|
||||||
nsIDOMNode** aReturn)
|
|
||||||
{
|
|
||||||
return ReplaceOrInsertBefore(true, aNewChild, aOldChild, aReturn);
|
|
||||||
}
|
|
||||||
nsresult RemoveChild(nsIDOMNode* aOldChild, nsIDOMNode** aReturn)
|
|
||||||
{
|
|
||||||
return nsINode::RemoveChild(aOldChild, aReturn);
|
|
||||||
}
|
|
||||||
nsresult AppendChild(nsIDOMNode* aNewChild, nsIDOMNode** aReturn)
|
|
||||||
{
|
|
||||||
return InsertBefore(aNewChild, nullptr, aReturn);
|
|
||||||
}
|
|
||||||
|
|
||||||
nsresult CloneNode(bool aDeep, uint8_t aOptionalArgc, nsIDOMNode **aResult)
|
|
||||||
{
|
|
||||||
if (!aOptionalArgc) {
|
|
||||||
aDeep = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return nsNodeUtils::CloneNodeImpl(this, aDeep, true, aResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* If there are listeners for DOMNodeInserted event, fires the event on all
|
* If there are listeners for DOMNodeInserted event, fires the event on all
|
||||||
* aNodes
|
* aNodes
|
||||||
|
@ -282,10 +282,9 @@ public:
|
|||||||
* Returns true if aNode1 is before aNode2 in the same connected
|
* Returns true if aNode1 is before aNode2 in the same connected
|
||||||
* tree.
|
* tree.
|
||||||
*/
|
*/
|
||||||
static bool PositionIsBefore(nsINode* aNode1,
|
static bool PositionIsBefore(nsINode* aNode1, nsINode* aNode2)
|
||||||
nsINode* aNode2)
|
|
||||||
{
|
{
|
||||||
return (aNode2->CompareDocPosition(aNode1) &
|
return (aNode2->CompareDocumentPosition(*aNode1) &
|
||||||
(nsIDOMNode::DOCUMENT_POSITION_PRECEDING |
|
(nsIDOMNode::DOCUMENT_POSITION_PRECEDING |
|
||||||
nsIDOMNode::DOCUMENT_POSITION_DISCONNECTED)) ==
|
nsIDOMNode::DOCUMENT_POSITION_DISCONNECTED)) ==
|
||||||
nsIDOMNode::DOCUMENT_POSITION_PRECEDING;
|
nsIDOMNode::DOCUMENT_POSITION_PRECEDING;
|
||||||
|
@ -16,27 +16,7 @@ DEPRECATED_OPERATION(CreateAttribute)
|
|||||||
DEPRECATED_OPERATION(CreateAttributeNS)
|
DEPRECATED_OPERATION(CreateAttributeNS)
|
||||||
DEPRECATED_OPERATION(Specified)
|
DEPRECATED_OPERATION(Specified)
|
||||||
DEPRECATED_OPERATION(OwnerElement)
|
DEPRECATED_OPERATION(OwnerElement)
|
||||||
DEPRECATED_OPERATION(NodeName)
|
|
||||||
DEPRECATED_OPERATION(NodeValue)
|
DEPRECATED_OPERATION(NodeValue)
|
||||||
DEPRECATED_OPERATION(NodeType)
|
|
||||||
DEPRECATED_OPERATION(ParentNode)
|
|
||||||
DEPRECATED_OPERATION(ChildNodes)
|
|
||||||
DEPRECATED_OPERATION(HasChildNodes)
|
|
||||||
DEPRECATED_OPERATION(HasAttributes)
|
|
||||||
DEPRECATED_OPERATION(FirstChild)
|
|
||||||
DEPRECATED_OPERATION(LastChild)
|
|
||||||
DEPRECATED_OPERATION(PreviousSibling)
|
|
||||||
DEPRECATED_OPERATION(NextSibling)
|
|
||||||
DEPRECATED_OPERATION(Attributes)
|
|
||||||
DEPRECATED_OPERATION(InsertBefore)
|
|
||||||
DEPRECATED_OPERATION(ReplaceChild)
|
|
||||||
DEPRECATED_OPERATION(RemoveChild)
|
|
||||||
DEPRECATED_OPERATION(AppendChild)
|
|
||||||
DEPRECATED_OPERATION(CloneNode)
|
|
||||||
DEPRECATED_OPERATION(OwnerDocument)
|
|
||||||
DEPRECATED_OPERATION(Normalize)
|
|
||||||
DEPRECATED_OPERATION(IsSupported)
|
|
||||||
DEPRECATED_OPERATION(IsEqualNode)
|
|
||||||
DEPRECATED_OPERATION(TextContent)
|
DEPRECATED_OPERATION(TextContent)
|
||||||
DEPRECATED_OPERATION(EnablePrivilege)
|
DEPRECATED_OPERATION(EnablePrivilege)
|
||||||
DEPRECATED_OPERATION(Position)
|
DEPRECATED_OPERATION(Position)
|
||||||
|
@ -27,7 +27,7 @@ public:
|
|||||||
return mAttrMap;
|
return mAttrMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsINodeInfo *NodeInfo()
|
nsINodeInfo *NodeInfo() const
|
||||||
{
|
{
|
||||||
return mNodeInfo;
|
return mNodeInfo;
|
||||||
}
|
}
|
||||||
|
@ -1721,6 +1721,11 @@ public:
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool CreatingStaticClone() const
|
||||||
|
{
|
||||||
|
return mCreatingStaticClone;
|
||||||
|
}
|
||||||
|
|
||||||
private:
|
private:
|
||||||
uint64_t mWarnedAbout;
|
uint64_t mWarnedAbout;
|
||||||
|
|
||||||
|
@ -6,9 +6,11 @@
|
|||||||
#ifndef nsINode_h___
|
#ifndef nsINode_h___
|
||||||
#define nsINode_h___
|
#define nsINode_h___
|
||||||
|
|
||||||
|
#include "mozilla/ErrorResult.h"
|
||||||
#include "nsCOMPtr.h" // for member, local
|
#include "nsCOMPtr.h" // for member, local
|
||||||
#include "nsGkAtoms.h" // for nsGkAtoms::baseURIProperty
|
#include "nsGkAtoms.h" // for nsGkAtoms::baseURIProperty
|
||||||
#include "nsIDOMEventTarget.h" // for base class
|
#include "nsIDOMEventTarget.h" // for base class
|
||||||
|
#include "nsIDOMNode.h"
|
||||||
#include "nsIDOMNodeSelector.h" // base class
|
#include "nsIDOMNodeSelector.h" // base class
|
||||||
#include "nsINodeInfo.h" // member (in nsCOMPtr)
|
#include "nsINodeInfo.h" // member (in nsCOMPtr)
|
||||||
#include "nsIVariant.h" // for use in GetUserData()
|
#include "nsIVariant.h" // for use in GetUserData()
|
||||||
@ -27,10 +29,10 @@
|
|||||||
|
|
||||||
class nsAttrAndChildArray;
|
class nsAttrAndChildArray;
|
||||||
class nsChildContentList;
|
class nsChildContentList;
|
||||||
|
class nsDOMAttributeMap;
|
||||||
class nsIContent;
|
class nsIContent;
|
||||||
class nsIDocument;
|
class nsIDocument;
|
||||||
class nsIDOMElement;
|
class nsIDOMElement;
|
||||||
class nsIDOMNode;
|
|
||||||
class nsIDOMNodeList;
|
class nsIDOMNodeList;
|
||||||
class nsIDOMUserDataHandler;
|
class nsIDOMUserDataHandler;
|
||||||
class nsIEditor;
|
class nsIEditor;
|
||||||
@ -43,10 +45,12 @@ class nsIURI;
|
|||||||
class nsNodeSupportsWeakRefTearoff;
|
class nsNodeSupportsWeakRefTearoff;
|
||||||
class nsNodeWeakReference;
|
class nsNodeWeakReference;
|
||||||
class nsXPCClassInfo;
|
class nsXPCClassInfo;
|
||||||
|
class nsGenericElement;
|
||||||
|
|
||||||
namespace mozilla {
|
namespace mozilla {
|
||||||
namespace dom {
|
namespace dom {
|
||||||
class Element;
|
class Element;
|
||||||
|
template<typename T> class Optional;
|
||||||
} // namespace dom
|
} // namespace dom
|
||||||
} // namespace mozilla
|
} // namespace mozilla
|
||||||
|
|
||||||
@ -243,8 +247,8 @@ private:
|
|||||||
|
|
||||||
// IID for the nsINode interface
|
// IID for the nsINode interface
|
||||||
#define NS_INODE_IID \
|
#define NS_INODE_IID \
|
||||||
{ 0x9aede57e, 0xe39e, 0x42e8, \
|
{ 0xb3ee8053, 0x43b0, 0x44bc, \
|
||||||
{ 0x8d, 0x33, 0x7a, 0xc3, 0xd0, 0xbb, 0x5b, 0xf9 } }
|
{ 0xa0, 0x97, 0x18, 0x24, 0xd2, 0xac, 0x65, 0xb6 } }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* An internal interface that abstracts some DOMNode-related parts that both
|
* An internal interface that abstracts some DOMNode-related parts that both
|
||||||
@ -361,6 +365,34 @@ public:
|
|||||||
*/
|
*/
|
||||||
virtual bool IsNodeOfType(uint32_t aFlags) const = 0;
|
virtual bool IsNodeOfType(uint32_t aFlags) const = 0;
|
||||||
|
|
||||||
|
virtual JSObject* WrapObject(JSContext *aCx, JSObject *aScope,
|
||||||
|
bool *aTriedToWrap);
|
||||||
|
|
||||||
|
protected:
|
||||||
|
/**
|
||||||
|
* WrapNode is called from WrapObject to actually wrap this node, WrapObject
|
||||||
|
* does some additional checks and fix-up that's common to all nodes. WrapNode
|
||||||
|
* should just call the DOM binding's Wrap function.
|
||||||
|
*/
|
||||||
|
virtual JSObject* WrapNode(JSContext *aCx, JSObject *aScope,
|
||||||
|
bool *aTriedToWrap)
|
||||||
|
{
|
||||||
|
*aTriedToWrap = false;
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
public:
|
||||||
|
nsIDocument* GetParentObject() const
|
||||||
|
{
|
||||||
|
// Make sure that we get the owner document of the content node, in case
|
||||||
|
// we're in document teardown. If we are, it's important to *not* use
|
||||||
|
// globalObj as the node's parent since that would give the node the
|
||||||
|
// principal of globalObj (i.e. the principal of the document that's being
|
||||||
|
// loaded) and not the principal of the document that's being unloaded.
|
||||||
|
// See http://bugzilla.mozilla.org/show_bug.cgi?id=227417
|
||||||
|
return OwnerDoc();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return whether the node is an Element node
|
* Return whether the node is an Element node
|
||||||
*/
|
*/
|
||||||
@ -488,23 +520,6 @@ public:
|
|||||||
return mNodeInfo->NameAtom();
|
return mNodeInfo->NameAtom();
|
||||||
}
|
}
|
||||||
|
|
||||||
nsINode*
|
|
||||||
InsertBefore(nsINode *aNewChild, nsINode *aRefChild, nsresult *aReturn)
|
|
||||||
{
|
|
||||||
return ReplaceOrInsertBefore(false, aNewChild, aRefChild, aReturn);
|
|
||||||
}
|
|
||||||
nsINode*
|
|
||||||
ReplaceChild(nsINode *aNewChild, nsINode *aOldChild, nsresult *aReturn)
|
|
||||||
{
|
|
||||||
return ReplaceOrInsertBefore(true, aNewChild, aOldChild, aReturn);
|
|
||||||
}
|
|
||||||
nsINode*
|
|
||||||
AppendChild(nsINode *aNewChild, nsresult *aReturn)
|
|
||||||
{
|
|
||||||
return InsertBefore(aNewChild, nullptr, aReturn);
|
|
||||||
}
|
|
||||||
nsresult RemoveChild(nsINode *aOldChild);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Insert a content node at a particular index. This method handles calling
|
* Insert a content node at a particular index. This method handles calling
|
||||||
* BindToTree on the child appropriately.
|
* BindToTree on the child appropriately.
|
||||||
@ -732,7 +747,7 @@ public:
|
|||||||
* an nsIDocument or an nsIAttribute.
|
* an nsIDocument or an nsIAttribute.
|
||||||
* @return the parent node
|
* @return the parent node
|
||||||
*/
|
*/
|
||||||
nsINode* GetNodeParent() const
|
nsINode* GetParentNode() const
|
||||||
{
|
{
|
||||||
return mParent;
|
return mParent;
|
||||||
}
|
}
|
||||||
@ -765,7 +780,7 @@ public:
|
|||||||
{
|
{
|
||||||
const nsINode* slowNode = this;
|
const nsINode* slowNode = this;
|
||||||
const nsINode* iter = slowNode;
|
const nsINode* iter = slowNode;
|
||||||
while ((iter = iter->GetNodeParent())) {
|
while ((iter = iter->GetParentNode())) {
|
||||||
slowNode = iter;
|
slowNode = iter;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1003,7 +1018,7 @@ public:
|
|||||||
*/
|
*/
|
||||||
nsIContent* GetSelectionRootContent(nsIPresShell* aPresShell);
|
nsIContent* GetSelectionRootContent(nsIPresShell* aPresShell);
|
||||||
|
|
||||||
virtual nsINodeList* GetChildNodesList();
|
virtual nsINodeList* ChildNodes();
|
||||||
nsIContent* GetFirstChild() const { return mFirstChild; }
|
nsIContent* GetFirstChild() const { return mFirstChild; }
|
||||||
nsIContent* GetLastChild() const
|
nsIContent* GetLastChild() const
|
||||||
{
|
{
|
||||||
@ -1019,7 +1034,7 @@ public:
|
|||||||
*/
|
*/
|
||||||
nsIDocument* GetOwnerDocument() const;
|
nsIDocument* GetOwnerDocument() const;
|
||||||
|
|
||||||
nsresult Normalize();
|
void Normalize();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Get the base URI for any relative URIs within this piece of
|
* Get the base URI for any relative URIs within this piece of
|
||||||
@ -1030,6 +1045,10 @@ public:
|
|||||||
* @return the base URI
|
* @return the base URI
|
||||||
*/
|
*/
|
||||||
virtual already_AddRefed<nsIURI> GetBaseURI() const = 0;
|
virtual already_AddRefed<nsIURI> GetBaseURI() const = 0;
|
||||||
|
already_AddRefed<nsIURI> GetBaseURIObject() const
|
||||||
|
{
|
||||||
|
return GetBaseURI();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Facility for explicitly setting a base URI on a node.
|
* Facility for explicitly setting a base URI on a node.
|
||||||
@ -1047,18 +1066,14 @@ protected:
|
|||||||
}
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
nsresult GetDOMBaseURI(nsAString &aURI) const;
|
void GetTextContent(nsAString& aTextContent)
|
||||||
|
|
||||||
// Note! This function must never fail. It only return an nsresult so that
|
|
||||||
// we can use it to implement nsIDOMNode
|
|
||||||
NS_IMETHOD GetTextContent(nsAString &aTextContent)
|
|
||||||
{
|
{
|
||||||
SetDOMStringToNull(aTextContent);
|
GetTextContentInternal(aTextContent);
|
||||||
return NS_OK;
|
|
||||||
}
|
}
|
||||||
NS_IMETHOD SetTextContent(const nsAString& aTextContent)
|
void SetTextContent(const nsAString& aTextContent,
|
||||||
|
mozilla::ErrorResult& aError)
|
||||||
{
|
{
|
||||||
return NS_OK;
|
SetTextContentInternal(aTextContent, aError);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1111,41 +1126,17 @@ public:
|
|||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void LookupPrefix(const nsAString& aNamespace, nsAString& aResult);
|
||||||
/**
|
bool IsDefaultNamespace(const nsAString& aNamespaceURI)
|
||||||
* Compares the document position of a node to this node.
|
|
||||||
*
|
|
||||||
* @param aOtherNode The node whose position is being compared to this node
|
|
||||||
*
|
|
||||||
* @return The document position flags of the nodes. aOtherNode is compared
|
|
||||||
* to this node, i.e. if aOtherNode is before this node then
|
|
||||||
* DOCUMENT_POSITION_PRECEDING will be set.
|
|
||||||
*
|
|
||||||
* @see nsIDOMNode
|
|
||||||
*/
|
|
||||||
uint16_t CompareDocPosition(nsINode* aOtherNode);
|
|
||||||
nsresult CompareDocPosition(nsINode* aOtherNode, uint16_t* aReturn)
|
|
||||||
{
|
|
||||||
NS_ENSURE_ARG(aOtherNode);
|
|
||||||
*aReturn = CompareDocPosition(aOtherNode);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
nsresult CompareDocumentPosition(nsIDOMNode* aOther,
|
|
||||||
uint16_t* aReturn);
|
|
||||||
|
|
||||||
nsresult LookupPrefix(const nsAString& aNamespaceURI, nsAString& aPrefix);
|
|
||||||
nsresult IsDefaultNamespace(const nsAString& aNamespaceURI, bool* aResult)
|
|
||||||
{
|
{
|
||||||
nsAutoString defaultNamespace;
|
nsAutoString defaultNamespace;
|
||||||
LookupNamespaceURI(EmptyString(), defaultNamespace);
|
LookupNamespaceURI(EmptyString(), defaultNamespace);
|
||||||
*aResult = aNamespaceURI.Equals(defaultNamespace);
|
return aNamespaceURI.Equals(defaultNamespace);
|
||||||
return NS_OK;
|
|
||||||
}
|
}
|
||||||
nsresult LookupNamespaceURI(const nsAString& aNamespacePrefix,
|
void LookupNamespaceURI(const nsAString& aNamespacePrefix,
|
||||||
nsAString& aNamespaceURI);
|
nsAString& aNamespaceURI);
|
||||||
|
|
||||||
nsresult IsEqualNode(nsIDOMNode* aOther, bool* aReturn);
|
nsresult IsEqualNode(nsIDOMNode* aOther, bool* aReturn);
|
||||||
bool IsEqualTo(nsINode* aOther);
|
|
||||||
|
|
||||||
nsIContent* GetNextSibling() const { return mNextSibling; }
|
nsIContent* GetNextSibling() const { return mNextSibling; }
|
||||||
nsIContent* GetPreviousSibling() const { return mPreviousSibling; }
|
nsIContent* GetPreviousSibling() const { return mPreviousSibling; }
|
||||||
@ -1194,7 +1185,7 @@ private:
|
|||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
if (aRoot) {
|
if (aRoot) {
|
||||||
const nsINode* cur = this;
|
const nsINode* cur = this;
|
||||||
for (; cur; cur = cur->GetNodeParent())
|
for (; cur; cur = cur->GetParentNode())
|
||||||
if (cur == aRoot) break;
|
if (cur == aRoot) break;
|
||||||
NS_ASSERTION(cur, "aRoot not an ancestor of |this|?");
|
NS_ASSERTION(cur, "aRoot not an ancestor of |this|?");
|
||||||
}
|
}
|
||||||
@ -1214,7 +1205,7 @@ private:
|
|||||||
if (next) {
|
if (next) {
|
||||||
return next;
|
return next;
|
||||||
}
|
}
|
||||||
nsINode* parent = cur->GetNodeParent();
|
nsINode* parent = cur->GetParentNode();
|
||||||
if (parent == aRoot) {
|
if (parent == aRoot) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
@ -1239,7 +1230,7 @@ public:
|
|||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
if (aRoot) {
|
if (aRoot) {
|
||||||
const nsINode* cur = this;
|
const nsINode* cur = this;
|
||||||
for (; cur; cur = cur->GetNodeParent())
|
for (; cur; cur = cur->GetParentNode())
|
||||||
if (cur == aRoot) break;
|
if (cur == aRoot) break;
|
||||||
NS_ASSERTION(cur, "aRoot not an ancestor of |this|?");
|
NS_ASSERTION(cur, "aRoot not an ancestor of |this|?");
|
||||||
}
|
}
|
||||||
@ -1425,6 +1416,88 @@ public:
|
|||||||
*/
|
*/
|
||||||
uint32_t Length() const;
|
uint32_t Length() const;
|
||||||
|
|
||||||
|
void GetNodeName(nsAString& aNodeName) const
|
||||||
|
{
|
||||||
|
aNodeName = NodeName();
|
||||||
|
}
|
||||||
|
void GetBaseURI(nsAString& aBaseURI) const;
|
||||||
|
nsGenericElement* GetParentElement() const;
|
||||||
|
bool HasChildNodes() const
|
||||||
|
{
|
||||||
|
return HasChildren();
|
||||||
|
}
|
||||||
|
uint16_t CompareDocumentPosition(nsINode& aOther) const;
|
||||||
|
void GetNodeValue(nsAString& aNodeValue)
|
||||||
|
{
|
||||||
|
GetNodeValueInternal(aNodeValue);
|
||||||
|
}
|
||||||
|
void SetNodeValue(const nsAString& aNodeValue,
|
||||||
|
mozilla::ErrorResult& aError)
|
||||||
|
{
|
||||||
|
SetNodeValueInternal(aNodeValue, aError);
|
||||||
|
}
|
||||||
|
virtual void GetNodeValueInternal(nsAString& aNodeValue)
|
||||||
|
{
|
||||||
|
SetDOMStringToNull(aNodeValue);
|
||||||
|
}
|
||||||
|
virtual void SetNodeValueInternal(const nsAString& aNodeValue,
|
||||||
|
mozilla::ErrorResult& aError)
|
||||||
|
{
|
||||||
|
// The DOM spec says that when nodeValue is defined to be null "setting it
|
||||||
|
// has no effect", so we don't throw an exception.
|
||||||
|
}
|
||||||
|
nsINode* InsertBefore(nsINode& aNode, nsINode* aChild,
|
||||||
|
mozilla::ErrorResult& aError)
|
||||||
|
{
|
||||||
|
return ReplaceOrInsertBefore(false, &aNode, aChild, aError);
|
||||||
|
}
|
||||||
|
nsINode* AppendChild(nsINode& aNode, mozilla::ErrorResult& aError)
|
||||||
|
{
|
||||||
|
return InsertBefore(aNode, nullptr, aError);
|
||||||
|
}
|
||||||
|
nsINode* ReplaceChild(nsINode& aNode, nsINode& aChild,
|
||||||
|
mozilla::ErrorResult& aError)
|
||||||
|
{
|
||||||
|
return ReplaceOrInsertBefore(true, &aNode, &aChild, aError);
|
||||||
|
}
|
||||||
|
nsINode* RemoveChild(nsINode& aChild, mozilla::ErrorResult& aError);
|
||||||
|
already_AddRefed<nsINode> CloneNode(bool aDeep, mozilla::ErrorResult& aError);
|
||||||
|
bool IsEqualNode(nsINode* aNode);
|
||||||
|
bool IsSupported(const nsAString& aFeature, const nsAString& aVersion);
|
||||||
|
void GetNamespaceURI(nsAString& aNamespaceURI, mozilla::ErrorResult& aError) const
|
||||||
|
{
|
||||||
|
aError = mNodeInfo->GetNamespaceURI(aNamespaceURI);
|
||||||
|
}
|
||||||
|
#ifdef MOZILLA_INTERNAL_API
|
||||||
|
void GetPrefix(nsAString& aPrefix)
|
||||||
|
{
|
||||||
|
mNodeInfo->GetPrefix(aPrefix);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
void GetLocalName(nsAString& aLocalName)
|
||||||
|
{
|
||||||
|
aLocalName = mNodeInfo->LocalName();
|
||||||
|
}
|
||||||
|
// HasAttributes is defined inline in Element.h.
|
||||||
|
bool HasAttributes() const;
|
||||||
|
nsDOMAttributeMap* GetAttributes();
|
||||||
|
JS::Value SetUserData(JSContext* aCx, const nsAString& aKey, JS::Value aData,
|
||||||
|
nsIDOMUserDataHandler* aHandler,
|
||||||
|
mozilla::ErrorResult& aError);
|
||||||
|
JS::Value GetUserData(JSContext* aCx, const nsAString& aKey,
|
||||||
|
mozilla::ErrorResult& aError);
|
||||||
|
|
||||||
|
// Helper method to remove this node from its parent. This is not exposed
|
||||||
|
// through WebIDL.
|
||||||
|
// Only call this if the node has a parent node.
|
||||||
|
nsresult RemoveFromParent()
|
||||||
|
{
|
||||||
|
nsINode* parent = GetParentNode();
|
||||||
|
mozilla::ErrorResult rv;
|
||||||
|
parent->RemoveChild(*this, rv);
|
||||||
|
return rv.ErrorCode();
|
||||||
|
}
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|
||||||
// Override this function to create a custom slots class.
|
// Override this function to create a custom slots class.
|
||||||
@ -1461,12 +1534,23 @@ protected:
|
|||||||
return IsEditableInternal();
|
return IsEditableInternal();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
virtual void GetTextContentInternal(nsAString& aTextContent)
|
||||||
|
{
|
||||||
|
SetDOMStringToNull(aTextContent);
|
||||||
|
}
|
||||||
|
virtual void SetTextContentInternal(const nsAString& aTextContent,
|
||||||
|
mozilla::ErrorResult& aError)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef DEBUG
|
#ifdef DEBUG
|
||||||
// Note: virtual so that IsInNativeAnonymousSubtree can be called accross
|
// Note: virtual so that IsInNativeAnonymousSubtree can be called accross
|
||||||
// module boundaries.
|
// module boundaries.
|
||||||
virtual void CheckNotNativeAnonymous() const;
|
virtual void CheckNotNativeAnonymous() const;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// These are just used to implement nsIDOMNode using
|
||||||
|
// NS_FORWARD_NSIDOMNODE_TO_NSINODE_HELPER and for quickstubs.
|
||||||
nsresult GetParentNode(nsIDOMNode** aParentNode);
|
nsresult GetParentNode(nsIDOMNode** aParentNode);
|
||||||
nsresult GetParentElement(nsIDOMElement** aParentElement);
|
nsresult GetParentElement(nsIDOMElement** aParentElement);
|
||||||
nsresult GetChildNodes(nsIDOMNodeList** aChildNodes);
|
nsresult GetChildNodes(nsIDOMNodeList** aChildNodes);
|
||||||
@ -1475,21 +1559,15 @@ protected:
|
|||||||
nsresult GetPreviousSibling(nsIDOMNode** aPrevSibling);
|
nsresult GetPreviousSibling(nsIDOMNode** aPrevSibling);
|
||||||
nsresult GetNextSibling(nsIDOMNode** aNextSibling);
|
nsresult GetNextSibling(nsIDOMNode** aNextSibling);
|
||||||
nsresult GetOwnerDocument(nsIDOMDocument** aOwnerDocument);
|
nsresult GetOwnerDocument(nsIDOMDocument** aOwnerDocument);
|
||||||
|
nsresult CompareDocumentPosition(nsIDOMNode* aOther,
|
||||||
|
uint16_t* aReturn);
|
||||||
|
nsresult GetAttributes(nsIDOMNamedNodeMap** aAttributes);
|
||||||
|
|
||||||
nsresult ReplaceOrInsertBefore(bool aReplace, nsIDOMNode *aNewChild,
|
nsresult ReplaceOrInsertBefore(bool aReplace, nsIDOMNode *aNewChild,
|
||||||
nsIDOMNode *aRefChild, nsIDOMNode **aReturn);
|
nsIDOMNode *aRefChild, nsIDOMNode **aReturn);
|
||||||
nsINode* ReplaceOrInsertBefore(bool aReplace, nsINode *aNewChild,
|
nsINode* ReplaceOrInsertBefore(bool aReplace, nsINode* aNewChild,
|
||||||
nsINode *aRefChild, nsresult *aReturn)
|
nsINode* aRefChild,
|
||||||
{
|
mozilla::ErrorResult& aError);
|
||||||
*aReturn = ReplaceOrInsertBefore(aReplace, aNewChild, aRefChild);
|
|
||||||
if (NS_FAILED(*aReturn)) {
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
|
|
||||||
return aReplace ? aRefChild : aNewChild;
|
|
||||||
}
|
|
||||||
virtual nsresult ReplaceOrInsertBefore(bool aReplace, nsINode* aNewChild,
|
|
||||||
nsINode* aRefChild);
|
|
||||||
nsresult RemoveChild(nsIDOMNode* aOldChild, nsIDOMNode** aReturn);
|
nsresult RemoveChild(nsIDOMNode* aOldChild, nsIDOMNode** aReturn);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1732,5 +1810,186 @@ extern const nsIID kThisPtrOffsetsSID;
|
|||||||
|
|
||||||
NS_DEFINE_STATIC_IID_ACCESSOR(nsINode, NS_INODE_IID)
|
NS_DEFINE_STATIC_IID_ACCESSOR(nsINode, NS_INODE_IID)
|
||||||
|
|
||||||
|
#define NS_FORWARD_NSIDOMNODE_TO_NSINODE_HELPER(_final) \
|
||||||
|
NS_IMETHOD GetNodeName(nsAString& aNodeName) _final \
|
||||||
|
{ \
|
||||||
|
nsINode::GetNodeName(aNodeName); \
|
||||||
|
return NS_OK; \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD GetNodeValue(nsAString& aNodeValue) _final \
|
||||||
|
{ \
|
||||||
|
nsINode::GetNodeValue(aNodeValue); \
|
||||||
|
return NS_OK; \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD SetNodeValue(const nsAString& aNodeValue) _final \
|
||||||
|
{ \
|
||||||
|
mozilla::ErrorResult rv; \
|
||||||
|
nsINode::SetNodeValue(aNodeValue, rv); \
|
||||||
|
return rv.ErrorCode(); \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD GetNodeType(uint16_t* aNodeType) _final \
|
||||||
|
{ \
|
||||||
|
*aNodeType = nsINode::NodeType(); \
|
||||||
|
return NS_OK; \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD GetParentNode(nsIDOMNode** aParentNode) _final \
|
||||||
|
{ \
|
||||||
|
return nsINode::GetParentNode(aParentNode); \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD GetParentElement(nsIDOMElement** aParentElement) _final \
|
||||||
|
{ \
|
||||||
|
return nsINode::GetParentElement(aParentElement); \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD GetChildNodes(nsIDOMNodeList** aChildNodes) _final \
|
||||||
|
{ \
|
||||||
|
return nsINode::GetChildNodes(aChildNodes); \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD GetFirstChild(nsIDOMNode** aFirstChild) _final \
|
||||||
|
{ \
|
||||||
|
return nsINode::GetFirstChild(aFirstChild); \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD GetLastChild(nsIDOMNode** aLastChild) _final \
|
||||||
|
{ \
|
||||||
|
return nsINode::GetLastChild(aLastChild); \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD GetPreviousSibling(nsIDOMNode** aPreviousSibling) _final \
|
||||||
|
{ \
|
||||||
|
return nsINode::GetPreviousSibling(aPreviousSibling); \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD GetNextSibling(nsIDOMNode** aNextSibling) _final \
|
||||||
|
{ \
|
||||||
|
return nsINode::GetNextSibling(aNextSibling); \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD GetAttributes(nsIDOMNamedNodeMap** aAttributes) _final \
|
||||||
|
{ \
|
||||||
|
return nsINode::GetAttributes(aAttributes); \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD GetOwnerDocument(nsIDOMDocument** aOwnerDocument) _final \
|
||||||
|
{ \
|
||||||
|
return nsINode::GetOwnerDocument(aOwnerDocument); \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD InsertBefore(nsIDOMNode* aNewChild, nsIDOMNode* aRefChild, nsIDOMNode** aResult) _final \
|
||||||
|
{ \
|
||||||
|
return ReplaceOrInsertBefore(false, aNewChild, aRefChild, aResult); \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD ReplaceChild(nsIDOMNode* aNewChild, nsIDOMNode* aOldChild, nsIDOMNode** aResult) _final \
|
||||||
|
{ \
|
||||||
|
return ReplaceOrInsertBefore(true, aNewChild, aOldChild, aResult); \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD RemoveChild(nsIDOMNode* aOldChild, nsIDOMNode** aResult) _final \
|
||||||
|
{ \
|
||||||
|
return nsINode::RemoveChild(aOldChild, aResult); \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD AppendChild(nsIDOMNode* aNewChild, nsIDOMNode** aResult) _final \
|
||||||
|
{ \
|
||||||
|
return InsertBefore(aNewChild, nullptr, aResult); \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD HasChildNodes(bool* aResult) _final \
|
||||||
|
{ \
|
||||||
|
*aResult = nsINode::HasChildNodes(); \
|
||||||
|
return NS_OK; \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD CloneNode(bool aDeep, uint8_t aArgc, nsIDOMNode** aResult) _final \
|
||||||
|
{ \
|
||||||
|
if (aArgc == 0) { \
|
||||||
|
aDeep = true; \
|
||||||
|
} \
|
||||||
|
mozilla::ErrorResult rv; \
|
||||||
|
nsCOMPtr<nsINode> clone = nsINode::CloneNode(aDeep, rv); \
|
||||||
|
if (rv.Failed()) { \
|
||||||
|
return rv.ErrorCode(); \
|
||||||
|
} \
|
||||||
|
*aResult = clone.forget().get()->AsDOMNode(); \
|
||||||
|
return NS_OK; \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD Normalize() _final \
|
||||||
|
{ \
|
||||||
|
nsINode::Normalize(); \
|
||||||
|
return NS_OK; \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD IsSupported(const nsAString& aFeature, const nsAString& aVersion, bool* aResult) _final \
|
||||||
|
{ \
|
||||||
|
*aResult = nsINode::IsSupported(aFeature, aVersion); \
|
||||||
|
return NS_OK; \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD GetNamespaceURI(nsAString& aNamespaceURI) _final \
|
||||||
|
{ \
|
||||||
|
mozilla::ErrorResult rv; \
|
||||||
|
nsINode::GetNamespaceURI(aNamespaceURI, rv); \
|
||||||
|
return rv.ErrorCode(); \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD GetPrefix(nsAString& aPrefix) _final \
|
||||||
|
{ \
|
||||||
|
nsINode::GetPrefix(aPrefix); \
|
||||||
|
return NS_OK; \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD GetLocalName(nsAString& aLocalName) _final \
|
||||||
|
{ \
|
||||||
|
nsINode::GetLocalName(aLocalName); \
|
||||||
|
return NS_OK; \
|
||||||
|
} \
|
||||||
|
using nsINode::HasAttributes; \
|
||||||
|
NS_IMETHOD HasAttributes(bool* aResult) _final \
|
||||||
|
{ \
|
||||||
|
*aResult = nsINode::HasAttributes(); \
|
||||||
|
return NS_OK; \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD GetDOMBaseURI(nsAString& aBaseURI) _final \
|
||||||
|
{ \
|
||||||
|
nsINode::GetBaseURI(aBaseURI); \
|
||||||
|
return NS_OK; \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD CompareDocumentPosition(nsIDOMNode* aOther, uint16_t* aResult) _final \
|
||||||
|
{ \
|
||||||
|
return nsINode::CompareDocumentPosition(aOther, aResult); \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD GetTextContent(nsAString& aTextContent) _final \
|
||||||
|
{ \
|
||||||
|
nsINode::GetTextContent(aTextContent); \
|
||||||
|
return NS_OK; \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD SetTextContent(const nsAString& aTextContent) _final \
|
||||||
|
{ \
|
||||||
|
mozilla::ErrorResult rv; \
|
||||||
|
nsINode::SetTextContent(aTextContent, rv); \
|
||||||
|
return rv.ErrorCode(); \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD LookupPrefix(const nsAString& aNamespaceURI, nsAString& aResult) _final \
|
||||||
|
{ \
|
||||||
|
nsINode::LookupPrefix(aNamespaceURI, aResult); \
|
||||||
|
return NS_OK; \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD IsDefaultNamespace(const nsAString& aNamespaceURI, bool* aResult) _final \
|
||||||
|
{ \
|
||||||
|
*aResult = nsINode::IsDefaultNamespace(aNamespaceURI); \
|
||||||
|
return NS_OK; \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD LookupNamespaceURI(const nsAString& aPrefix, nsAString& aResult) _final \
|
||||||
|
{ \
|
||||||
|
nsINode::LookupNamespaceURI(aPrefix, aResult); \
|
||||||
|
return NS_OK; \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD IsEqualNode(nsIDOMNode* aArg, bool* aResult) _final \
|
||||||
|
{ \
|
||||||
|
return nsINode::IsEqualNode(aArg, aResult); \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD SetUserData(const nsAString& aKey, nsIVariant* aData, nsIDOMUserDataHandler* aHandler, nsIVariant** aResult) _final \
|
||||||
|
{ \
|
||||||
|
return nsINode::SetUserData(aKey, aData, aHandler, aResult); \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD GetUserData(const nsAString& aKey, nsIVariant** aResult) _final \
|
||||||
|
{ \
|
||||||
|
return nsINode::GetUserData(aKey, aResult); \
|
||||||
|
} \
|
||||||
|
NS_IMETHOD Contains(nsIDOMNode* aOther, bool* aResult) _final \
|
||||||
|
{ \
|
||||||
|
return nsINode::Contains(aOther, aResult); \
|
||||||
|
}
|
||||||
|
|
||||||
|
#define NS_FORWARD_NSIDOMNODE_TO_NSINODE \
|
||||||
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE_HELPER(MOZ_FINAL)
|
||||||
|
|
||||||
|
#define NS_FORWARD_NSIDOMNODE_TO_NSINODE_OVERRIDABLE \
|
||||||
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE_HELPER()
|
||||||
|
|
||||||
#endif /* nsINode_h___ */
|
#endif /* nsINode_h___ */
|
||||||
|
@ -454,7 +454,8 @@ NS_IMETHODIMP
|
|||||||
nsNode3Tearoff::LookupNamespaceURI(const nsAString& aNamespacePrefix,
|
nsNode3Tearoff::LookupNamespaceURI(const nsAString& aNamespacePrefix,
|
||||||
nsAString& aNamespaceURI)
|
nsAString& aNamespaceURI)
|
||||||
{
|
{
|
||||||
return mNode->LookupNamespaceURI(aNamespacePrefix, aNamespaceURI);
|
mNode->LookupNamespaceURI(aNamespacePrefix, aNamespaceURI);
|
||||||
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsContentList*
|
nsContentList*
|
||||||
@ -639,90 +640,6 @@ FragmentOrElement::~FragmentOrElement()
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
FragmentOrElement::GetNodeName(nsAString& aNodeName)
|
|
||||||
{
|
|
||||||
aNodeName = NodeName();
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
FragmentOrElement::GetLocalName(nsAString& aLocalName)
|
|
||||||
{
|
|
||||||
aLocalName = LocalName();
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
FragmentOrElement::GetNodeValue(nsAString& aNodeValue)
|
|
||||||
{
|
|
||||||
SetDOMStringToNull(aNodeValue);
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
FragmentOrElement::SetNodeValue(const nsAString& aNodeValue)
|
|
||||||
{
|
|
||||||
// The DOM spec says that when nodeValue is defined to be null "setting it
|
|
||||||
// has no effect", so we don't throw an exception.
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
FragmentOrElement::GetNodeType(uint16_t* aNodeType)
|
|
||||||
{
|
|
||||||
*aNodeType = NodeType();
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
FragmentOrElement::GetNamespaceURI(nsAString& aNamespaceURI)
|
|
||||||
{
|
|
||||||
return mNodeInfo->GetNamespaceURI(aNamespaceURI);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
FragmentOrElement::GetPrefix(nsAString& aPrefix)
|
|
||||||
{
|
|
||||||
mNodeInfo->GetPrefix(aPrefix);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
FragmentOrElement::IsSupported(const nsAString& aFeature,
|
|
||||||
const nsAString& aVersion,
|
|
||||||
bool* aReturn)
|
|
||||||
{
|
|
||||||
*aReturn = nsContentUtils::InternalIsSupported(this, aFeature, aVersion);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
FragmentOrElement::HasAttributes(bool* aReturn)
|
|
||||||
{
|
|
||||||
NS_ENSURE_ARG_POINTER(aReturn);
|
|
||||||
|
|
||||||
*aReturn = GetAttrCount() > 0;
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
FragmentOrElement::GetAttributes(nsIDOMNamedNodeMap** aAttributes)
|
|
||||||
{
|
|
||||||
*aAttributes = nullptr;
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
nsresult
|
|
||||||
FragmentOrElement::HasChildNodes(bool* aReturn)
|
|
||||||
{
|
|
||||||
*aReturn = mAttrsAndChildren.ChildCount() > 0;
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
already_AddRefed<nsINodeList>
|
already_AddRefed<nsINodeList>
|
||||||
FragmentOrElement::GetChildren(uint32_t aFilter)
|
FragmentOrElement::GetChildren(uint32_t aFilter)
|
||||||
{
|
{
|
||||||
@ -751,7 +668,7 @@ FragmentOrElement::GetChildren(uint32_t aFilter)
|
|||||||
if (!(aFilter & eAllButXBL)) {
|
if (!(aFilter & eAllButXBL)) {
|
||||||
childList = document->BindingManager()->GetXBLChildNodesFor(this);
|
childList = document->BindingManager()->GetXBLChildNodesFor(this);
|
||||||
if (!childList) {
|
if (!childList) {
|
||||||
childList = GetChildNodesList();
|
childList = ChildNodes();
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
@ -978,17 +895,17 @@ FragmentOrElement::RemoveChildAt(uint32_t aIndex, bool aNotify)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
void
|
||||||
FragmentOrElement::GetTextContent(nsAString &aTextContent)
|
FragmentOrElement::GetTextContentInternal(nsAString& aTextContent)
|
||||||
{
|
{
|
||||||
nsContentUtils::GetNodeTextContent(this, true, aTextContent);
|
nsContentUtils::GetNodeTextContent(this, true, aTextContent);
|
||||||
return NS_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
void
|
||||||
FragmentOrElement::SetTextContent(const nsAString& aTextContent)
|
FragmentOrElement::SetTextContentInternal(const nsAString& aTextContent,
|
||||||
|
ErrorResult& aError)
|
||||||
{
|
{
|
||||||
return nsContentUtils::SetNodeTextContent(this, aTextContent, false);
|
aError = nsContentUtils::SetNodeTextContent(this, aTextContent, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
@ -1208,7 +1125,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(FragmentOrElement)
|
|||||||
|
|
||||||
{
|
{
|
||||||
nsIDocument *doc;
|
nsIDocument *doc;
|
||||||
if (!tmp->GetNodeParent() && (doc = tmp->OwnerDoc())) {
|
if (!tmp->GetParentNode() && (doc = tmp->OwnerDoc())) {
|
||||||
doc->BindingManager()->RemovedFromDocument(tmp, doc);
|
doc->BindingManager()->RemovedFromDocument(tmp, doc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1259,7 +1176,7 @@ nsINode*
|
|||||||
FindOptimizableSubtreeRoot(nsINode* aNode)
|
FindOptimizableSubtreeRoot(nsINode* aNode)
|
||||||
{
|
{
|
||||||
nsINode* p;
|
nsINode* p;
|
||||||
while ((p = aNode->GetNodeParent())) {
|
while ((p = aNode->GetParentNode())) {
|
||||||
if (aNode->UnoptimizableCCNode()) {
|
if (aNode->UnoptimizableCCNode()) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
@ -1888,7 +1805,7 @@ FragmentOrElement::FireNodeRemovedForChildren()
|
|||||||
|
|
||||||
nsCOMPtr<nsINode> child;
|
nsCOMPtr<nsINode> child;
|
||||||
for (child = GetFirstChild();
|
for (child = GetFirstChild();
|
||||||
child && child->GetNodeParent() == this;
|
child && child->GetParentNode() == this;
|
||||||
child = child->GetNextSibling()) {
|
child = child->GetNextSibling()) {
|
||||||
nsContentUtils::MaybeFireNodeRemoved(child, this, doc);
|
nsContentUtils::MaybeFireNodeRemoved(child, this, doc);
|
||||||
}
|
}
|
||||||
|
@ -24,7 +24,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericDOMDataNode::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMCharacterData
|
// nsIDOMCharacterData
|
||||||
NS_FORWARD_NSIDOMCHARACTERDATA(nsGenericDOMDataNode::)
|
NS_FORWARD_NSIDOMCHARACTERDATA(nsGenericDOMDataNode::)
|
||||||
|
@ -25,7 +25,7 @@ NodeToParentOffset(nsINode* aNode, int32_t* aOffset)
|
|||||||
{
|
{
|
||||||
*aOffset = 0;
|
*aOffset = 0;
|
||||||
|
|
||||||
nsINode* parent = aNode->GetNodeParent();
|
nsINode* parent = aNode->GetParentNode();
|
||||||
|
|
||||||
if (parent) {
|
if (parent) {
|
||||||
*aOffset = parent->IndexOf(aNode);
|
*aOffset = parent->IndexOf(aNode);
|
||||||
@ -54,7 +54,7 @@ NodeIsInTraversalRange(nsINode* aNode, bool aIsPreMode,
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsINode* parent = aNode->GetNodeParent();
|
nsINode* parent = aNode->GetParentNode();
|
||||||
if (!parent) {
|
if (!parent) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -461,7 +461,7 @@ nsContentIterator::RebuildIndexStack()
|
|||||||
}
|
}
|
||||||
|
|
||||||
while (current != mCommonParent) {
|
while (current != mCommonParent) {
|
||||||
parent = current->GetNodeParent();
|
parent = current->GetParentNode();
|
||||||
|
|
||||||
if (!parent) {
|
if (!parent) {
|
||||||
return NS_ERROR_FAILURE;
|
return NS_ERROR_FAILURE;
|
||||||
@ -575,7 +575,7 @@ nsContentIterator::GetNextSibling(nsINode* aNode,
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsINode* parent = aNode->GetNodeParent();
|
nsINode* parent = aNode->GetParentNode();
|
||||||
if (!parent) {
|
if (!parent) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
@ -636,7 +636,7 @@ nsContentIterator::GetPrevSibling(nsINode* aNode,
|
|||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsINode* parent = aNode->GetNodeParent();
|
nsINode* parent = aNode->GetParentNode();
|
||||||
if (!parent) {
|
if (!parent) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
@ -706,7 +706,7 @@ nsContentIterator::NextNode(nsINode* aNode, nsTArray<int32_t>* aIndexes)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// post-order
|
// post-order
|
||||||
nsINode* parent = node->GetNodeParent();
|
nsINode* parent = node->GetParentNode();
|
||||||
nsIContent* sibling = nullptr;
|
nsIContent* sibling = nullptr;
|
||||||
int32_t indx = 0;
|
int32_t indx = 0;
|
||||||
|
|
||||||
@ -769,7 +769,7 @@ nsContentIterator::PrevNode(nsINode* aNode, nsTArray<int32_t>* aIndexes)
|
|||||||
|
|
||||||
// if we are a Pre-order iterator, use pre-order
|
// if we are a Pre-order iterator, use pre-order
|
||||||
if (mPre) {
|
if (mPre) {
|
||||||
nsINode* parent = node->GetNodeParent();
|
nsINode* parent = node->GetParentNode();
|
||||||
nsIContent* sibling = nullptr;
|
nsIContent* sibling = nullptr;
|
||||||
int32_t indx = 0;
|
int32_t indx = 0;
|
||||||
|
|
||||||
@ -1004,7 +1004,7 @@ nsContentIterator::PositionAt(nsINode* aCurNode)
|
|||||||
// Insert at head since we're walking up
|
// Insert at head since we're walking up
|
||||||
oldParentStack.InsertElementAt(0, tempNode);
|
oldParentStack.InsertElementAt(0, tempNode);
|
||||||
|
|
||||||
nsINode* parent = tempNode->GetNodeParent();
|
nsINode* parent = tempNode->GetParentNode();
|
||||||
|
|
||||||
if (!parent) {
|
if (!parent) {
|
||||||
// this node has no parent, and thus no index
|
// this node has no parent, and thus no index
|
||||||
@ -1024,7 +1024,7 @@ nsContentIterator::PositionAt(nsINode* aCurNode)
|
|||||||
|
|
||||||
// Ok. We have the array of old parents. Look for a match.
|
// Ok. We have the array of old parents. Look for a match.
|
||||||
while (newCurNode) {
|
while (newCurNode) {
|
||||||
nsINode* parent = newCurNode->GetNodeParent();
|
nsINode* parent = newCurNode->GetParentNode();
|
||||||
|
|
||||||
if (!parent) {
|
if (!parent) {
|
||||||
// this node has no parent, and thus no index
|
// this node has no parent, and thus no index
|
||||||
@ -1422,7 +1422,7 @@ nsContentSubtreeIterator::PositionAt(nsINode* aCurNode)
|
|||||||
nsIContent*
|
nsIContent*
|
||||||
nsContentSubtreeIterator::GetTopAncestorInRange(nsINode* aNode)
|
nsContentSubtreeIterator::GetTopAncestorInRange(nsINode* aNode)
|
||||||
{
|
{
|
||||||
if (!aNode || !aNode->GetNodeParent()) {
|
if (!aNode || !aNode->GetParentNode()) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1447,7 +1447,7 @@ nsContentSubtreeIterator::GetTopAncestorInRange(nsINode* aNode)
|
|||||||
//
|
//
|
||||||
// We have to special-case this because CompareNodeToRange treats the root
|
// We have to special-case this because CompareNodeToRange treats the root
|
||||||
// node differently -- see bug 765205.
|
// node differently -- see bug 765205.
|
||||||
if (!parent || !parent->GetNodeParent()) {
|
if (!parent || !parent->GetParentNode()) {
|
||||||
return content;
|
return content;
|
||||||
}
|
}
|
||||||
MOZ_ALWAYS_TRUE(NS_SUCCEEDED(
|
MOZ_ALWAYS_TRUE(NS_SUCCEEDED(
|
||||||
|
@ -733,7 +733,7 @@ nsContentList::AttributeChanged(nsIDocument *aDocument, Element* aElement,
|
|||||||
NS_PRECONDITION(aElement, "Must have a content node to work with");
|
NS_PRECONDITION(aElement, "Must have a content node to work with");
|
||||||
|
|
||||||
if (!mFunc || !mFuncMayDependOnAttr || mState == LIST_DIRTY ||
|
if (!mFunc || !mFuncMayDependOnAttr || mState == LIST_DIRTY ||
|
||||||
!MayContainRelevantNodes(aElement->GetNodeParent()) ||
|
!MayContainRelevantNodes(aElement->GetParentNode()) ||
|
||||||
!nsContentUtils::IsInSameAnonymousTree(mRootNode, aElement)) {
|
!nsContentUtils::IsInSameAnonymousTree(mRootNode, aElement)) {
|
||||||
// Either we're already dirty or this notification doesn't affect
|
// Either we're already dirty or this notification doesn't affect
|
||||||
// whether we might match aElement.
|
// whether we might match aElement.
|
||||||
@ -932,7 +932,7 @@ bool
|
|||||||
nsContentList::MatchSelf(nsIContent *aContent)
|
nsContentList::MatchSelf(nsIContent *aContent)
|
||||||
{
|
{
|
||||||
NS_PRECONDITION(aContent, "Can't match null stuff, you know");
|
NS_PRECONDITION(aContent, "Can't match null stuff, you know");
|
||||||
NS_PRECONDITION(mDeep || aContent->GetNodeParent() == mRootNode,
|
NS_PRECONDITION(mDeep || aContent->GetParentNode() == mRootNode,
|
||||||
"MatchSelf called on a node that we can't possibly match");
|
"MatchSelf called on a node that we can't possibly match");
|
||||||
|
|
||||||
if (!aContent->IsElement()) {
|
if (!aContent->IsElement()) {
|
||||||
|
@ -1675,7 +1675,7 @@ nsContentUtils::InProlog(nsINode *aNode)
|
|||||||
{
|
{
|
||||||
NS_PRECONDITION(aNode, "missing node to nsContentUtils::InProlog");
|
NS_PRECONDITION(aNode, "missing node to nsContentUtils::InProlog");
|
||||||
|
|
||||||
nsINode* parent = aNode->GetNodeParent();
|
nsINode* parent = aNode->GetParentNode();
|
||||||
if (!parent || !parent->IsNodeOfType(nsINode::eDOCUMENT)) {
|
if (!parent || !parent->IsNodeOfType(nsINode::eDOCUMENT)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -1811,7 +1811,7 @@ nsContentUtils::GetCrossDocParentNode(nsINode* aChild)
|
|||||||
{
|
{
|
||||||
NS_PRECONDITION(aChild, "The child is null!");
|
NS_PRECONDITION(aChild, "The child is null!");
|
||||||
|
|
||||||
nsINode* parent = aChild->GetNodeParent();
|
nsINode* parent = aChild->GetParentNode();
|
||||||
if (parent || !aChild->IsNodeOfType(nsINode::eDOCUMENT))
|
if (parent || !aChild->IsNodeOfType(nsINode::eDOCUMENT))
|
||||||
return parent;
|
return parent;
|
||||||
|
|
||||||
@ -1831,7 +1831,7 @@ nsContentUtils::ContentIsDescendantOf(const nsINode* aPossibleDescendant,
|
|||||||
do {
|
do {
|
||||||
if (aPossibleDescendant == aPossibleAncestor)
|
if (aPossibleDescendant == aPossibleAncestor)
|
||||||
return true;
|
return true;
|
||||||
aPossibleDescendant = aPossibleDescendant->GetNodeParent();
|
aPossibleDescendant = aPossibleDescendant->GetParentNode();
|
||||||
} while (aPossibleDescendant);
|
} while (aPossibleDescendant);
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@ -1862,7 +1862,7 @@ nsContentUtils::GetAncestors(nsINode* aNode,
|
|||||||
{
|
{
|
||||||
while (aNode) {
|
while (aNode) {
|
||||||
aArray.AppendElement(aNode);
|
aArray.AppendElement(aNode);
|
||||||
aNode = aNode->GetNodeParent();
|
aNode = aNode->GetParentNode();
|
||||||
}
|
}
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
@ -1941,11 +1941,11 @@ nsContentUtils::GetCommonAncestor(nsINode* aNode1,
|
|||||||
nsAutoTArray<nsINode*, 30> parents1, parents2;
|
nsAutoTArray<nsINode*, 30> parents1, parents2;
|
||||||
do {
|
do {
|
||||||
parents1.AppendElement(aNode1);
|
parents1.AppendElement(aNode1);
|
||||||
aNode1 = aNode1->GetNodeParent();
|
aNode1 = aNode1->GetParentNode();
|
||||||
} while (aNode1);
|
} while (aNode1);
|
||||||
do {
|
do {
|
||||||
parents2.AppendElement(aNode2);
|
parents2.AppendElement(aNode2);
|
||||||
aNode2 = aNode2->GetNodeParent();
|
aNode2 = aNode2->GetParentNode();
|
||||||
} while (aNode2);
|
} while (aNode2);
|
||||||
|
|
||||||
// Find where the parent chain differs
|
// Find where the parent chain differs
|
||||||
@ -1982,11 +1982,11 @@ nsContentUtils::ComparePoints(nsINode* aParent1, int32_t aOffset1,
|
|||||||
nsINode* node2 = aParent2;
|
nsINode* node2 = aParent2;
|
||||||
do {
|
do {
|
||||||
parents1.AppendElement(node1);
|
parents1.AppendElement(node1);
|
||||||
node1 = node1->GetNodeParent();
|
node1 = node1->GetParentNode();
|
||||||
} while (node1);
|
} while (node1);
|
||||||
do {
|
do {
|
||||||
parents2.AppendElement(node2);
|
parents2.AppendElement(node2);
|
||||||
node2 = node2->GetNodeParent();
|
node2 = node2->GetParentNode();
|
||||||
} while (node2);
|
} while (node2);
|
||||||
|
|
||||||
uint32_t pos1 = parents1.Length() - 1;
|
uint32_t pos1 = parents1.Length() - 1;
|
||||||
@ -2340,12 +2340,12 @@ nsContentUtils::GenerateStateKey(nsIContent* aContent,
|
|||||||
// Now start at aContent and append the indices of it and all its ancestors
|
// Now start at aContent and append the indices of it and all its ancestors
|
||||||
// in their containers. That should at least pin down its position in the
|
// in their containers. That should at least pin down its position in the
|
||||||
// DOM...
|
// DOM...
|
||||||
nsINode* parent = aContent->GetNodeParent();
|
nsINode* parent = aContent->GetParentNode();
|
||||||
nsINode* content = aContent;
|
nsINode* content = aContent;
|
||||||
while (parent) {
|
while (parent) {
|
||||||
KeyAppendInt(parent->IndexOf(content), aKey);
|
KeyAppendInt(parent->IndexOf(content), aKey);
|
||||||
content = parent;
|
content = parent;
|
||||||
parent = content->GetNodeParent();
|
parent = content->GetParentNode();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -3858,7 +3858,7 @@ nsContentUtils::HasMutationListeners(nsINode* aNode,
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
aNode = aNode->GetNodeParent();
|
aNode = aNode->GetParentNode();
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
@ -3882,7 +3882,7 @@ nsContentUtils::MaybeFireNodeRemoved(nsINode* aChild, nsINode* aParent,
|
|||||||
nsIDocument* aOwnerDoc)
|
nsIDocument* aOwnerDoc)
|
||||||
{
|
{
|
||||||
NS_PRECONDITION(aChild, "Missing child");
|
NS_PRECONDITION(aChild, "Missing child");
|
||||||
NS_PRECONDITION(aChild->GetNodeParent() == aParent, "Wrong parent");
|
NS_PRECONDITION(aChild->GetParentNode() == aParent, "Wrong parent");
|
||||||
NS_PRECONDITION(aChild->OwnerDoc() == aOwnerDoc, "Wrong owner-doc");
|
NS_PRECONDITION(aChild->OwnerDoc() == aOwnerDoc, "Wrong owner-doc");
|
||||||
|
|
||||||
// This checks that IsSafeToRunScript is true since we don't want to fire
|
// This checks that IsSafeToRunScript is true since we don't want to fire
|
||||||
@ -4382,7 +4382,7 @@ nsContentUtils::SetNodeTextContent(nsIContent* aContent,
|
|||||||
nsCOMPtr<nsINode> child;
|
nsCOMPtr<nsINode> child;
|
||||||
bool skipFirst = aTryReuse;
|
bool skipFirst = aTryReuse;
|
||||||
for (child = aContent->GetFirstChild();
|
for (child = aContent->GetFirstChild();
|
||||||
child && child->GetNodeParent() == aContent;
|
child && child->GetParentNode() == aContent;
|
||||||
child = child->GetNextSibling()) {
|
child = child->GetNextSibling()) {
|
||||||
if (skipFirst && child->IsNodeOfType(nsINode::eTEXT)) {
|
if (skipFirst && child->IsNodeOfType(nsINode::eTEXT)) {
|
||||||
skipFirst = false;
|
skipFirst = false;
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
#include "nsAsyncDOMEvent.h"
|
#include "nsAsyncDOMEvent.h"
|
||||||
#include "nsWrapperCacheInlines.h"
|
#include "nsWrapperCacheInlines.h"
|
||||||
|
|
||||||
|
using namespace mozilla;
|
||||||
using namespace mozilla::dom;
|
using namespace mozilla::dom;
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
@ -210,167 +211,20 @@ nsDOMAttribute::GetOwnerElement(nsIDOMElement** aOwnerElement)
|
|||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
void
|
||||||
nsDOMAttribute::GetNodeName(nsAString& aNodeName)
|
nsDOMAttribute::GetNodeValueInternal(nsAString& aNodeValue)
|
||||||
{
|
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eNodeName);
|
|
||||||
|
|
||||||
return GetName(aNodeName);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::GetNodeValue(nsAString& aNodeValue)
|
|
||||||
{
|
{
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eNodeValue);
|
OwnerDoc()->WarnOnceAbout(nsIDocument::eNodeValue);
|
||||||
|
|
||||||
return GetValue(aNodeValue);
|
GetValue(aNodeValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
void
|
||||||
nsDOMAttribute::SetNodeValue(const nsAString& aNodeValue)
|
nsDOMAttribute::SetNodeValueInternal(const nsAString& aNodeValue, ErrorResult& aError)
|
||||||
{
|
{
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eNodeValue);
|
OwnerDoc()->WarnOnceAbout(nsIDocument::eNodeValue);
|
||||||
|
|
||||||
return SetValue(aNodeValue);
|
aError = SetValue(aNodeValue);
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::GetNodeType(uint16_t* aNodeType)
|
|
||||||
{
|
|
||||||
NS_ENSURE_ARG_POINTER(aNodeType);
|
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eNodeType);
|
|
||||||
|
|
||||||
*aNodeType = (uint16_t)nsIDOMNode::ATTRIBUTE_NODE;
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::GetParentNode(nsIDOMNode** aParentNode)
|
|
||||||
{
|
|
||||||
NS_ENSURE_ARG_POINTER(aParentNode);
|
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eParentNode);
|
|
||||||
|
|
||||||
*aParentNode = nullptr;
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::GetParentElement(nsIDOMElement** aParentElement)
|
|
||||||
{
|
|
||||||
*aParentElement = nullptr;
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::GetChildNodes(nsIDOMNodeList** aChildNodes)
|
|
||||||
{
|
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eChildNodes);
|
|
||||||
|
|
||||||
return nsINode::GetChildNodes(aChildNodes);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::HasChildNodes(bool* aHasChildNodes)
|
|
||||||
{
|
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eHasChildNodes);
|
|
||||||
|
|
||||||
*aHasChildNodes = false;
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::HasAttributes(bool* aHasAttributes)
|
|
||||||
{
|
|
||||||
NS_ENSURE_ARG_POINTER(aHasAttributes);
|
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eHasAttributes);
|
|
||||||
|
|
||||||
*aHasAttributes = false;
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::GetFirstChild(nsIDOMNode** aFirstChild)
|
|
||||||
{
|
|
||||||
*aFirstChild = nullptr;
|
|
||||||
|
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eFirstChild);
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::GetLastChild(nsIDOMNode** aLastChild)
|
|
||||||
{
|
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eLastChild);
|
|
||||||
|
|
||||||
return GetFirstChild(aLastChild);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::GetPreviousSibling(nsIDOMNode** aPreviousSibling)
|
|
||||||
{
|
|
||||||
NS_ENSURE_ARG_POINTER(aPreviousSibling);
|
|
||||||
|
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::ePreviousSibling);
|
|
||||||
|
|
||||||
*aPreviousSibling = nullptr;
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::GetNextSibling(nsIDOMNode** aNextSibling)
|
|
||||||
{
|
|
||||||
NS_ENSURE_ARG_POINTER(aNextSibling);
|
|
||||||
|
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eNextSibling);
|
|
||||||
|
|
||||||
*aNextSibling = nullptr;
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::GetAttributes(nsIDOMNamedNodeMap** aAttributes)
|
|
||||||
{
|
|
||||||
NS_ENSURE_ARG_POINTER(aAttributes);
|
|
||||||
|
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eAttributes);
|
|
||||||
|
|
||||||
*aAttributes = nullptr;
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::InsertBefore(nsIDOMNode* aNewChild, nsIDOMNode* aRefChild, nsIDOMNode** aReturn)
|
|
||||||
{
|
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eInsertBefore);
|
|
||||||
|
|
||||||
return ReplaceOrInsertBefore(false, aNewChild, aRefChild, aReturn);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::ReplaceChild(nsIDOMNode* aNewChild, nsIDOMNode* aOldChild, nsIDOMNode** aReturn)
|
|
||||||
{
|
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eReplaceChild);
|
|
||||||
|
|
||||||
return ReplaceOrInsertBefore(true, aNewChild, aOldChild, aReturn);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::RemoveChild(nsIDOMNode* aOldChild, nsIDOMNode** aReturn)
|
|
||||||
{
|
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eRemoveChild);
|
|
||||||
|
|
||||||
return nsINode::RemoveChild(aOldChild, aReturn);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::AppendChild(nsIDOMNode* aNewChild, nsIDOMNode** aReturn)
|
|
||||||
{
|
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eAppendChild);
|
|
||||||
|
|
||||||
return InsertBefore(aNewChild, nullptr, aReturn);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
nsresult
|
||||||
@ -390,67 +244,6 @@ nsDOMAttribute::Clone(nsINodeInfo *aNodeInfo, nsINode **aResult) const
|
|||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::CloneNode(bool aDeep, uint8_t aOptionalArgc, nsIDOMNode** aResult)
|
|
||||||
{
|
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eCloneNode);
|
|
||||||
|
|
||||||
if (!aOptionalArgc) {
|
|
||||||
aDeep = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return nsNodeUtils::CloneNodeImpl(this, aDeep, true, aResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::GetOwnerDocument(nsIDOMDocument** aOwnerDocument)
|
|
||||||
{
|
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eOwnerDocument);
|
|
||||||
|
|
||||||
return nsINode::GetOwnerDocument(aOwnerDocument);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::GetNamespaceURI(nsAString& aNamespaceURI)
|
|
||||||
{
|
|
||||||
return mNodeInfo->GetNamespaceURI(aNamespaceURI);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::GetPrefix(nsAString& aPrefix)
|
|
||||||
{
|
|
||||||
mNodeInfo->GetPrefix(aPrefix);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::GetLocalName(nsAString& aLocalName)
|
|
||||||
{
|
|
||||||
mNodeInfo->GetName(aLocalName);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::Normalize()
|
|
||||||
{
|
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eNormalize);
|
|
||||||
|
|
||||||
// Nothing to do here
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::IsSupported(const nsAString& aFeature,
|
|
||||||
const nsAString& aVersion,
|
|
||||||
bool* aReturn)
|
|
||||||
{
|
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eIsSupported);
|
|
||||||
|
|
||||||
*aReturn = nsContentUtils::InternalIsSupported(static_cast<nsIDOMAttr*>(this),
|
|
||||||
aFeature, aVersion);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
already_AddRefed<nsIURI>
|
already_AddRefed<nsIURI>
|
||||||
nsDOMAttribute::GetBaseURI() const
|
nsDOMAttribute::GetBaseURI() const
|
||||||
{
|
{
|
||||||
@ -459,85 +252,21 @@ nsDOMAttribute::GetBaseURI() const
|
|||||||
return parent ? parent->GetBaseURI() : nullptr;
|
return parent ? parent->GetBaseURI() : nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
void
|
||||||
nsDOMAttribute::GetDOMBaseURI(nsAString &aURI)
|
nsDOMAttribute::GetTextContentInternal(nsAString& aTextContent)
|
||||||
{
|
|
||||||
return nsINode::GetDOMBaseURI(aURI);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::CompareDocumentPosition(nsIDOMNode *other,
|
|
||||||
uint16_t *aResult)
|
|
||||||
{
|
|
||||||
return nsINode::CompareDocumentPosition(other, aResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::IsEqualNode(nsIDOMNode* aOther, bool* aResult)
|
|
||||||
{
|
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eIsEqualNode);
|
|
||||||
|
|
||||||
return nsINode::IsEqualNode(aOther, aResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::GetTextContent(nsAString &aTextContent)
|
|
||||||
{
|
{
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eTextContent);
|
OwnerDoc()->WarnOnceAbout(nsIDocument::eTextContent);
|
||||||
|
|
||||||
return GetNodeValue(aTextContent);
|
GetValue(aTextContent);
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
void
|
||||||
nsDOMAttribute::SetTextContent(const nsAString& aTextContent)
|
nsDOMAttribute::SetTextContentInternal(const nsAString& aTextContent,
|
||||||
|
ErrorResult& aError)
|
||||||
{
|
{
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eTextContent);
|
OwnerDoc()->WarnOnceAbout(nsIDocument::eTextContent);
|
||||||
|
|
||||||
return SetNodeValue(aTextContent);
|
SetNodeValueInternal(aTextContent, aError);
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::Contains(nsIDOMNode* aOther, bool* aReturn)
|
|
||||||
{
|
|
||||||
return nsINode::Contains(aOther, aReturn);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::LookupPrefix(const nsAString & namespaceURI,
|
|
||||||
nsAString & aResult)
|
|
||||||
{
|
|
||||||
SetDOMStringToNull(aResult);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::IsDefaultNamespace(const nsAString & namespaceURI,
|
|
||||||
bool *aResult)
|
|
||||||
{
|
|
||||||
*aResult = namespaceURI.IsEmpty();
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::LookupNamespaceURI(const nsAString & prefix,
|
|
||||||
nsAString & aResult)
|
|
||||||
{
|
|
||||||
SetDOMStringToNull(aResult);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::SetUserData(const nsAString & key,
|
|
||||||
nsIVariant *data, nsIDOMUserDataHandler *handler,
|
|
||||||
nsIVariant **aResult)
|
|
||||||
{
|
|
||||||
return nsINode::SetUserData(key, data, handler, aResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDOMAttribute::GetUserData(const nsAString & key, nsIVariant **aResult)
|
|
||||||
{
|
|
||||||
return nsINode::GetUserData(key, aResult);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
|
@ -36,7 +36,13 @@ public:
|
|||||||
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
|
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
|
||||||
|
|
||||||
// nsIDOMNode interface
|
// nsIDOMNode interface
|
||||||
NS_DECL_NSIDOMNODE
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
virtual void GetTextContentInternal(nsAString& aTextContent);
|
||||||
|
virtual void SetTextContentInternal(const nsAString& aTextContent,
|
||||||
|
mozilla::ErrorResult& aError);
|
||||||
|
virtual void GetNodeValueInternal(nsAString& aNodeValue);
|
||||||
|
virtual void SetNodeValueInternal(const nsAString& aNodeValue,
|
||||||
|
mozilla::ErrorResult& aError);
|
||||||
|
|
||||||
// nsIDOMAttr interface
|
// nsIDOMAttr interface
|
||||||
NS_DECL_NSIDOMATTR
|
NS_DECL_NSIDOMATTR
|
||||||
|
@ -31,7 +31,7 @@ public:
|
|||||||
}
|
}
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericDOMDataNode::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
};
|
};
|
||||||
|
|
||||||
class nsDOMDocumentType : public nsDOMDocumentTypeForward
|
class nsDOMDocumentType : public nsDOMDocumentTypeForward
|
||||||
@ -53,19 +53,16 @@ public:
|
|||||||
// nsIDOMDocumentType
|
// nsIDOMDocumentType
|
||||||
NS_DECL_NSIDOMDOCUMENTTYPE
|
NS_DECL_NSIDOMDOCUMENTTYPE
|
||||||
|
|
||||||
NS_IMETHODIMP GetNodeValue(nsAString& aNodeValue)
|
|
||||||
{
|
|
||||||
SetDOMStringToNull(aNodeValue);
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
NS_IMETHODIMP SetNodeValue(const nsAString& aNodeValue)
|
|
||||||
{
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
// nsINode
|
// nsINode
|
||||||
virtual bool IsNodeOfType(uint32_t aFlags) const;
|
virtual bool IsNodeOfType(uint32_t aFlags) const;
|
||||||
|
virtual void GetNodeValueInternal(nsAString& aNodeValue)
|
||||||
|
{
|
||||||
|
SetDOMStringToNull(aNodeValue);
|
||||||
|
}
|
||||||
|
virtual void SetNodeValueInternal(const nsAString& aNodeValue,
|
||||||
|
mozilla::ErrorResult& aError)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
// nsIContent overrides
|
// nsIContent overrides
|
||||||
virtual const nsTextFragment* GetText();
|
virtual const nsTextFragment* GetText();
|
||||||
|
@ -485,7 +485,7 @@ nsDOMMutationObserver::GetAllSubtreeObserversFor(nsINode* aNode,
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
n = n->GetNodeParent();
|
n = n->GetParentNode();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -3496,7 +3496,7 @@ nsDocument::IsNodeOfType(uint32_t aFlags) const
|
|||||||
Element*
|
Element*
|
||||||
nsIDocument::GetRootElement() const
|
nsIDocument::GetRootElement() const
|
||||||
{
|
{
|
||||||
return (mCachedRootElement && mCachedRootElement->GetNodeParent() == this) ?
|
return (mCachedRootElement && mCachedRootElement->GetParentNode() == this) ?
|
||||||
mCachedRootElement : GetRootElementInternal();
|
mCachedRootElement : GetRootElementInternal();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -4981,7 +4981,7 @@ nsDocument::ImportNode(nsIDOMNode* aImportedNode,
|
|||||||
case nsIDOMNode::COMMENT_NODE:
|
case nsIDOMNode::COMMENT_NODE:
|
||||||
case nsIDOMNode::DOCUMENT_TYPE_NODE:
|
case nsIDOMNode::DOCUMENT_TYPE_NODE:
|
||||||
{
|
{
|
||||||
nsCOMPtr<nsIDOMNode> newNode;
|
nsCOMPtr<nsINode> newNode;
|
||||||
nsCOMArray<nsINode> nodesWithProperties;
|
nsCOMArray<nsINode> nodesWithProperties;
|
||||||
rv = nsNodeUtils::Clone(imported, aDeep, mNodeInfoManager,
|
rv = nsNodeUtils::Clone(imported, aDeep, mNodeInfoManager,
|
||||||
nodesWithProperties, getter_AddRefs(newNode));
|
nodesWithProperties, getter_AddRefs(newNode));
|
||||||
@ -4993,8 +4993,7 @@ nsDocument::ImportNode(nsIDOMNode* aImportedNode,
|
|||||||
true);
|
true);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
newNode.swap(*aResult);
|
*aResult = newNode.forget().get()->AsDOMNode();
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
@ -5796,267 +5795,6 @@ nsDocument::SetDir(const nsAString& aDirection)
|
|||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
//
|
|
||||||
// nsIDOMNode methods
|
|
||||||
//
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::GetNodeName(nsAString& aNodeName)
|
|
||||||
{
|
|
||||||
aNodeName.AssignLiteral("#document");
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::GetNodeValue(nsAString& aNodeValue)
|
|
||||||
{
|
|
||||||
SetDOMStringToNull(aNodeValue);
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::SetNodeValue(const nsAString& aNodeValue)
|
|
||||||
{
|
|
||||||
// The DOM spec says that when nodeValue is defined to be null "setting it
|
|
||||||
// has no effect", so we don't throw an exception.
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::GetNodeType(uint16_t* aNodeType)
|
|
||||||
{
|
|
||||||
*aNodeType = nsIDOMNode::DOCUMENT_NODE;
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::GetParentNode(nsIDOMNode** aParentNode)
|
|
||||||
{
|
|
||||||
*aParentNode = nullptr;
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::GetParentElement(nsIDOMElement** aParentElement)
|
|
||||||
{
|
|
||||||
*aParentElement = nullptr;
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::GetChildNodes(nsIDOMNodeList** aChildNodes)
|
|
||||||
{
|
|
||||||
return nsINode::GetChildNodes(aChildNodes);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::HasChildNodes(bool* aHasChildNodes)
|
|
||||||
{
|
|
||||||
NS_ENSURE_ARG(aHasChildNodes);
|
|
||||||
|
|
||||||
*aHasChildNodes = (mChildren.ChildCount() != 0);
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::HasAttributes(bool* aHasAttributes)
|
|
||||||
{
|
|
||||||
NS_ENSURE_ARG(aHasAttributes);
|
|
||||||
|
|
||||||
*aHasAttributes = false;
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::GetFirstChild(nsIDOMNode** aFirstChild)
|
|
||||||
{
|
|
||||||
return nsINode::GetFirstChild(aFirstChild);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::GetLastChild(nsIDOMNode** aLastChild)
|
|
||||||
{
|
|
||||||
return nsINode::GetLastChild(aLastChild);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::GetPreviousSibling(nsIDOMNode** aPreviousSibling)
|
|
||||||
{
|
|
||||||
*aPreviousSibling = nullptr;
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::GetNextSibling(nsIDOMNode** aNextSibling)
|
|
||||||
{
|
|
||||||
*aNextSibling = nullptr;
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::GetAttributes(nsIDOMNamedNodeMap** aAttributes)
|
|
||||||
{
|
|
||||||
*aAttributes = nullptr;
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::GetNamespaceURI(nsAString& aNamespaceURI)
|
|
||||||
{
|
|
||||||
SetDOMStringToNull(aNamespaceURI);
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::GetPrefix(nsAString& aPrefix)
|
|
||||||
{
|
|
||||||
SetDOMStringToNull(aPrefix);
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::GetLocalName(nsAString& aLocalName)
|
|
||||||
{
|
|
||||||
SetDOMStringToNull(aLocalName);
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::InsertBefore(nsIDOMNode* aNewChild, nsIDOMNode* aRefChild,
|
|
||||||
nsIDOMNode** aReturn)
|
|
||||||
{
|
|
||||||
return ReplaceOrInsertBefore(false, aNewChild, aRefChild, aReturn);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::ReplaceChild(nsIDOMNode* aNewChild, nsIDOMNode* aOldChild,
|
|
||||||
nsIDOMNode** aReturn)
|
|
||||||
{
|
|
||||||
return ReplaceOrInsertBefore(true, aNewChild, aOldChild, aReturn);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::RemoveChild(nsIDOMNode* aOldChild, nsIDOMNode** aReturn)
|
|
||||||
{
|
|
||||||
return nsINode::RemoveChild(aOldChild, aReturn);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::AppendChild(nsIDOMNode* aNewChild, nsIDOMNode** aReturn)
|
|
||||||
{
|
|
||||||
return nsDocument::InsertBefore(aNewChild, nullptr, aReturn);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::CloneNode(bool aDeep, uint8_t aOptionalArgc, nsIDOMNode** aReturn)
|
|
||||||
{
|
|
||||||
if (!aOptionalArgc) {
|
|
||||||
aDeep = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return nsNodeUtils::CloneNodeImpl(this, aDeep, !mCreatingStaticClone, aReturn);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::Normalize()
|
|
||||||
{
|
|
||||||
return nsIDocument::Normalize();
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::IsSupported(const nsAString& aFeature, const nsAString& aVersion,
|
|
||||||
bool* aReturn)
|
|
||||||
{
|
|
||||||
*aReturn = nsContentUtils::InternalIsSupported(static_cast<nsIDOMDocument*>(this),
|
|
||||||
aFeature, aVersion);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::GetDOMBaseURI(nsAString &aURI)
|
|
||||||
{
|
|
||||||
return nsIDocument::GetDOMBaseURI(aURI);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::GetTextContent(nsAString &aTextContent)
|
|
||||||
{
|
|
||||||
SetDOMStringToNull(aTextContent);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::IsEqualNode(nsIDOMNode* aOther, bool* aResult)
|
|
||||||
{
|
|
||||||
return nsINode::IsEqualNode(aOther, aResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::CompareDocumentPosition(nsIDOMNode *other,
|
|
||||||
uint16_t *aResult)
|
|
||||||
{
|
|
||||||
return nsINode::CompareDocumentPosition(other, aResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::SetTextContent(const nsAString & aTextContent)
|
|
||||||
{
|
|
||||||
return nsINode::SetTextContent(aTextContent);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::LookupPrefix(const nsAString & namespaceURI, nsAString & aResult)
|
|
||||||
{
|
|
||||||
return nsINode::LookupPrefix(namespaceURI, aResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::IsDefaultNamespace(const nsAString & namespaceURI,
|
|
||||||
bool *aResult)
|
|
||||||
{
|
|
||||||
return nsINode::IsDefaultNamespace(namespaceURI, aResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::LookupNamespaceURI(const nsAString & prefix,
|
|
||||||
nsAString & aResult)
|
|
||||||
{
|
|
||||||
return nsINode::LookupNamespaceURI(prefix, aResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::SetUserData(const nsAString & key,
|
|
||||||
nsIVariant *data, nsIDOMUserDataHandler *handler,
|
|
||||||
nsIVariant **aResult)
|
|
||||||
{
|
|
||||||
return nsINode::SetUserData(key, data, handler, aResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::GetUserData(const nsAString & key,
|
|
||||||
nsIVariant **aResult)
|
|
||||||
{
|
|
||||||
return nsINode::GetUserData(key, aResult);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::Contains(nsIDOMNode* aOther, bool* aReturn)
|
|
||||||
{
|
|
||||||
return nsINode::Contains(aOther, aReturn);
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsDocument::GetInputEncoding(nsAString& aInputEncoding)
|
nsDocument::GetInputEncoding(nsAString& aInputEncoding)
|
||||||
{
|
{
|
||||||
@ -6274,7 +6012,7 @@ nsDocument::AdoptNode(nsIDOMNode *aAdoptedNode, nsIDOMNode **aResult)
|
|||||||
// Scope firing mutation events so that we don't carry any state that
|
// Scope firing mutation events so that we don't carry any state that
|
||||||
// might be stale
|
// might be stale
|
||||||
{
|
{
|
||||||
nsINode* parent = adoptedNode->GetNodeParent();
|
nsINode* parent = adoptedNode->GetParentNode();
|
||||||
if (parent) {
|
if (parent) {
|
||||||
nsContentUtils::MaybeFireNodeRemoved(adoptedNode, parent,
|
nsContentUtils::MaybeFireNodeRemoved(adoptedNode, parent,
|
||||||
adoptedNode->OwnerDoc());
|
adoptedNode->OwnerDoc());
|
||||||
@ -6331,7 +6069,7 @@ nsDocument::AdoptNode(nsIDOMNode *aAdoptedNode, nsIDOMNode **aResult)
|
|||||||
} while ((doc = doc->GetParentDocument()));
|
} while ((doc = doc->GetParentDocument()));
|
||||||
|
|
||||||
// Remove from parent.
|
// Remove from parent.
|
||||||
nsCOMPtr<nsINode> parent = adoptedNode->GetNodeParent();
|
nsCOMPtr<nsINode> parent = adoptedNode->GetParentNode();
|
||||||
if (parent) {
|
if (parent) {
|
||||||
parent->RemoveChildAt(parent->IndexOf(adoptedNode), true);
|
parent->RemoveChildAt(parent->IndexOf(adoptedNode), true);
|
||||||
}
|
}
|
||||||
@ -6417,12 +6155,6 @@ nsDocument::AdoptNode(nsIDOMNode *aAdoptedNode, nsIDOMNode **aResult)
|
|||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMETHODIMP
|
|
||||||
nsDocument::GetOwnerDocument(nsIDOMDocument** aOwnerDocument)
|
|
||||||
{
|
|
||||||
return nsINode::GetOwnerDocument(aOwnerDocument);
|
|
||||||
}
|
|
||||||
|
|
||||||
nsEventListenerManager*
|
nsEventListenerManager*
|
||||||
nsDocument::GetListenerManager(bool aCreateIfNotFound)
|
nsDocument::GetListenerManager(bool aCreateIfNotFound)
|
||||||
{
|
{
|
||||||
|
@ -735,7 +735,7 @@ private:
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_DECL_NSIDOMNODE
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE_OVERRIDABLE
|
||||||
|
|
||||||
// nsIDOMDocument
|
// nsIDOMDocument
|
||||||
NS_DECL_NSIDOMDOCUMENT
|
NS_DECL_NSIDOMDOCUMENT
|
||||||
|
@ -535,7 +535,7 @@ nsDocumentEncoder::SerializeToStringIterative(nsINode* aNode,
|
|||||||
node = current->GetNextSibling();
|
node = current->GetNextSibling();
|
||||||
if (!node) {
|
if (!node) {
|
||||||
// Perhaps parent node has siblings.
|
// Perhaps parent node has siblings.
|
||||||
current = current->GetNodeParent();
|
current = current->GetParentNode();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1091,7 +1091,7 @@ nsDocumentEncoder::EncodeToString(nsAString& aOutputString)
|
|||||||
if (!prevNode) {
|
if (!prevNode) {
|
||||||
// Went from a non-<tr> to a <tr>
|
// Went from a non-<tr> to a <tr>
|
||||||
mCommonAncestors.Clear();
|
mCommonAncestors.Clear();
|
||||||
nsContentUtils::GetAncestors(n->GetNodeParent(), mCommonAncestors);
|
nsContentUtils::GetAncestors(n->GetParentNode(), mCommonAncestors);
|
||||||
rv = SerializeRangeContextStart(mCommonAncestors, output);
|
rv = SerializeRangeContextStart(mCommonAncestors, output);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
// Don't let SerializeRangeToString serialize the context again
|
// Don't let SerializeRangeToString serialize the context again
|
||||||
@ -1104,7 +1104,7 @@ nsDocumentEncoder::EncodeToString(nsAString& aOutputString)
|
|||||||
} else if (prevNode) {
|
} else if (prevNode) {
|
||||||
// Went from a <tr> to a non-<tr>
|
// Went from a <tr> to a non-<tr>
|
||||||
mCommonAncestors.Clear();
|
mCommonAncestors.Clear();
|
||||||
nsContentUtils::GetAncestors(p->GetNodeParent(), mCommonAncestors);
|
nsContentUtils::GetAncestors(p->GetParentNode(), mCommonAncestors);
|
||||||
mDisableContextSerialize = false;
|
mDisableContextSerialize = false;
|
||||||
rv = SerializeRangeContextEnd(mCommonAncestors, output);
|
rv = SerializeRangeContextEnd(mCommonAncestors, output);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
@ -1122,7 +1122,7 @@ nsDocumentEncoder::EncodeToString(nsAString& aOutputString)
|
|||||||
rv = SerializeNodeEnd(p, output);
|
rv = SerializeNodeEnd(p, output);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
mCommonAncestors.Clear();
|
mCommonAncestors.Clear();
|
||||||
nsContentUtils::GetAncestors(p->GetNodeParent(), mCommonAncestors);
|
nsContentUtils::GetAncestors(p->GetParentNode(), mCommonAncestors);
|
||||||
mDisableContextSerialize = false;
|
mDisableContextSerialize = false;
|
||||||
rv = SerializeRangeContextEnd(mCommonAncestors, output);
|
rv = SerializeRangeContextEnd(mCommonAncestors, output);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
@ -31,7 +31,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// interface nsIDOMNode
|
// interface nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(FragmentOrElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// interface nsIDOMDocumentFragment
|
// interface nsIDOMDocumentFragment
|
||||||
// NS_DECL_NSIDOCUMENTFRAGMENT Empty
|
// NS_DECL_NSIDOCUMENTFRAGMENT Empty
|
||||||
|
@ -114,43 +114,19 @@ NS_IMPL_CYCLE_COLLECTING_RELEASE_WITH_DESTROY(nsGenericDOMDataNode,
|
|||||||
nsNodeUtils::LastRelease(this))
|
nsNodeUtils::LastRelease(this))
|
||||||
|
|
||||||
|
|
||||||
nsresult
|
void
|
||||||
nsGenericDOMDataNode::GetNodeValue(nsAString& aNodeValue)
|
nsGenericDOMDataNode::GetNodeValueInternal(nsAString& aNodeValue)
|
||||||
{
|
{
|
||||||
return GetData(aNodeValue);
|
DebugOnly<nsresult> rv = GetData(aNodeValue);
|
||||||
|
NS_ASSERTION(NS_SUCCEEDED(rv), "GetData() failed!");
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
void
|
||||||
nsGenericDOMDataNode::SetNodeValue(const nsAString& aNodeValue)
|
nsGenericDOMDataNode::SetNodeValueInternal(const nsAString& aNodeValue,
|
||||||
|
ErrorResult& aError)
|
||||||
{
|
{
|
||||||
return SetTextInternal(0, mText.GetLength(), aNodeValue.BeginReading(),
|
aError = SetTextInternal(0, mText.GetLength(), aNodeValue.BeginReading(),
|
||||||
aNodeValue.Length(), true);
|
aNodeValue.Length(), true);
|
||||||
}
|
|
||||||
|
|
||||||
nsresult
|
|
||||||
nsGenericDOMDataNode::GetNamespaceURI(nsAString& aNamespaceURI)
|
|
||||||
{
|
|
||||||
SetDOMStringToNull(aNamespaceURI);
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
nsresult
|
|
||||||
nsGenericDOMDataNode::GetPrefix(nsAString& aPrefix)
|
|
||||||
{
|
|
||||||
SetDOMStringToNull(aPrefix);
|
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
nsresult
|
|
||||||
nsGenericDOMDataNode::IsSupported(const nsAString& aFeature,
|
|
||||||
const nsAString& aVersion,
|
|
||||||
bool* aReturn)
|
|
||||||
{
|
|
||||||
*aReturn = nsContentUtils::InternalIsSupported(static_cast<nsIContent*>(this),
|
|
||||||
aFeature, aVersion);
|
|
||||||
return NS_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//----------------------------------------------------------------------
|
//----------------------------------------------------------------------
|
||||||
@ -746,7 +722,7 @@ nsGenericDOMDataNode::SplitData(uint32_t aOffset, nsIContent** aReturn,
|
|||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsCOMPtr<nsINode> parent = GetNodeParent();
|
nsCOMPtr<nsINode> parent = GetParentNode();
|
||||||
if (parent) {
|
if (parent) {
|
||||||
int32_t insertionIndex = parent->IndexOf(this);
|
int32_t insertionIndex = parent->IndexOf(this);
|
||||||
if (aCloneAfterOriginal) {
|
if (aCloneAfterOriginal) {
|
||||||
|
@ -58,73 +58,9 @@ public:
|
|||||||
nsGenericDOMDataNode(already_AddRefed<nsINodeInfo> aNodeInfo);
|
nsGenericDOMDataNode(already_AddRefed<nsINodeInfo> aNodeInfo);
|
||||||
virtual ~nsGenericDOMDataNode();
|
virtual ~nsGenericDOMDataNode();
|
||||||
|
|
||||||
// Implementation for nsIDOMNode
|
virtual void GetNodeValueInternal(nsAString& aNodeValue);
|
||||||
nsresult GetNodeName(nsAString& aNodeName)
|
virtual void SetNodeValueInternal(const nsAString& aNodeValue,
|
||||||
{
|
mozilla::ErrorResult& aError);
|
||||||
aNodeName = NodeName();
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
nsresult GetNodeType(uint16_t* aNodeType)
|
|
||||||
{
|
|
||||||
*aNodeType = NodeType();
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
nsresult GetNodeValue(nsAString& aNodeValue);
|
|
||||||
nsresult SetNodeValue(const nsAString& aNodeValue);
|
|
||||||
nsresult GetAttributes(nsIDOMNamedNodeMap** aAttributes)
|
|
||||||
{
|
|
||||||
NS_ENSURE_ARG_POINTER(aAttributes);
|
|
||||||
*aAttributes = nullptr;
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
nsresult HasChildNodes(bool* aHasChildNodes)
|
|
||||||
{
|
|
||||||
NS_ENSURE_ARG_POINTER(aHasChildNodes);
|
|
||||||
*aHasChildNodes = false;
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
nsresult HasAttributes(bool* aHasAttributes)
|
|
||||||
{
|
|
||||||
NS_ENSURE_ARG_POINTER(aHasAttributes);
|
|
||||||
*aHasAttributes = false;
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
nsresult InsertBefore(nsIDOMNode* aNewChild, nsIDOMNode* aRefChild,
|
|
||||||
nsIDOMNode** aReturn)
|
|
||||||
{
|
|
||||||
return ReplaceOrInsertBefore(false, aNewChild, aRefChild, aReturn);
|
|
||||||
}
|
|
||||||
nsresult ReplaceChild(nsIDOMNode* aNewChild, nsIDOMNode* aOldChild,
|
|
||||||
nsIDOMNode** aReturn)
|
|
||||||
{
|
|
||||||
return ReplaceOrInsertBefore(true, aNewChild, aOldChild, aReturn);
|
|
||||||
}
|
|
||||||
nsresult RemoveChild(nsIDOMNode* aOldChild, nsIDOMNode** aReturn)
|
|
||||||
{
|
|
||||||
return nsINode::RemoveChild(aOldChild, aReturn);
|
|
||||||
}
|
|
||||||
nsresult AppendChild(nsIDOMNode* aNewChild, nsIDOMNode** aReturn)
|
|
||||||
{
|
|
||||||
return InsertBefore(aNewChild, nullptr, aReturn);
|
|
||||||
}
|
|
||||||
nsresult GetNamespaceURI(nsAString& aNamespaceURI);
|
|
||||||
nsresult GetLocalName(nsAString& aLocalName)
|
|
||||||
{
|
|
||||||
aLocalName = LocalName();
|
|
||||||
return NS_OK;
|
|
||||||
}
|
|
||||||
nsresult GetPrefix(nsAString& aPrefix);
|
|
||||||
nsresult IsSupported(const nsAString& aFeature,
|
|
||||||
const nsAString& aVersion,
|
|
||||||
bool* aReturn);
|
|
||||||
nsresult CloneNode(bool aDeep, uint8_t aOptionalArgc, nsIDOMNode** aReturn)
|
|
||||||
{
|
|
||||||
if (!aOptionalArgc) {
|
|
||||||
aDeep = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
return nsNodeUtils::CloneNodeImpl(this, aDeep, true, aReturn);
|
|
||||||
}
|
|
||||||
|
|
||||||
// Implementation for nsIDOMCharacterData
|
// Implementation for nsIDOMCharacterData
|
||||||
nsresult GetData(nsAString& aData) const;
|
nsresult GetData(nsAString& aData) const;
|
||||||
@ -142,21 +78,20 @@ public:
|
|||||||
virtual uint32_t GetChildCount() const;
|
virtual uint32_t GetChildCount() const;
|
||||||
virtual nsIContent *GetChildAt(uint32_t aIndex) const;
|
virtual nsIContent *GetChildAt(uint32_t aIndex) const;
|
||||||
virtual nsIContent * const * GetChildArray(uint32_t* aChildCount) const;
|
virtual nsIContent * const * GetChildArray(uint32_t* aChildCount) const;
|
||||||
virtual int32_t IndexOf(const nsINode* aPossibleChild) const MOZ_OVERRIDE;
|
virtual int32_t IndexOf(const nsINode* aPossibleChild) const;
|
||||||
virtual nsresult InsertChildAt(nsIContent* aKid, uint32_t aIndex,
|
virtual nsresult InsertChildAt(nsIContent* aKid, uint32_t aIndex,
|
||||||
bool aNotify);
|
bool aNotify);
|
||||||
virtual void RemoveChildAt(uint32_t aIndex, bool aNotify);
|
virtual void RemoveChildAt(uint32_t aIndex, bool aNotify);
|
||||||
NS_IMETHOD GetTextContent(nsAString &aTextContent)
|
virtual void GetTextContentInternal(nsAString& aTextContent)
|
||||||
{
|
{
|
||||||
nsresult rv = GetNodeValue(aTextContent);
|
GetNodeValue(aTextContent);
|
||||||
NS_ASSERTION(NS_SUCCEEDED(rv), "GetNodeValue() failed?");
|
|
||||||
return rv;
|
|
||||||
}
|
}
|
||||||
NS_IMETHOD SetTextContent(const nsAString& aTextContent)
|
virtual void SetTextContentInternal(const nsAString& aTextContent,
|
||||||
|
mozilla::ErrorResult& aError)
|
||||||
{
|
{
|
||||||
// Batch possible DOMSubtreeModified events.
|
// Batch possible DOMSubtreeModified events.
|
||||||
mozAutoSubtreeModified subtree(OwnerDoc(), nullptr);
|
mozAutoSubtreeModified subtree(OwnerDoc(), nullptr);
|
||||||
return SetNodeValue(aTextContent);
|
return SetNodeValue(aTextContent, aError);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Implementation for nsIContent
|
// Implementation for nsIContent
|
||||||
@ -244,7 +179,7 @@ public:
|
|||||||
protected:
|
protected:
|
||||||
virtual mozilla::dom::Element* GetNameSpaceElement()
|
virtual mozilla::dom::Element* GetNameSpaceElement()
|
||||||
{
|
{
|
||||||
nsINode *parent = GetNodeParent();
|
nsINode *parent = GetParentNode();
|
||||||
|
|
||||||
return parent && parent->IsElement() ? parent->AsElement() : nullptr;
|
return parent && parent->IsElement() ? parent->AsElement() : nullptr;
|
||||||
}
|
}
|
||||||
|
@ -934,12 +934,11 @@ nsGenericElement::GetAttributeNode(const nsAString& aName,
|
|||||||
document->WarnOnceAbout(nsIDocument::eGetAttributeNode);
|
document->WarnOnceAbout(nsIDocument::eGetAttributeNode);
|
||||||
}
|
}
|
||||||
|
|
||||||
nsCOMPtr<nsIDOMNamedNodeMap> map;
|
nsDOMAttributeMap* map = GetAttributes();
|
||||||
nsresult rv = GetAttributes(getter_AddRefs(map));
|
NS_ENSURE_TRUE(map, NS_ERROR_FAILURE);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
|
||||||
|
|
||||||
nsCOMPtr<nsIDOMNode> node;
|
nsCOMPtr<nsIDOMNode> node;
|
||||||
rv = map->GetNamedItem(aName, getter_AddRefs(node));
|
nsresult rv = map->GetNamedItem(aName, getter_AddRefs(node));
|
||||||
|
|
||||||
if (NS_SUCCEEDED(rv) && node) {
|
if (NS_SUCCEEDED(rv) && node) {
|
||||||
rv = CallQueryInterface(node, aReturn);
|
rv = CallQueryInterface(node, aReturn);
|
||||||
@ -959,12 +958,11 @@ nsGenericElement::SetAttributeNode(nsIDOMAttr* aAttribute,
|
|||||||
|
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eSetAttributeNode);
|
OwnerDoc()->WarnOnceAbout(nsIDocument::eSetAttributeNode);
|
||||||
|
|
||||||
nsCOMPtr<nsIDOMNamedNodeMap> map;
|
nsDOMAttributeMap* map = GetAttributes();
|
||||||
nsresult rv = GetAttributes(getter_AddRefs(map));
|
NS_ENSURE_TRUE(map, NS_ERROR_FAILURE);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
|
||||||
|
|
||||||
nsCOMPtr<nsIDOMNode> returnNode;
|
nsCOMPtr<nsIDOMNode> returnNode;
|
||||||
rv = map->SetNamedItem(aAttribute, getter_AddRefs(returnNode));
|
nsresult rv = map->SetNamedItem(aAttribute, getter_AddRefs(returnNode));
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
if (returnNode) {
|
if (returnNode) {
|
||||||
@ -985,13 +983,12 @@ nsGenericElement::RemoveAttributeNode(nsIDOMAttr* aAttribute,
|
|||||||
|
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eRemoveAttributeNode);
|
OwnerDoc()->WarnOnceAbout(nsIDocument::eRemoveAttributeNode);
|
||||||
|
|
||||||
nsCOMPtr<nsIDOMNamedNodeMap> map;
|
nsDOMAttributeMap* map = GetAttributes();
|
||||||
nsresult rv = GetAttributes(getter_AddRefs(map));
|
NS_ENSURE_TRUE(map, NS_ERROR_FAILURE);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
|
||||||
|
|
||||||
nsAutoString name;
|
nsAutoString name;
|
||||||
|
|
||||||
rv = aAttribute->GetName(name);
|
nsresult rv = aAttribute->GetName(name);
|
||||||
if (NS_SUCCEEDED(rv)) {
|
if (NS_SUCCEEDED(rv)) {
|
||||||
nsCOMPtr<nsIDOMNode> node;
|
nsCOMPtr<nsIDOMNode> node;
|
||||||
rv = map->RemoveNamedItem(name, getter_AddRefs(node));
|
rv = map->RemoveNamedItem(name, getter_AddRefs(node));
|
||||||
@ -1094,12 +1091,12 @@ nsGenericElement::GetAttributeNodeNSInternal(const nsAString& aNamespaceURI,
|
|||||||
const nsAString& aLocalName,
|
const nsAString& aLocalName,
|
||||||
nsIDOMAttr** aReturn)
|
nsIDOMAttr** aReturn)
|
||||||
{
|
{
|
||||||
nsCOMPtr<nsIDOMNamedNodeMap> map;
|
nsDOMAttributeMap* map = GetAttributes();
|
||||||
nsresult rv = GetAttributes(getter_AddRefs(map));
|
NS_ENSURE_TRUE(map, NS_ERROR_FAILURE);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
|
||||||
|
|
||||||
nsCOMPtr<nsIDOMNode> node;
|
nsCOMPtr<nsIDOMNode> node;
|
||||||
rv = map->GetNamedItemNS(aNamespaceURI, aLocalName, getter_AddRefs(node));
|
nsresult rv = map->GetNamedItemNS(aNamespaceURI, aLocalName,
|
||||||
|
getter_AddRefs(node));
|
||||||
|
|
||||||
if (NS_SUCCEEDED(rv) && node) {
|
if (NS_SUCCEEDED(rv) && node) {
|
||||||
rv = CallQueryInterface(node, aReturn);
|
rv = CallQueryInterface(node, aReturn);
|
||||||
@ -1118,12 +1115,11 @@ nsGenericElement::SetAttributeNodeNS(nsIDOMAttr* aNewAttr,
|
|||||||
|
|
||||||
OwnerDoc()->WarnOnceAbout(nsIDocument::eSetAttributeNodeNS);
|
OwnerDoc()->WarnOnceAbout(nsIDocument::eSetAttributeNodeNS);
|
||||||
|
|
||||||
nsCOMPtr<nsIDOMNamedNodeMap> map;
|
nsDOMAttributeMap* map = GetAttributes();
|
||||||
nsresult rv = GetAttributes(getter_AddRefs(map));
|
NS_ENSURE_TRUE(map, NS_ERROR_FAILURE);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
|
||||||
|
|
||||||
nsCOMPtr<nsIDOMNode> returnNode;
|
nsCOMPtr<nsIDOMNode> returnNode;
|
||||||
rv = map->SetNamedItemNS(aNewAttr, getter_AddRefs(returnNode));
|
nsresult rv = map->SetNamedItemNS(aNewAttr, getter_AddRefs(returnNode));
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
|
|
||||||
if (returnNode) {
|
if (returnNode) {
|
||||||
|
@ -201,6 +201,15 @@ private:
|
|||||||
public:
|
public:
|
||||||
// nsIDOMElement method implementation
|
// nsIDOMElement method implementation
|
||||||
NS_DECL_NSIDOMELEMENT
|
NS_DECL_NSIDOMELEMENT
|
||||||
|
nsDOMAttributeMap* GetAttributes()
|
||||||
|
{
|
||||||
|
nsDOMSlots *slots = DOMSlots();
|
||||||
|
if (!slots->mAttributeMap) {
|
||||||
|
slots->mAttributeMap = new nsDOMAttributeMap(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
return slots->mAttributeMap;
|
||||||
|
}
|
||||||
|
|
||||||
//----------------------------------------
|
//----------------------------------------
|
||||||
|
|
||||||
|
@ -99,6 +99,7 @@
|
|||||||
#include "xpcpublic.h"
|
#include "xpcpublic.h"
|
||||||
#include "nsCSSRuleProcessor.h"
|
#include "nsCSSRuleProcessor.h"
|
||||||
#include "nsCSSParser.h"
|
#include "nsCSSParser.h"
|
||||||
|
#include "nsHTMLLegendElement.h"
|
||||||
#include "nsWrapperCacheInlines.h"
|
#include "nsWrapperCacheInlines.h"
|
||||||
|
|
||||||
using namespace mozilla;
|
using namespace mozilla;
|
||||||
@ -214,7 +215,7 @@ nsINode::GetTextEditorRootContent(nsIEditor** aEditor)
|
|||||||
{
|
{
|
||||||
if (aEditor)
|
if (aEditor)
|
||||||
*aEditor = nullptr;
|
*aEditor = nullptr;
|
||||||
for (nsINode* node = this; node; node = node->GetNodeParent()) {
|
for (nsINode* node = this; node; node = node->GetParentNode()) {
|
||||||
if (!node->IsElement() ||
|
if (!node->IsElement() ||
|
||||||
!node->AsElement()->IsHTML())
|
!node->AsElement()->IsHTML())
|
||||||
continue;
|
continue;
|
||||||
@ -309,7 +310,7 @@ nsINode::GetSelectionRootContent(nsIPresShell* aPresShell)
|
|||||||
}
|
}
|
||||||
|
|
||||||
nsINodeList*
|
nsINodeList*
|
||||||
nsINode::GetChildNodesList()
|
nsINode::ChildNodes()
|
||||||
{
|
{
|
||||||
nsSlots* slots = Slots();
|
nsSlots* slots = Slots();
|
||||||
if (!slots->mChildNodes) {
|
if (!slots->mChildNodes) {
|
||||||
@ -344,7 +345,7 @@ nsINode::GetParentNode(nsIDOMNode** aParentNode)
|
|||||||
{
|
{
|
||||||
*aParentNode = nullptr;
|
*aParentNode = nullptr;
|
||||||
|
|
||||||
nsINode *parent = GetNodeParent();
|
nsINode *parent = GetParentNode();
|
||||||
|
|
||||||
return parent ? CallQueryInterface(parent, aParentNode) : NS_OK;
|
return parent ? CallQueryInterface(parent, aParentNode) : NS_OK;
|
||||||
}
|
}
|
||||||
@ -360,12 +361,7 @@ nsINode::GetParentElement(nsIDOMElement** aParentElement)
|
|||||||
nsresult
|
nsresult
|
||||||
nsINode::GetChildNodes(nsIDOMNodeList** aChildNodes)
|
nsINode::GetChildNodes(nsIDOMNodeList** aChildNodes)
|
||||||
{
|
{
|
||||||
*aChildNodes = GetChildNodesList();
|
NS_ADDREF(*aChildNodes = ChildNodes());
|
||||||
if (!*aChildNodes) {
|
|
||||||
return NS_ERROR_OUT_OF_MEMORY;
|
|
||||||
}
|
|
||||||
|
|
||||||
NS_ADDREF(*aChildNodes);
|
|
||||||
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
@ -426,65 +422,47 @@ nsINode::GetOwnerDocument(nsIDOMDocument** aOwnerDocument)
|
|||||||
return ownerDoc ? CallQueryInterface(ownerDoc, aOwnerDocument) : NS_OK;
|
return ownerDoc ? CallQueryInterface(ownerDoc, aOwnerDocument) : NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
nsINode*
|
||||||
nsINode::RemoveChild(nsINode *aOldChild)
|
nsINode::RemoveChild(nsINode& aOldChild, ErrorResult& aError)
|
||||||
{
|
{
|
||||||
if (!aOldChild) {
|
|
||||||
return NS_ERROR_NULL_POINTER;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (IsNodeOfType(eDATA_NODE)) {
|
if (IsNodeOfType(eDATA_NODE)) {
|
||||||
// aOldChild can't be one of our children.
|
// aOldChild can't be one of our children.
|
||||||
return NS_ERROR_DOM_NOT_FOUND_ERR;
|
aError.Throw(NS_ERROR_DOM_NOT_FOUND_ERR);
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (aOldChild->GetNodeParent() == this) {
|
if (aOldChild.GetParentNode() == this) {
|
||||||
nsContentUtils::MaybeFireNodeRemoved(aOldChild, this, OwnerDoc());
|
nsContentUtils::MaybeFireNodeRemoved(&aOldChild, this, OwnerDoc());
|
||||||
}
|
}
|
||||||
|
|
||||||
int32_t index = IndexOf(aOldChild);
|
int32_t index = IndexOf(&aOldChild);
|
||||||
if (index == -1) {
|
if (index == -1) {
|
||||||
// aOldChild isn't one of our children.
|
// aOldChild isn't one of our children.
|
||||||
return NS_ERROR_DOM_NOT_FOUND_ERR;
|
aError.Throw(NS_ERROR_DOM_NOT_FOUND_ERR);
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
RemoveChildAt(index, true);
|
RemoveChildAt(index, true);
|
||||||
return NS_OK;
|
return &aOldChild;
|
||||||
}
|
|
||||||
|
|
||||||
nsresult
|
|
||||||
nsINode::ReplaceOrInsertBefore(bool aReplace, nsIDOMNode* aNewChild,
|
|
||||||
nsIDOMNode* aRefChild, nsIDOMNode** aReturn)
|
|
||||||
{
|
|
||||||
nsCOMPtr<nsINode> newChild = do_QueryInterface(aNewChild);
|
|
||||||
|
|
||||||
nsresult rv;
|
|
||||||
nsCOMPtr<nsINode> refChild;
|
|
||||||
if (aRefChild) {
|
|
||||||
refChild = do_QueryInterface(aRefChild, &rv);
|
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
|
||||||
}
|
|
||||||
|
|
||||||
rv = ReplaceOrInsertBefore(aReplace, newChild, refChild);
|
|
||||||
if (NS_SUCCEEDED(rv)) {
|
|
||||||
NS_ADDREF(*aReturn = aReplace ? aRefChild : aNewChild);
|
|
||||||
}
|
|
||||||
|
|
||||||
return rv;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
nsresult
|
||||||
nsINode::RemoveChild(nsIDOMNode* aOldChild, nsIDOMNode** aReturn)
|
nsINode::RemoveChild(nsIDOMNode* aOldChild, nsIDOMNode** aReturn)
|
||||||
{
|
{
|
||||||
nsCOMPtr<nsIContent> oldChild = do_QueryInterface(aOldChild);
|
nsCOMPtr<nsINode> oldChild = do_QueryInterface(aOldChild);
|
||||||
nsresult rv = RemoveChild(oldChild);
|
if (!oldChild) {
|
||||||
if (NS_SUCCEEDED(rv)) {
|
return NS_ERROR_NULL_POINTER;
|
||||||
|
}
|
||||||
|
|
||||||
|
ErrorResult rv;
|
||||||
|
RemoveChild(*oldChild, rv);
|
||||||
|
if (!rv.Failed()) {
|
||||||
NS_ADDREF(*aReturn = aOldChild);
|
NS_ADDREF(*aReturn = aOldChild);
|
||||||
}
|
}
|
||||||
return rv;
|
return rv.ErrorCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
void
|
||||||
nsINode::Normalize()
|
nsINode::Normalize()
|
||||||
{
|
{
|
||||||
// First collect list of nodes to be removed
|
// First collect list of nodes to be removed
|
||||||
@ -514,7 +492,7 @@ nsINode::Normalize()
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (nodes.IsEmpty()) {
|
if (nodes.IsEmpty()) {
|
||||||
return NS_OK;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// We're relying on mozAutoSubtreeModified to keep the doc alive here.
|
// We're relying on mozAutoSubtreeModified to keep the doc alive here.
|
||||||
@ -529,7 +507,7 @@ nsINode::Normalize()
|
|||||||
HasMutationListeners(doc, NS_EVENT_BITS_MUTATION_NODEREMOVED);
|
HasMutationListeners(doc, NS_EVENT_BITS_MUTATION_NODEREMOVED);
|
||||||
if (hasRemoveListeners) {
|
if (hasRemoveListeners) {
|
||||||
for (uint32_t i = 0; i < nodes.Length(); ++i) {
|
for (uint32_t i = 0; i < nodes.Length(); ++i) {
|
||||||
nsContentUtils::MaybeFireNodeRemoved(nodes[i], nodes[i]->GetNodeParent(),
|
nsContentUtils::MaybeFireNodeRemoved(nodes[i], nodes[i]->GetParentNode(),
|
||||||
doc);
|
doc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -563,7 +541,7 @@ nsINode::Normalize()
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Remove node
|
// Remove node
|
||||||
nsCOMPtr<nsINode> parent = node->GetNodeParent();
|
nsCOMPtr<nsINode> parent = node->GetParentNode();
|
||||||
NS_ASSERTION(parent || hasRemoveListeners,
|
NS_ASSERTION(parent || hasRemoveListeners,
|
||||||
"Should always have a parent unless "
|
"Should always have a parent unless "
|
||||||
"mutation events messed us up");
|
"mutation events messed us up");
|
||||||
@ -571,12 +549,10 @@ nsINode::Normalize()
|
|||||||
parent->RemoveChildAt(parent->IndexOf(node), true);
|
parent->RemoveChildAt(parent->IndexOf(node), true);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
void
|
||||||
nsINode::GetDOMBaseURI(nsAString &aURI) const
|
nsINode::GetBaseURI(nsAString &aURI) const
|
||||||
{
|
{
|
||||||
nsCOMPtr<nsIURI> baseURI = GetBaseURI();
|
nsCOMPtr<nsIURI> baseURI = GetBaseURI();
|
||||||
|
|
||||||
@ -586,11 +562,9 @@ nsINode::GetDOMBaseURI(nsAString &aURI) const
|
|||||||
}
|
}
|
||||||
|
|
||||||
CopyUTF8toUTF16(spec, aURI);
|
CopyUTF8toUTF16(spec, aURI);
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
void
|
||||||
nsINode::LookupPrefix(const nsAString& aNamespaceURI, nsAString& aPrefix)
|
nsINode::LookupPrefix(const nsAString& aNamespaceURI, nsAString& aPrefix)
|
||||||
{
|
{
|
||||||
Element *element = GetNameSpaceElement();
|
Element *element = GetNameSpaceElement();
|
||||||
@ -620,15 +594,13 @@ nsINode::LookupPrefix(const nsAString& aNamespaceURI, nsAString& aPrefix)
|
|||||||
else {
|
else {
|
||||||
SetDOMStringToNull(aPrefix);
|
SetDOMStringToNull(aPrefix);
|
||||||
}
|
}
|
||||||
return NS_OK;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
SetDOMStringToNull(aPrefix);
|
SetDOMStringToNull(aPrefix);
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static nsresult
|
static nsresult
|
||||||
@ -690,34 +662,73 @@ nsINode::SetUserData(const nsAString &aKey, nsIVariant *aData,
|
|||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t
|
JS::Value
|
||||||
nsINode::CompareDocPosition(nsINode* aOtherNode)
|
nsINode::SetUserData(JSContext* aCx, const nsAString& aKey, JS::Value aData,
|
||||||
|
nsIDOMUserDataHandler* aHandler, ErrorResult& aError)
|
||||||
{
|
{
|
||||||
NS_PRECONDITION(aOtherNode, "don't pass null");
|
nsCOMPtr<nsIVariant> data;
|
||||||
|
aError = nsContentUtils::XPConnect()->JSValToVariant(aCx, &aData,
|
||||||
|
getter_AddRefs(data));
|
||||||
|
if (aError.Failed()) {
|
||||||
|
return JS::UndefinedValue();
|
||||||
|
}
|
||||||
|
|
||||||
if (this == aOtherNode) {
|
nsCOMPtr<nsIVariant> oldData;
|
||||||
|
aError = SetUserData(aKey, data, aHandler, getter_AddRefs(oldData));
|
||||||
|
if (aError.Failed()) {
|
||||||
|
return JS::UndefinedValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!oldData) {
|
||||||
|
return JS::NullValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
JS::Value result;
|
||||||
|
aError = nsContentUtils::XPConnect()->VariantToJS(aCx, GetWrapper(), oldData,
|
||||||
|
&result);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
JS::Value
|
||||||
|
nsINode::GetUserData(JSContext* aCx, const nsAString& aKey, ErrorResult& aError)
|
||||||
|
{
|
||||||
|
nsIVariant* data = GetUserData(aKey);
|
||||||
|
if (!data) {
|
||||||
|
return JS::NullValue();
|
||||||
|
}
|
||||||
|
|
||||||
|
JS::Value result;
|
||||||
|
aError = nsContentUtils::XPConnect()->VariantToJS(aCx, GetWrapper(), data,
|
||||||
|
&result);
|
||||||
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
uint16_t
|
||||||
|
nsINode::CompareDocumentPosition(nsINode& aOtherNode) const
|
||||||
|
{
|
||||||
|
if (this == &aOtherNode) {
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsAutoTArray<nsINode*, 32> parents1, parents2;
|
nsAutoTArray<const nsINode*, 32> parents1, parents2;
|
||||||
|
|
||||||
nsINode *node1 = aOtherNode, *node2 = this;
|
const nsINode *node1 = &aOtherNode, *node2 = this;
|
||||||
|
|
||||||
// Check if either node is an attribute
|
// Check if either node is an attribute
|
||||||
nsIAttribute* attr1 = nullptr;
|
const nsIAttribute* attr1 = nullptr;
|
||||||
if (node1->IsNodeOfType(nsINode::eATTRIBUTE)) {
|
if (node1->IsNodeOfType(nsINode::eATTRIBUTE)) {
|
||||||
attr1 = static_cast<nsIAttribute*>(node1);
|
attr1 = static_cast<const nsIAttribute*>(node1);
|
||||||
nsIContent* elem = attr1->GetContent();
|
const nsIContent* elem = attr1->GetContent();
|
||||||
// If there is an owner element add the attribute
|
// If there is an owner element add the attribute
|
||||||
// to the chain and walk up to the element
|
// to the chain and walk up to the element
|
||||||
if (elem) {
|
if (elem) {
|
||||||
node1 = elem;
|
node1 = elem;
|
||||||
parents1.AppendElement(static_cast<nsINode*>(attr1));
|
parents1.AppendElement(attr1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (node2->IsNodeOfType(nsINode::eATTRIBUTE)) {
|
if (node2->IsNodeOfType(nsINode::eATTRIBUTE)) {
|
||||||
nsIAttribute* attr2 = static_cast<nsIAttribute*>(node2);
|
const nsIAttribute* attr2 = static_cast<const nsIAttribute*>(node2);
|
||||||
nsIContent* elem = attr2->GetContent();
|
const nsIContent* elem = attr2->GetContent();
|
||||||
if (elem == node1 && attr1) {
|
if (elem == node1 && attr1) {
|
||||||
// Both nodes are attributes on the same element.
|
// Both nodes are attributes on the same element.
|
||||||
// Compare position between the attributes.
|
// Compare position between the attributes.
|
||||||
@ -742,7 +753,7 @@ nsINode::CompareDocPosition(nsINode* aOtherNode)
|
|||||||
|
|
||||||
if (elem) {
|
if (elem) {
|
||||||
node2 = elem;
|
node2 = elem;
|
||||||
parents2.AppendElement(static_cast<nsINode*>(attr2));
|
parents2.AppendElement(attr2);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -754,18 +765,18 @@ nsINode::CompareDocPosition(nsINode* aOtherNode)
|
|||||||
// Build the chain of parents
|
// Build the chain of parents
|
||||||
do {
|
do {
|
||||||
parents1.AppendElement(node1);
|
parents1.AppendElement(node1);
|
||||||
node1 = node1->GetNodeParent();
|
node1 = node1->GetParentNode();
|
||||||
} while (node1);
|
} while (node1);
|
||||||
do {
|
do {
|
||||||
parents2.AppendElement(node2);
|
parents2.AppendElement(node2);
|
||||||
node2 = node2->GetNodeParent();
|
node2 = node2->GetParentNode();
|
||||||
} while (node2);
|
} while (node2);
|
||||||
|
|
||||||
// Check if the nodes are disconnected.
|
// Check if the nodes are disconnected.
|
||||||
uint32_t pos1 = parents1.Length();
|
uint32_t pos1 = parents1.Length();
|
||||||
uint32_t pos2 = parents2.Length();
|
uint32_t pos2 = parents2.Length();
|
||||||
nsINode* top1 = parents1.ElementAt(--pos1);
|
const nsINode* top1 = parents1.ElementAt(--pos1);
|
||||||
nsINode* top2 = parents2.ElementAt(--pos2);
|
const nsINode* top2 = parents2.ElementAt(--pos2);
|
||||||
if (top1 != top2) {
|
if (top1 != top2) {
|
||||||
return top1 < top2 ?
|
return top1 < top2 ?
|
||||||
(nsIDOMNode::DOCUMENT_POSITION_PRECEDING |
|
(nsIDOMNode::DOCUMENT_POSITION_PRECEDING |
|
||||||
@ -777,11 +788,11 @@ nsINode::CompareDocPosition(nsINode* aOtherNode)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Find where the parent chain differs and check indices in the parent.
|
// Find where the parent chain differs and check indices in the parent.
|
||||||
nsINode* parent = top1;
|
const nsINode* parent = top1;
|
||||||
uint32_t len;
|
uint32_t len;
|
||||||
for (len = NS_MIN(pos1, pos2); len > 0; --len) {
|
for (len = NS_MIN(pos1, pos2); len > 0; --len) {
|
||||||
nsINode* child1 = parents1.ElementAt(--pos1);
|
const nsINode* child1 = parents1.ElementAt(--pos1);
|
||||||
nsINode* child2 = parents2.ElementAt(--pos2);
|
const nsINode* child2 = parents2.ElementAt(--pos2);
|
||||||
if (child1 != child2) {
|
if (child1 != child2) {
|
||||||
// child1 or child2 can be an attribute here. This will work fine since
|
// child1 or child2 can be an attribute here. This will work fine since
|
||||||
// IndexOf will return -1 for the attribute making the attribute be
|
// IndexOf will return -1 for the attribute making the attribute be
|
||||||
@ -804,7 +815,7 @@ nsINode::CompareDocPosition(nsINode* aOtherNode)
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool
|
bool
|
||||||
nsINode::IsEqualTo(nsINode* aOther)
|
nsINode::IsEqualNode(nsINode* aOther)
|
||||||
{
|
{
|
||||||
if (!aOther) {
|
if (!aOther) {
|
||||||
return false;
|
return false;
|
||||||
@ -882,10 +893,8 @@ nsINode::IsEqualTo(nsINode* aOther)
|
|||||||
NS_ASSERTION(node1 == this && node2 == aOther,
|
NS_ASSERTION(node1 == this && node2 == aOther,
|
||||||
"Did we come upon an attribute node while walking a "
|
"Did we come upon an attribute node while walking a "
|
||||||
"subtree?");
|
"subtree?");
|
||||||
nsCOMPtr<nsIDOMNode> domNode1 = do_QueryInterface(node1);
|
node1->GetNodeValue(string1);
|
||||||
nsCOMPtr<nsIDOMNode> domNode2 = do_QueryInterface(node2);
|
node2->GetNodeValue(string2);
|
||||||
domNode1->GetNodeValue(string1);
|
|
||||||
domNode2->GetNodeValue(string2);
|
|
||||||
|
|
||||||
// Returning here as to not bother walking subtree. And there is no
|
// Returning here as to not bother walking subtree. And there is no
|
||||||
// risk that we're half way through walking some other subtree since
|
// risk that we're half way through walking some other subtree since
|
||||||
@ -957,8 +966,8 @@ nsINode::IsEqualTo(nsINode* aOther)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
node1 = node1->GetNodeParent();
|
node1 = node1->GetParentNode();
|
||||||
node2 = node2->GetNodeParent();
|
node2 = node2->GetParentNode();
|
||||||
NS_ASSERTION(node1 && node2, "no parent while walking subtree");
|
NS_ASSERTION(node1 && node2, "no parent while walking subtree");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -967,7 +976,7 @@ nsINode::IsEqualTo(nsINode* aOther)
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
void
|
||||||
nsINode::LookupNamespaceURI(const nsAString& aNamespacePrefix,
|
nsINode::LookupNamespaceURI(const nsAString& aNamespacePrefix,
|
||||||
nsAString& aNamespaceURI)
|
nsAString& aNamespaceURI)
|
||||||
{
|
{
|
||||||
@ -977,8 +986,6 @@ nsINode::LookupNamespaceURI(const nsAString& aNamespacePrefix,
|
|||||||
aNamespaceURI))) {
|
aNamespaceURI))) {
|
||||||
SetDOMStringToNull(aNamespaceURI);
|
SetDOMStringToNull(aNamespaceURI);
|
||||||
}
|
}
|
||||||
|
|
||||||
return NS_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_IMPL_DOMTARGET_DEFAULTS(nsINode)
|
NS_IMPL_DOMTARGET_DEFAULTS(nsINode)
|
||||||
@ -1238,7 +1245,7 @@ nsINode::SetExplicitBaseURI(nsIURI* aURI)
|
|||||||
static nsresult
|
static nsresult
|
||||||
AdoptNodeIntoOwnerDoc(nsINode *aParent, nsINode *aNode)
|
AdoptNodeIntoOwnerDoc(nsINode *aParent, nsINode *aNode)
|
||||||
{
|
{
|
||||||
NS_ASSERTION(!aNode->GetNodeParent(),
|
NS_ASSERTION(!aNode->GetParentNode(),
|
||||||
"Should have removed from parent already");
|
"Should have removed from parent already");
|
||||||
|
|
||||||
nsIDocument *doc = aParent->OwnerDoc();
|
nsIDocument *doc = aParent->OwnerDoc();
|
||||||
@ -1267,7 +1274,7 @@ nsresult
|
|||||||
nsINode::doInsertChildAt(nsIContent* aKid, uint32_t aIndex,
|
nsINode::doInsertChildAt(nsIContent* aKid, uint32_t aIndex,
|
||||||
bool aNotify, nsAttrAndChildArray& aChildArray)
|
bool aNotify, nsAttrAndChildArray& aChildArray)
|
||||||
{
|
{
|
||||||
NS_PRECONDITION(!aKid->GetNodeParent(),
|
NS_PRECONDITION(!aKid->GetParentNode(),
|
||||||
"Inserting node that already has parent");
|
"Inserting node that already has parent");
|
||||||
nsresult rv;
|
nsresult rv;
|
||||||
|
|
||||||
@ -1309,7 +1316,7 @@ nsINode::doInsertChildAt(nsIContent* aKid, uint32_t aIndex,
|
|||||||
return rv;
|
return rv;
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_ASSERTION(aKid->GetNodeParent() == this,
|
NS_ASSERTION(aKid->GetParentNode() == this,
|
||||||
"Did we run script inappropriately?");
|
"Did we run script inappropriately?");
|
||||||
|
|
||||||
if (aNotify) {
|
if (aNotify) {
|
||||||
@ -1338,7 +1345,7 @@ void
|
|||||||
nsINode::doRemoveChildAt(uint32_t aIndex, bool aNotify,
|
nsINode::doRemoveChildAt(uint32_t aIndex, bool aNotify,
|
||||||
nsIContent* aKid, nsAttrAndChildArray& aChildArray)
|
nsIContent* aKid, nsAttrAndChildArray& aChildArray)
|
||||||
{
|
{
|
||||||
NS_PRECONDITION(aKid && aKid->GetNodeParent() == this &&
|
NS_PRECONDITION(aKid && aKid->GetParentNode() == this &&
|
||||||
aKid == GetChildAt(aIndex) &&
|
aKid == GetChildAt(aIndex) &&
|
||||||
IndexOf(aKid) == (int32_t)aIndex, "Bogus aKid");
|
IndexOf(aKid) == (int32_t)aIndex, "Bogus aKid");
|
||||||
|
|
||||||
@ -1515,24 +1522,23 @@ bool IsAllowedAsChild(nsIContent* aNewChild, nsINode* aParent,
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
nsINode*
|
||||||
nsINode::ReplaceOrInsertBefore(bool aReplace, nsINode* aNewChild,
|
nsINode::ReplaceOrInsertBefore(bool aReplace, nsINode* aNewChild,
|
||||||
nsINode* aRefChild)
|
nsINode* aRefChild, ErrorResult& aError)
|
||||||
{
|
{
|
||||||
// XXXbz I wish I could assert that nsContentUtils::IsSafeToRunScript() so we
|
// XXXbz I wish I could assert that nsContentUtils::IsSafeToRunScript() so we
|
||||||
// could rely on scriptblockers going out of scope to actually run XBL
|
// could rely on scriptblockers going out of scope to actually run XBL
|
||||||
// teardown, but various crud adds nodes under scriptblockers (e.g. native
|
// teardown, but various crud adds nodes under scriptblockers (e.g. native
|
||||||
// anonymous content). The only good news is those insertions can't trigger
|
// anonymous content). The only good news is those insertions can't trigger
|
||||||
// the bad XBL cases.
|
// the bad XBL cases.
|
||||||
if (!aNewChild || (aReplace && !aRefChild)) {
|
MOZ_ASSERT_IF(aReplace, aRefChild);
|
||||||
return NS_ERROR_NULL_POINTER;
|
|
||||||
}
|
|
||||||
|
|
||||||
if ((!IsNodeOfType(eDOCUMENT) &&
|
if ((!IsNodeOfType(eDOCUMENT) &&
|
||||||
!IsNodeOfType(eDOCUMENT_FRAGMENT) &&
|
!IsNodeOfType(eDOCUMENT_FRAGMENT) &&
|
||||||
!IsElement()) ||
|
!IsElement()) ||
|
||||||
!aNewChild->IsNodeOfType(eCONTENT)){
|
!aNewChild->IsNodeOfType(eCONTENT)) {
|
||||||
return NS_ERROR_DOM_HIERARCHY_REQUEST_ERR;
|
aError.Throw(NS_ERROR_DOM_HIERARCHY_REQUEST_ERR);
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
uint16_t nodeType = aNewChild->NodeType();
|
uint16_t nodeType = aNewChild->NodeType();
|
||||||
@ -1548,8 +1554,9 @@ nsINode::ReplaceOrInsertBefore(bool aReplace, nsINode* aNewChild,
|
|||||||
// none should be fired.
|
// none should be fired.
|
||||||
// It's ok that we do the check twice in the case when firing mutation
|
// It's ok that we do the check twice in the case when firing mutation
|
||||||
// events as we need to recheck after running script anyway.
|
// events as we need to recheck after running script anyway.
|
||||||
if (aRefChild && aRefChild->GetNodeParent() != this) {
|
if (aRefChild && aRefChild->GetParentNode() != this) {
|
||||||
return NS_ERROR_DOM_NOT_FOUND_ERR;
|
aError.Throw(NS_ERROR_DOM_NOT_FOUND_ERR);
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
// If we're replacing, fire for node-to-be-replaced.
|
// If we're replacing, fire for node-to-be-replaced.
|
||||||
@ -1560,7 +1567,7 @@ nsINode::ReplaceOrInsertBefore(bool aReplace, nsINode* aNewChild,
|
|||||||
|
|
||||||
// If the new node already has a parent, fire for removing from old
|
// If the new node already has a parent, fire for removing from old
|
||||||
// parent
|
// parent
|
||||||
nsINode* oldParent = aNewChild->GetNodeParent();
|
nsINode* oldParent = aNewChild->GetParentNode();
|
||||||
if (oldParent) {
|
if (oldParent) {
|
||||||
nsContentUtils::MaybeFireNodeRemoved(aNewChild, oldParent,
|
nsContentUtils::MaybeFireNodeRemoved(aNewChild, oldParent,
|
||||||
aNewChild->OwnerDoc());
|
aNewChild->OwnerDoc());
|
||||||
@ -1572,8 +1579,9 @@ nsINode::ReplaceOrInsertBefore(bool aReplace, nsINode* aNewChild,
|
|||||||
static_cast<nsGenericElement*>(aNewChild)->FireNodeRemovedForChildren();
|
static_cast<nsGenericElement*>(aNewChild)->FireNodeRemovedForChildren();
|
||||||
}
|
}
|
||||||
// Verify that our aRefChild is still sensible
|
// Verify that our aRefChild is still sensible
|
||||||
if (aRefChild && aRefChild->GetNodeParent() != this) {
|
if (aRefChild && aRefChild->GetParentNode() != this) {
|
||||||
return NS_ERROR_DOM_NOT_FOUND_ERR;
|
aError.Throw(NS_ERROR_DOM_NOT_FOUND_ERR);
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1583,12 +1591,14 @@ nsINode::ReplaceOrInsertBefore(bool aReplace, nsINode* aNewChild,
|
|||||||
// This is anonymous content. Don't allow its insertion
|
// This is anonymous content. Don't allow its insertion
|
||||||
// anywhere, since it might have UnbindFromTree calls coming
|
// anywhere, since it might have UnbindFromTree calls coming
|
||||||
// its way.
|
// its way.
|
||||||
return NS_ERROR_DOM_NOT_SUPPORTED_ERR;
|
aError.Throw(NS_ERROR_DOM_NOT_SUPPORTED_ERR);
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Make sure that the inserted node is allowed as a child of its new parent.
|
// Make sure that the inserted node is allowed as a child of its new parent.
|
||||||
if (!IsAllowedAsChild(newContent, this, aReplace, aRefChild)) {
|
if (!IsAllowedAsChild(newContent, this, aReplace, aRefChild)) {
|
||||||
return NS_ERROR_DOM_HIERARCHY_REQUEST_ERR;
|
aError.Throw(NS_ERROR_DOM_HIERARCHY_REQUEST_ERR);
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Record the node to insert before, if any
|
// Record the node to insert before, if any
|
||||||
@ -1607,13 +1617,14 @@ nsINode::ReplaceOrInsertBefore(bool aReplace, nsINode* aNewChild,
|
|||||||
Maybe<nsAutoTArray<nsCOMPtr<nsIContent>, 50> > fragChildren;
|
Maybe<nsAutoTArray<nsCOMPtr<nsIContent>, 50> > fragChildren;
|
||||||
|
|
||||||
// Remove the new child from the old parent if one exists
|
// Remove the new child from the old parent if one exists
|
||||||
nsCOMPtr<nsINode> oldParent = newContent->GetNodeParent();
|
nsCOMPtr<nsINode> oldParent = newContent->GetParentNode();
|
||||||
if (oldParent) {
|
if (oldParent) {
|
||||||
int32_t removeIndex = oldParent->IndexOf(newContent);
|
int32_t removeIndex = oldParent->IndexOf(newContent);
|
||||||
if (removeIndex < 0) {
|
if (removeIndex < 0) {
|
||||||
// newContent is anonymous. We can't deal with this, so just bail
|
// newContent is anonymous. We can't deal with this, so just bail
|
||||||
NS_ERROR("How come our flags didn't catch this?");
|
NS_ERROR("How come our flags didn't catch this?");
|
||||||
return NS_ERROR_DOM_NOT_SUPPORTED_ERR;
|
aError.Throw(NS_ERROR_DOM_NOT_SUPPORTED_ERR);
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Hold a strong ref to nodeToInsertBefore across the removal of newContent
|
// Hold a strong ref to nodeToInsertBefore across the removal of newContent
|
||||||
@ -1643,12 +1654,14 @@ nsINode::ReplaceOrInsertBefore(bool aReplace, nsINode* aNewChild,
|
|||||||
// Verify that nodeToInsertBefore, if non-null, is still our child. If
|
// Verify that nodeToInsertBefore, if non-null, is still our child. If
|
||||||
// it's not, there's no way we can do this insert sanely; just bail out.
|
// it's not, there's no way we can do this insert sanely; just bail out.
|
||||||
if (nodeToInsertBefore && nodeToInsertBefore->GetParent() != this) {
|
if (nodeToInsertBefore && nodeToInsertBefore->GetParent() != this) {
|
||||||
return NS_ERROR_DOM_HIERARCHY_REQUEST_ERR;
|
aError.Throw(NS_ERROR_DOM_HIERARCHY_REQUEST_ERR);
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verify that newContent has no parent.
|
// Verify that newContent has no parent.
|
||||||
if (newContent->GetParent()) {
|
if (newContent->GetParent()) {
|
||||||
return NS_ERROR_DOM_HIERARCHY_REQUEST_ERR;
|
aError.Throw(NS_ERROR_DOM_HIERARCHY_REQUEST_ERR);
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
// And verify that newContent is still allowed as our child.
|
// And verify that newContent is still allowed as our child.
|
||||||
@ -1656,12 +1669,14 @@ nsINode::ReplaceOrInsertBefore(bool aReplace, nsINode* aNewChild,
|
|||||||
// We've already removed aRefChild. So even if we were doing a replace,
|
// We've already removed aRefChild. So even if we were doing a replace,
|
||||||
// now we're doing a simple insert before nodeToInsertBefore.
|
// now we're doing a simple insert before nodeToInsertBefore.
|
||||||
if (!IsAllowedAsChild(newContent, this, false, nodeToInsertBefore)) {
|
if (!IsAllowedAsChild(newContent, this, false, nodeToInsertBefore)) {
|
||||||
return NS_ERROR_DOM_HIERARCHY_REQUEST_ERR;
|
aError.Throw(NS_ERROR_DOM_HIERARCHY_REQUEST_ERR);
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if ((aRefChild && aRefChild->GetParent() != this) ||
|
if ((aRefChild && aRefChild->GetParent() != this) ||
|
||||||
!IsAllowedAsChild(newContent, this, aReplace, aRefChild)) {
|
!IsAllowedAsChild(newContent, this, aReplace, aRefChild)) {
|
||||||
return NS_ERROR_DOM_HIERARCHY_REQUEST_ERR;
|
aError.Throw(NS_ERROR_DOM_HIERARCHY_REQUEST_ERR);
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
// And recompute nodeToInsertBefore, just in case.
|
// And recompute nodeToInsertBefore, just in case.
|
||||||
if (aReplace) {
|
if (aReplace) {
|
||||||
@ -1715,13 +1730,15 @@ nsINode::ReplaceOrInsertBefore(bool aReplace, nsINode* aNewChild,
|
|||||||
// Verify that nodeToInsertBefore, if non-null, is still our child. If
|
// Verify that nodeToInsertBefore, if non-null, is still our child. If
|
||||||
// it's not, there's no way we can do this insert sanely; just bail out.
|
// it's not, there's no way we can do this insert sanely; just bail out.
|
||||||
if (nodeToInsertBefore && nodeToInsertBefore->GetParent() != this) {
|
if (nodeToInsertBefore && nodeToInsertBefore->GetParent() != this) {
|
||||||
return NS_ERROR_DOM_HIERARCHY_REQUEST_ERR;
|
aError.Throw(NS_ERROR_DOM_HIERARCHY_REQUEST_ERR);
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Verify that all the things in fragChildren have no parent.
|
// Verify that all the things in fragChildren have no parent.
|
||||||
for (uint32_t i = 0; i < count; ++i) {
|
for (uint32_t i = 0; i < count; ++i) {
|
||||||
if (fragChildren.ref().ElementAt(i)->GetParent()) {
|
if (fragChildren.ref().ElementAt(i)->GetParent()) {
|
||||||
return NS_ERROR_DOM_HIERARCHY_REQUEST_ERR;
|
aError.Throw(NS_ERROR_DOM_HIERARCHY_REQUEST_ERR);
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1732,7 +1749,8 @@ nsINode::ReplaceOrInsertBefore(bool aReplace, nsINode* aNewChild,
|
|||||||
|
|
||||||
// Verify that our aRefChild is still sensible
|
// Verify that our aRefChild is still sensible
|
||||||
if (aRefChild && aRefChild->GetParent() != this) {
|
if (aRefChild && aRefChild->GetParent() != this) {
|
||||||
return NS_ERROR_DOM_HIERARCHY_REQUEST_ERR;
|
aError.Throw(NS_ERROR_DOM_HIERARCHY_REQUEST_ERR);
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Recompute nodeToInsertBefore, just in case.
|
// Recompute nodeToInsertBefore, just in case.
|
||||||
@ -1753,12 +1771,14 @@ nsINode::ReplaceOrInsertBefore(bool aReplace, nsINode* aNewChild,
|
|||||||
if (child->IsElement()) {
|
if (child->IsElement()) {
|
||||||
if (sawElement) {
|
if (sawElement) {
|
||||||
// No good
|
// No good
|
||||||
return NS_ERROR_DOM_HIERARCHY_REQUEST_ERR;
|
aError.Throw(NS_ERROR_DOM_HIERARCHY_REQUEST_ERR);
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
sawElement = true;
|
sawElement = true;
|
||||||
}
|
}
|
||||||
if (!IsAllowedAsChild(child, this, aReplace, aRefChild)) {
|
if (!IsAllowedAsChild(child, this, aReplace, aRefChild)) {
|
||||||
return NS_ERROR_DOM_HIERARCHY_REQUEST_ERR;
|
aError.Throw(NS_ERROR_DOM_HIERARCHY_REQUEST_ERR);
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1777,7 +1797,8 @@ nsINode::ReplaceOrInsertBefore(bool aReplace, nsINode* aNewChild,
|
|||||||
insPos = IndexOf(nodeToInsertBefore);
|
insPos = IndexOf(nodeToInsertBefore);
|
||||||
if (insPos < 0) {
|
if (insPos < 0) {
|
||||||
// XXXbz How the heck would _that_ happen, exactly?
|
// XXXbz How the heck would _that_ happen, exactly?
|
||||||
return NS_ERROR_DOM_NOT_FOUND_ERR;
|
aError.Throw(NS_ERROR_DOM_NOT_FOUND_ERR);
|
||||||
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@ -1800,15 +1821,16 @@ nsINode::ReplaceOrInsertBefore(bool aReplace, nsINode* aNewChild,
|
|||||||
--insPos;
|
--insPos;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult res = NS_OK;
|
|
||||||
// Move new child over to our document if needed. Do this after removing
|
// Move new child over to our document if needed. Do this after removing
|
||||||
// it from its parent so that AdoptNode doesn't fire DOMNodeRemoved
|
// it from its parent so that AdoptNode doesn't fire DOMNodeRemoved
|
||||||
// DocumentType nodes are the only nodes that can have a null
|
// DocumentType nodes are the only nodes that can have a null
|
||||||
// ownerDocument according to the DOM spec, and we need to allow
|
// ownerDocument according to the DOM spec, and we need to allow
|
||||||
// inserting them w/o calling AdoptNode().
|
// inserting them w/o calling AdoptNode().
|
||||||
if (!HasSameOwnerDoc(newContent)) {
|
if (!HasSameOwnerDoc(newContent)) {
|
||||||
res = AdoptNodeIntoOwnerDoc(this, aNewChild);
|
aError = AdoptNodeIntoOwnerDoc(this, aNewChild);
|
||||||
NS_ENSURE_SUCCESS(res, res);
|
if (aError.Failed()) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -1816,6 +1838,7 @@ nsINode::ReplaceOrInsertBefore(bool aReplace, nsINode* aNewChild,
|
|||||||
* to actually add its children individually (i.e. we don't add the
|
* to actually add its children individually (i.e. we don't add the
|
||||||
* actual document fragment).
|
* actual document fragment).
|
||||||
*/
|
*/
|
||||||
|
nsINode* result = aReplace ? aRefChild : aNewChild;
|
||||||
if (nodeType == nsIDOMNode::DOCUMENT_FRAGMENT_NODE) {
|
if (nodeType == nsIDOMNode::DOCUMENT_FRAGMENT_NODE) {
|
||||||
if (!aReplace) {
|
if (!aReplace) {
|
||||||
mb.Init(this, true, true);
|
mb.Init(this, true, true);
|
||||||
@ -1829,7 +1852,7 @@ nsINode::ReplaceOrInsertBefore(bool aReplace, nsINode* aNewChild,
|
|||||||
|
|
||||||
uint32_t count = fragChildren.ref().Length();
|
uint32_t count = fragChildren.ref().Length();
|
||||||
if (!count) {
|
if (!count) {
|
||||||
return NS_OK;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool appending =
|
bool appending =
|
||||||
@ -1842,15 +1865,16 @@ nsINode::ReplaceOrInsertBefore(bool aReplace, nsINode* aNewChild,
|
|||||||
for (uint32_t i = 0; i < count; ++i, ++insPos) {
|
for (uint32_t i = 0; i < count; ++i, ++insPos) {
|
||||||
// XXXbz how come no reparenting here? That seems odd...
|
// XXXbz how come no reparenting here? That seems odd...
|
||||||
// Insert the child.
|
// Insert the child.
|
||||||
res = InsertChildAt(fragChildren.ref().ElementAt(i), insPos, !appending);
|
aError = InsertChildAt(fragChildren.ref().ElementAt(i), insPos,
|
||||||
if (NS_FAILED(res)) {
|
!appending);
|
||||||
|
if (aError.Failed()) {
|
||||||
// Make sure to notify on any children that we did succeed to insert
|
// Make sure to notify on any children that we did succeed to insert
|
||||||
if (appending && i != 0) {
|
if (appending && i != 0) {
|
||||||
nsNodeUtils::ContentAppended(static_cast<nsIContent*>(this),
|
nsNodeUtils::ContentAppended(static_cast<nsIContent*>(this),
|
||||||
firstInsertedContent,
|
firstInsertedContent,
|
||||||
firstInsPos);
|
firstInsPos);
|
||||||
}
|
}
|
||||||
return res;
|
return nullptr;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1885,21 +1909,47 @@ nsINode::ReplaceOrInsertBefore(bool aReplace, nsINode* aNewChild,
|
|||||||
mb.SetPrevSibling(GetChildAt(insPos - 1));
|
mb.SetPrevSibling(GetChildAt(insPos - 1));
|
||||||
mb.SetNextSibling(GetChildAt(insPos));
|
mb.SetNextSibling(GetChildAt(insPos));
|
||||||
}
|
}
|
||||||
res = InsertChildAt(newContent, insPos, true);
|
aError = InsertChildAt(newContent, insPos, true);
|
||||||
NS_ENSURE_SUCCESS(res, res);
|
if (aError.Failed()) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return NS_OK;
|
return result;
|
||||||
|
}
|
||||||
|
|
||||||
|
nsresult
|
||||||
|
nsINode::ReplaceOrInsertBefore(bool aReplace, nsIDOMNode *aNewChild,
|
||||||
|
nsIDOMNode *aRefChild, nsIDOMNode **aReturn)
|
||||||
|
{
|
||||||
|
nsCOMPtr<nsINode> newChild = do_QueryInterface(aNewChild);
|
||||||
|
if (!newChild) {
|
||||||
|
return NS_ERROR_NULL_POINTER;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (aReplace && !aRefChild) {
|
||||||
|
return NS_ERROR_NULL_POINTER;
|
||||||
|
}
|
||||||
|
|
||||||
|
nsCOMPtr<nsINode> refChild = do_QueryInterface(aRefChild);
|
||||||
|
if (aRefChild && !refChild) {
|
||||||
|
return NS_NOINTERFACE;
|
||||||
|
}
|
||||||
|
|
||||||
|
ErrorResult rv;
|
||||||
|
nsINode* result = ReplaceOrInsertBefore(aReplace, newChild, refChild, rv);
|
||||||
|
if (result) {
|
||||||
|
NS_ADDREF(*aReturn = result->AsDOMNode());
|
||||||
|
}
|
||||||
|
return rv.ErrorCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
nsresult
|
||||||
nsINode::CompareDocumentPosition(nsIDOMNode* aOther, uint16_t* aReturn)
|
nsINode::CompareDocumentPosition(nsIDOMNode* aOther, uint16_t* aReturn)
|
||||||
{
|
{
|
||||||
nsCOMPtr<nsINode> other = do_QueryInterface(aOther);
|
nsCOMPtr<nsINode> other = do_QueryInterface(aOther);
|
||||||
if (!other) {
|
NS_ENSURE_ARG(other);
|
||||||
return NS_ERROR_NULL_POINTER;
|
*aReturn = CompareDocumentPosition(*other);
|
||||||
}
|
|
||||||
*aReturn = CompareDocPosition(other);
|
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1907,7 +1957,7 @@ nsresult
|
|||||||
nsINode::IsEqualNode(nsIDOMNode* aOther, bool* aReturn)
|
nsINode::IsEqualNode(nsIDOMNode* aOther, bool* aReturn)
|
||||||
{
|
{
|
||||||
nsCOMPtr<nsINode> other = do_QueryInterface(aOther);
|
nsCOMPtr<nsINode> other = do_QueryInterface(aOther);
|
||||||
*aReturn = IsEqualTo(other);
|
*aReturn = IsEqualNode(other);
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -2241,3 +2291,80 @@ nsINode::QuerySelectorAll(const nsAString& aSelector,
|
|||||||
return FindMatchingElements<false>(this, aSelector, *contentList);
|
return FindMatchingElements<false>(this, aSelector, *contentList);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
JSObject*
|
||||||
|
nsINode::WrapObject(JSContext *aCx, JSObject *aScope, bool *aTriedToWrap)
|
||||||
|
{
|
||||||
|
// Not all nodes have been converted
|
||||||
|
if (!IsDOMBinding()) {
|
||||||
|
*aTriedToWrap = false;
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Make sure one of these is true
|
||||||
|
// (1) our owner document has a script handling object,
|
||||||
|
// (2) Our owner document has had a script handling object, or has been marked
|
||||||
|
// to have had one,
|
||||||
|
// (3) we are running a privileged script.
|
||||||
|
// Event handling is possible only if (1). If (2) event handling is
|
||||||
|
// prevented.
|
||||||
|
// If the document has never had a script handling object, untrusted
|
||||||
|
// scripts (3) shouldn't touch it!
|
||||||
|
bool hasHadScriptHandlingObject = false;
|
||||||
|
bool enabled;
|
||||||
|
nsIScriptSecurityManager* securityManager;
|
||||||
|
if (!OwnerDoc()->GetScriptHandlingObject(hasHadScriptHandlingObject) &&
|
||||||
|
!hasHadScriptHandlingObject &&
|
||||||
|
!((securityManager = nsContentUtils::GetSecurityManager()) &&
|
||||||
|
NS_SUCCEEDED(securityManager->IsCapabilityEnabled("UniversalXPConnect",
|
||||||
|
&enabled)) &&
|
||||||
|
enabled)) {
|
||||||
|
Throw<true>(aCx, NS_ERROR_UNEXPECTED);
|
||||||
|
*aTriedToWrap = true;
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
|
||||||
|
return WrapNode(aCx, aScope, aTriedToWrap);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
nsINode::IsSupported(const nsAString& aFeature, const nsAString& aVersion)
|
||||||
|
{
|
||||||
|
return nsContentUtils::InternalIsSupported(this, aFeature, aVersion);
|
||||||
|
}
|
||||||
|
|
||||||
|
nsGenericElement*
|
||||||
|
nsINode::GetParentElement() const
|
||||||
|
{
|
||||||
|
return static_cast<nsGenericElement*>(GetElementParent());
|
||||||
|
}
|
||||||
|
|
||||||
|
already_AddRefed<nsINode>
|
||||||
|
nsINode::CloneNode(bool aDeep, ErrorResult& aError)
|
||||||
|
{
|
||||||
|
bool callUserDataHandlers = NodeType() != nsIDOMNode::DOCUMENT_NODE ||
|
||||||
|
!static_cast<nsIDocument*>(this)->CreatingStaticClone();
|
||||||
|
|
||||||
|
nsCOMPtr<nsINode> result;
|
||||||
|
aError = nsNodeUtils::CloneNodeImpl(this, aDeep, callUserDataHandlers,
|
||||||
|
getter_AddRefs(result));
|
||||||
|
return result.forget();
|
||||||
|
}
|
||||||
|
|
||||||
|
nsDOMAttributeMap*
|
||||||
|
nsINode::GetAttributes()
|
||||||
|
{
|
||||||
|
if (!IsElement()) {
|
||||||
|
return nullptr;
|
||||||
|
}
|
||||||
|
return static_cast<nsGenericElement*>(nsINode::AsElement())->GetAttributes();
|
||||||
|
}
|
||||||
|
|
||||||
|
nsresult
|
||||||
|
nsINode::GetAttributes(nsIDOMNamedNodeMap** aAttributes)
|
||||||
|
{
|
||||||
|
if (!IsElement()) {
|
||||||
|
*aAttributes = nullptr;
|
||||||
|
return NS_OK;
|
||||||
|
}
|
||||||
|
return CallQueryInterface(GetAttributes(), aAttributes);
|
||||||
|
}
|
||||||
|
@ -107,6 +107,11 @@ nsNodeInfo::nsNodeInfo(nsIAtom *aName, nsIAtom *aPrefix, int32_t aNamespaceID,
|
|||||||
mInner.mName->ToString(mQualifiedName);
|
mInner.mName->ToString(mQualifiedName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MOZ_ASSERT_IF(aNodeType != nsIDOMNode::ELEMENT_NODE &&
|
||||||
|
aNodeType != nsIDOMNode::ATTRIBUTE_NODE &&
|
||||||
|
aNodeType != UINT16_MAX,
|
||||||
|
aNamespaceID == kNameSpaceID_None && !aPrefix);
|
||||||
|
|
||||||
switch (aNodeType) {
|
switch (aNodeType) {
|
||||||
case nsIDOMNode::ELEMENT_NODE:
|
case nsIDOMNode::ELEMENT_NODE:
|
||||||
case nsIDOMNode::ATTRIBUTE_NODE:
|
case nsIDOMNode::ATTRIBUTE_NODE:
|
||||||
|
@ -62,7 +62,7 @@ bool nsNodeIterator::NodePointer::MoveToPrevious(nsINode *aRoot)
|
|||||||
if (mNode == aRoot)
|
if (mNode == aRoot)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
MoveBackward(mNode->GetNodeParent(), mNode->GetPreviousSibling());
|
MoveBackward(mNode->GetParentNode(), mNode->GetPreviousSibling());
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -113,7 +113,7 @@ bool nsNodeIterator::NodePointer::MoveForward(nsINode *aRoot, nsINode *aNode)
|
|||||||
mNode = sibling;
|
mNode = sibling;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
aNode = aNode->GetNodeParent();
|
aNode = aNode->GetParentNode();
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
@ -58,7 +58,7 @@ using namespace mozilla::dom;
|
|||||||
slots->mMutationObservers, nsIMutationObserver, \
|
slots->mMutationObservers, nsIMutationObserver, \
|
||||||
func_, params_); \
|
func_, params_); \
|
||||||
} \
|
} \
|
||||||
node = node->GetNodeParent(); \
|
node = node->GetParentNode(); \
|
||||||
} while (node); \
|
} while (node); \
|
||||||
if (needsEnterLeave) { \
|
if (needsEnterLeave) { \
|
||||||
nsDOMMutationObserver::LeaveMutationHandling(); \
|
nsDOMMutationObserver::LeaveMutationHandling(); \
|
||||||
@ -359,11 +359,11 @@ nsNodeUtils::TraverseUserData(nsINode* aNode,
|
|||||||
nsresult
|
nsresult
|
||||||
nsNodeUtils::CloneNodeImpl(nsINode *aNode, bool aDeep,
|
nsNodeUtils::CloneNodeImpl(nsINode *aNode, bool aDeep,
|
||||||
bool aCallUserDataHandlers,
|
bool aCallUserDataHandlers,
|
||||||
nsIDOMNode **aResult)
|
nsINode **aResult)
|
||||||
{
|
{
|
||||||
*aResult = nullptr;
|
*aResult = nullptr;
|
||||||
|
|
||||||
nsCOMPtr<nsIDOMNode> newNode;
|
nsCOMPtr<nsINode> newNode;
|
||||||
nsCOMArray<nsINode> nodesWithProperties;
|
nsCOMArray<nsINode> nodesWithProperties;
|
||||||
nsresult rv = Clone(aNode, aDeep, nullptr, nodesWithProperties,
|
nsresult rv = Clone(aNode, aDeep, nullptr, nodesWithProperties,
|
||||||
getter_AddRefs(newNode));
|
getter_AddRefs(newNode));
|
||||||
|
@ -150,10 +150,10 @@ public:
|
|||||||
static nsresult Clone(nsINode *aNode, bool aDeep,
|
static nsresult Clone(nsINode *aNode, bool aDeep,
|
||||||
nsNodeInfoManager *aNewNodeInfoManager,
|
nsNodeInfoManager *aNewNodeInfoManager,
|
||||||
nsCOMArray<nsINode> &aNodesWithProperties,
|
nsCOMArray<nsINode> &aNodesWithProperties,
|
||||||
nsIDOMNode **aResult)
|
nsINode **aResult)
|
||||||
{
|
{
|
||||||
return CloneAndAdopt(aNode, true, aDeep, aNewNodeInfoManager, nullptr,
|
return CloneAndAdopt(aNode, true, aDeep, aNewNodeInfoManager, nullptr,
|
||||||
nullptr, aNodesWithProperties, aResult);
|
nullptr, aNodesWithProperties, nullptr, aResult);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -179,9 +179,10 @@ public:
|
|||||||
JSContext *aCx, JSObject *aNewScope,
|
JSContext *aCx, JSObject *aNewScope,
|
||||||
nsCOMArray<nsINode> &aNodesWithProperties)
|
nsCOMArray<nsINode> &aNodesWithProperties)
|
||||||
{
|
{
|
||||||
|
nsCOMPtr<nsINode> node;
|
||||||
nsresult rv = CloneAndAdopt(aNode, false, true, aNewNodeInfoManager,
|
nsresult rv = CloneAndAdopt(aNode, false, true, aNewNodeInfoManager,
|
||||||
aCx, aNewScope, aNodesWithProperties,
|
aCx, aNewScope, aNodesWithProperties,
|
||||||
nullptr);
|
nullptr, getter_AddRefs(node));
|
||||||
|
|
||||||
nsMutationGuard::DidMutate();
|
nsMutationGuard::DidMutate();
|
||||||
|
|
||||||
@ -228,7 +229,7 @@ public:
|
|||||||
*/
|
*/
|
||||||
static nsresult CloneNodeImpl(nsINode *aNode, bool aDeep,
|
static nsresult CloneNodeImpl(nsINode *aNode, bool aDeep,
|
||||||
bool aCallUserDataHandlers,
|
bool aCallUserDataHandlers,
|
||||||
nsIDOMNode **aResult);
|
nsINode **aResult);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Release the UserData and UserDataHandlers for aNode.
|
* Release the UserData and UserDataHandlers for aNode.
|
||||||
@ -263,31 +264,6 @@ private:
|
|||||||
* descendants) with properties. If aClone is
|
* descendants) with properties. If aClone is
|
||||||
* true every node will be followed by its
|
* true every node will be followed by its
|
||||||
* clone.
|
* clone.
|
||||||
* @param aResult If aClone is false then aResult must be null, else
|
|
||||||
* *aResult will contain the cloned node.
|
|
||||||
*/
|
|
||||||
static nsresult CloneAndAdopt(nsINode *aNode, bool aClone, bool aDeep,
|
|
||||||
nsNodeInfoManager *aNewNodeInfoManager,
|
|
||||||
JSContext *aCx, JSObject *aNewScope,
|
|
||||||
nsCOMArray<nsINode> &aNodesWithProperties,
|
|
||||||
nsIDOMNode **aResult)
|
|
||||||
{
|
|
||||||
NS_ASSERTION(!aClone == !aResult,
|
|
||||||
"aResult must be null when adopting and non-null when "
|
|
||||||
"cloning");
|
|
||||||
|
|
||||||
nsCOMPtr<nsINode> clone;
|
|
||||||
nsresult rv = CloneAndAdopt(aNode, aClone, aDeep, aNewNodeInfoManager,
|
|
||||||
aCx, aNewScope, aNodesWithProperties,
|
|
||||||
nullptr, getter_AddRefs(clone));
|
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
|
||||||
|
|
||||||
return clone ? CallQueryInterface(clone, aResult) : NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* See above for arguments that aren't described here.
|
|
||||||
*
|
|
||||||
* @param aParent If aClone is true the cloned node will be appended to
|
* @param aParent If aClone is true the cloned node will be appended to
|
||||||
* aParent's children. May be null. If not null then aNode
|
* aParent's children. May be null. If not null then aNode
|
||||||
* must be an nsIContent.
|
* must be an nsIContent.
|
||||||
|
@ -100,7 +100,7 @@ nsRange::CompareNodeToRange(nsINode* aNode, nsRange* aRange,
|
|||||||
|
|
||||||
// gather up the dom point info
|
// gather up the dom point info
|
||||||
int32_t nodeStart, nodeEnd;
|
int32_t nodeStart, nodeEnd;
|
||||||
nsINode* parent = aNode->GetNodeParent();
|
nsINode* parent = aNode->GetParentNode();
|
||||||
if (!parent) {
|
if (!parent) {
|
||||||
// can't make a parent/offset pair to represent start or
|
// can't make a parent/offset pair to represent start or
|
||||||
// end of the root node, because it has no parent.
|
// end of the root node, because it has no parent.
|
||||||
@ -173,7 +173,7 @@ GetNextRangeCommonAncestor(nsINode* aNode)
|
|||||||
if (!aNode->IsDescendantOfCommonAncestorForRangeInSelection()) {
|
if (!aNode->IsDescendantOfCommonAncestorForRangeInSelection()) {
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
aNode = aNode->GetNodeParent();
|
aNode = aNode->GetParentNode();
|
||||||
}
|
}
|
||||||
return aNode;
|
return aNode;
|
||||||
}
|
}
|
||||||
@ -188,7 +188,7 @@ nsRange::IsNodeSelected(nsINode* aNode, uint32_t aStartOffset,
|
|||||||
nsINode* n = GetNextRangeCommonAncestor(aNode);
|
nsINode* n = GetNextRangeCommonAncestor(aNode);
|
||||||
NS_ASSERTION(n || !aNode->IsSelectionDescendant(),
|
NS_ASSERTION(n || !aNode->IsSelectionDescendant(),
|
||||||
"orphan selection descendant");
|
"orphan selection descendant");
|
||||||
for (; n; n = GetNextRangeCommonAncestor(n->GetNodeParent())) {
|
for (; n; n = GetNextRangeCommonAncestor(n->GetParentNode())) {
|
||||||
RangeHashTable* ranges =
|
RangeHashTable* ranges =
|
||||||
static_cast<RangeHashTable*>(n->GetProperty(nsGkAtoms::range));
|
static_cast<RangeHashTable*>(n->GetProperty(nsGkAtoms::range));
|
||||||
ranges->EnumerateEntries(FindSelectedRange, &data);
|
ranges->EnumerateEntries(FindSelectedRange, &data);
|
||||||
@ -422,7 +422,7 @@ nsRange::CharacterDataChanged(nsIDocument* aDocument,
|
|||||||
// did so too (otherwise the range would end up with disconnected nodes).
|
// did so too (otherwise the range would end up with disconnected nodes).
|
||||||
if (aContent == mEndParent &&
|
if (aContent == mEndParent &&
|
||||||
aInfo->mChangeStart < static_cast<uint32_t>(mEndOffset)) {
|
aInfo->mChangeStart < static_cast<uint32_t>(mEndOffset)) {
|
||||||
if (aInfo->mDetails && (aContent->GetNodeParent() || newStartNode)) {
|
if (aInfo->mDetails && (aContent->GetParentNode() || newStartNode)) {
|
||||||
// splitText(), aInfo->mDetails->mNextSibling is the new text node
|
// splitText(), aInfo->mDetails->mNextSibling is the new text node
|
||||||
NS_ASSERTION(aInfo->mDetails->mType ==
|
NS_ASSERTION(aInfo->mDetails->mType ==
|
||||||
CharacterDataChangeInfo::Details::eSplit,
|
CharacterDataChangeInfo::Details::eSplit,
|
||||||
@ -436,7 +436,7 @@ nsRange::CharacterDataChanged(nsIDocument* aDocument,
|
|||||||
if (isCommonAncestor && !newStartNode) {
|
if (isCommonAncestor && !newStartNode) {
|
||||||
// The split occurs inside the range.
|
// The split occurs inside the range.
|
||||||
UnregisterCommonAncestor(mStartParent);
|
UnregisterCommonAncestor(mStartParent);
|
||||||
RegisterCommonAncestor(mStartParent->GetNodeParent());
|
RegisterCommonAncestor(mStartParent->GetParentNode());
|
||||||
newEndNode->SetDescendantOfCommonAncestorForRangeInSelection();
|
newEndNode->SetDescendantOfCommonAncestorForRangeInSelection();
|
||||||
} else if (mEndParent->IsDescendantOfCommonAncestorForRangeInSelection()) {
|
} else if (mEndParent->IsDescendantOfCommonAncestorForRangeInSelection()) {
|
||||||
newEndNode->SetDescendantOfCommonAncestorForRangeInSelection();
|
newEndNode->SetDescendantOfCommonAncestorForRangeInSelection();
|
||||||
@ -480,7 +480,7 @@ nsRange::CharacterDataChanged(nsIDocument* aDocument,
|
|||||||
}
|
}
|
||||||
DoSetRange(newStartNode, newStartOffset, newEndNode, newEndOffset,
|
DoSetRange(newStartNode, newStartOffset, newEndNode, newEndOffset,
|
||||||
newRoot ? newRoot : mRoot.get(),
|
newRoot ? newRoot : mRoot.get(),
|
||||||
!newEndNode->GetNodeParent() || !newStartNode->GetNodeParent());
|
!newEndNode->GetParentNode() || !newStartNode->GetParentNode());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -662,7 +662,7 @@ nsRange::IntersectsNode(nsIDOMNode* aNode, bool* aResult)
|
|||||||
NS_ENSURE_TRUE(mIsPositioned, NS_ERROR_NOT_INITIALIZED);
|
NS_ENSURE_TRUE(mIsPositioned, NS_ERROR_NOT_INITIALIZED);
|
||||||
|
|
||||||
// Step 3.
|
// Step 3.
|
||||||
nsINode* parent = node->GetNodeParent();
|
nsINode* parent = node->GetParentNode();
|
||||||
if (!parent) {
|
if (!parent) {
|
||||||
// Steps 2 and 4.
|
// Steps 2 and 4.
|
||||||
// |parent| is null, so |node|'s root is |node| itself.
|
// |parent| is null, so |node|'s root is |node| itself.
|
||||||
@ -720,7 +720,7 @@ nsRange::DoSetRange(nsINode* aStartN, int32_t aStartOffset,
|
|||||||
static_cast<nsIContent*>(aStartN)->GetBindingParent() &&
|
static_cast<nsIContent*>(aStartN)->GetBindingParent() &&
|
||||||
aRoot ==
|
aRoot ==
|
||||||
static_cast<nsIContent*>(aEndN)->GetBindingParent()) ||
|
static_cast<nsIContent*>(aEndN)->GetBindingParent()) ||
|
||||||
(!aRoot->GetNodeParent() &&
|
(!aRoot->GetParentNode() &&
|
||||||
(aRoot->IsNodeOfType(nsINode::eDOCUMENT) ||
|
(aRoot->IsNodeOfType(nsINode::eDOCUMENT) ||
|
||||||
aRoot->IsNodeOfType(nsINode::eATTRIBUTE) ||
|
aRoot->IsNodeOfType(nsINode::eATTRIBUTE) ||
|
||||||
aRoot->IsNodeOfType(nsINode::eDOCUMENT_FRAGMENT) ||
|
aRoot->IsNodeOfType(nsINode::eDOCUMENT_FRAGMENT) ||
|
||||||
@ -774,7 +774,7 @@ IndexOf(nsIDOMNode* aChildNode)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsINode *parent = child->GetNodeParent();
|
nsINode *parent = child->GetParentNode();
|
||||||
|
|
||||||
// finally we get the index
|
// finally we get the index
|
||||||
return parent ? parent->IndexOf(child) : -1;
|
return parent ? parent->IndexOf(child) : -1;
|
||||||
@ -895,7 +895,7 @@ nsRange::IsValidBoundary(nsINode* aNode)
|
|||||||
}
|
}
|
||||||
|
|
||||||
root = aNode;
|
root = aNode;
|
||||||
while ((aNode = aNode->GetNodeParent())) {
|
while ((aNode = aNode->GetParentNode())) {
|
||||||
root = aNode;
|
root = aNode;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1062,7 +1062,7 @@ nsRange::SelectNode(nsIDOMNode* aN)
|
|||||||
nsCOMPtr<nsINode> node = do_QueryInterface(aN);
|
nsCOMPtr<nsINode> node = do_QueryInterface(aN);
|
||||||
NS_ENSURE_TRUE(node, NS_ERROR_DOM_INVALID_NODE_TYPE_ERR);
|
NS_ENSURE_TRUE(node, NS_ERROR_DOM_INVALID_NODE_TYPE_ERR);
|
||||||
|
|
||||||
nsINode* parent = node->GetNodeParent();
|
nsINode* parent = node->GetParentNode();
|
||||||
nsINode* newRoot = IsValidBoundary(parent);
|
nsINode* newRoot = IsValidBoundary(parent);
|
||||||
NS_ENSURE_TRUE(newRoot, NS_ERROR_DOM_INVALID_NODE_TYPE_ERR);
|
NS_ENSURE_TRUE(newRoot, NS_ERROR_DOM_INVALID_NODE_TYPE_ERR);
|
||||||
|
|
||||||
@ -1439,19 +1439,6 @@ CollapseRangeAfterDelete(nsIDOMRange *aRange)
|
|||||||
return aRange->Collapse(false);
|
return aRange->Collapse(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove a node from the DOM entirely.
|
|
||||||
*
|
|
||||||
* @param aNode The node to remove.
|
|
||||||
*/
|
|
||||||
static nsresult
|
|
||||||
RemoveNode(nsIDOMNode* aNode)
|
|
||||||
{
|
|
||||||
nsCOMPtr<nsINode> node = do_QueryInterface(aNode);
|
|
||||||
nsCOMPtr<nsINode> parent = node->GetNodeParent();
|
|
||||||
return parent ? parent->RemoveChild(node) : NS_OK;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Split a data node into two parts.
|
* Split a data node into two parts.
|
||||||
*
|
*
|
||||||
@ -1760,8 +1747,13 @@ nsresult nsRange::CutContents(nsIDOMDocumentFragment** aFragment)
|
|||||||
ValidateCurrentNode(this, iter));
|
ValidateCurrentNode(this, iter));
|
||||||
} else if (nodeToResult) {
|
} else if (nodeToResult) {
|
||||||
nsMutationGuard guard;
|
nsMutationGuard guard;
|
||||||
rv = RemoveNode(nodeToResult);
|
nsCOMPtr<nsINode> node = do_QueryInterface(nodeToResult);
|
||||||
NS_ENSURE_SUCCESS(rv, rv);
|
nsINode* parent = node->GetParentNode();
|
||||||
|
if (parent) {
|
||||||
|
mozilla::ErrorResult error;
|
||||||
|
parent->RemoveChild(*node, error);
|
||||||
|
NS_ENSURE_FALSE(error.Failed(), error.ErrorCode());
|
||||||
|
}
|
||||||
NS_ENSURE_STATE(!guard.Mutated(1) ||
|
NS_ENSURE_STATE(!guard.Mutated(1) ||
|
||||||
ValidateCurrentNode(this, iter));
|
ValidateCurrentNode(this, iter));
|
||||||
}
|
}
|
||||||
@ -2195,8 +2187,8 @@ nsRange::SurroundContents(nsIDOMNode* aNewParent)
|
|||||||
if (mStartParent != mEndParent) {
|
if (mStartParent != mEndParent) {
|
||||||
bool startIsText = mStartParent->IsNodeOfType(nsINode::eTEXT);
|
bool startIsText = mStartParent->IsNodeOfType(nsINode::eTEXT);
|
||||||
bool endIsText = mEndParent->IsNodeOfType(nsINode::eTEXT);
|
bool endIsText = mEndParent->IsNodeOfType(nsINode::eTEXT);
|
||||||
nsINode* startGrandParent = mStartParent->GetNodeParent();
|
nsINode* startGrandParent = mStartParent->GetParentNode();
|
||||||
nsINode* endGrandParent = mEndParent->GetNodeParent();
|
nsINode* endGrandParent = mEndParent->GetParentNode();
|
||||||
NS_ENSURE_TRUE((startIsText && endIsText &&
|
NS_ENSURE_TRUE((startIsText && endIsText &&
|
||||||
startGrandParent &&
|
startGrandParent &&
|
||||||
startGrandParent == endGrandParent) ||
|
startGrandParent == endGrandParent) ||
|
||||||
@ -2630,7 +2622,7 @@ nsRange::GetRegisteredCommonAncestor()
|
|||||||
if (ranges->GetEntry(this)) {
|
if (ranges->GetEntry(this)) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
ancestor = GetNextRangeCommonAncestor(ancestor->GetNodeParent());
|
ancestor = GetNextRangeCommonAncestor(ancestor->GetParentNode());
|
||||||
}
|
}
|
||||||
NS_ASSERTION(ancestor, "can't find common ancestor for selected range");
|
NS_ASSERTION(ancestor, "can't find common ancestor for selected range");
|
||||||
return ancestor;
|
return ancestor;
|
||||||
|
@ -24,7 +24,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericDOMDataNode::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMCharacterData
|
// nsIDOMCharacterData
|
||||||
NS_FORWARD_NSIDOMCHARACTERDATA(nsGenericDOMDataNode::)
|
NS_FORWARD_NSIDOMCHARACTERDATA(nsGenericDOMDataNode::)
|
||||||
|
@ -1413,7 +1413,7 @@ nsTreeSanitizer::SanitizeChildren(nsINode* aRoot)
|
|||||||
RemoveAllAttributes(descendant);
|
RemoveAllAttributes(descendant);
|
||||||
}
|
}
|
||||||
nsIContent* next = node->GetNextNonChildNode(aRoot);
|
nsIContent* next = node->GetNextNonChildNode(aRoot);
|
||||||
node->GetParent()->RemoveChild(node);
|
node->RemoveFromParent();
|
||||||
node = next;
|
node = next;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -1459,14 +1459,14 @@ nsTreeSanitizer::SanitizeChildren(nsINode* aRoot)
|
|||||||
nsIContent* next = node->GetNextNode(aRoot);
|
nsIContent* next = node->GetNextNode(aRoot);
|
||||||
nsIContent* parent = node->GetParent();
|
nsIContent* parent = node->GetParent();
|
||||||
nsCOMPtr<nsIContent> child; // Must keep the child alive during move
|
nsCOMPtr<nsIContent> child; // Must keep the child alive during move
|
||||||
nsresult rv;
|
ErrorResult rv;
|
||||||
while ((child = node->GetFirstChild())) {
|
while ((child = node->GetFirstChild())) {
|
||||||
parent->InsertBefore(child, node, &rv);
|
parent->InsertBefore(*child, node, rv);
|
||||||
if (NS_FAILED(rv)) {
|
if (rv.Failed()) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
parent->RemoveChild(node);
|
node->RemoveFromParent();
|
||||||
node = next;
|
node = next;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@ -1502,7 +1502,7 @@ nsTreeSanitizer::SanitizeChildren(nsINode* aRoot)
|
|||||||
NS_ASSERTION(!node->GetFirstChild(), "How come non-element node had kids?");
|
NS_ASSERTION(!node->GetFirstChild(), "How come non-element node had kids?");
|
||||||
nsIContent* next = node->GetNextNonChildNode(aRoot);
|
nsIContent* next = node->GetNextNonChildNode(aRoot);
|
||||||
if (!mAllowComments && node->IsNodeOfType(nsINode::eCOMMENT)) {
|
if (!mAllowComments && node->IsNodeOfType(nsINode::eCOMMENT)) {
|
||||||
node->GetNodeParent()->RemoveChild(node);
|
node->RemoveFromParent();
|
||||||
}
|
}
|
||||||
node = next;
|
node = next;
|
||||||
}
|
}
|
||||||
|
@ -135,7 +135,7 @@ NS_IMETHODIMP nsTreeWalker::ParentNode(nsIDOMNode **_retval)
|
|||||||
nsCOMPtr<nsINode> node = mCurrentNode;
|
nsCOMPtr<nsINode> node = mCurrentNode;
|
||||||
|
|
||||||
while (node && node != mRoot) {
|
while (node && node != mRoot) {
|
||||||
node = node->GetNodeParent();
|
node = node->GetParentNode();
|
||||||
|
|
||||||
if (node) {
|
if (node) {
|
||||||
int16_t filtered;
|
int16_t filtered;
|
||||||
@ -209,7 +209,7 @@ NS_IMETHODIMP nsTreeWalker::PreviousNode(nsIDOMNode **_retval)
|
|||||||
if (node == mRoot)
|
if (node == mRoot)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
node = node->GetNodeParent();
|
node = node->GetParentNode();
|
||||||
if (!node)
|
if (!node)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
@ -262,7 +262,7 @@ NS_IMETHODIMP nsTreeWalker::NextNode(nsIDOMNode **_retval)
|
|||||||
if (sibling)
|
if (sibling)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
temp = temp->GetNodeParent();
|
temp = temp->GetParentNode();
|
||||||
} while (temp);
|
} while (temp);
|
||||||
|
|
||||||
if (!sibling)
|
if (!sibling)
|
||||||
@ -336,7 +336,7 @@ nsresult nsTreeWalker::FirstChildInternal(bool aReversed, nsIDOMNode **_retval)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
nsINode *parent = node->GetNodeParent();
|
nsINode *parent = node->GetParentNode();
|
||||||
|
|
||||||
if (!parent || parent == mRoot || parent == mCurrentNode) {
|
if (!parent || parent == mRoot || parent == mCurrentNode) {
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
@ -394,7 +394,7 @@ nsresult nsTreeWalker::NextSiblingInternal(bool aReversed, nsIDOMNode **_retval)
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
node = node->GetNodeParent();
|
node = node->GetParentNode();
|
||||||
|
|
||||||
if (!node || node == mRoot)
|
if (!node || node == mRoot)
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
|
@ -1214,7 +1214,7 @@ nsXMLContentSerializer::MaybeAddNewlineForRootNode(nsAString& aStr)
|
|||||||
void
|
void
|
||||||
nsXMLContentSerializer::MaybeFlagNewlineForRootNode(nsINode* aNode)
|
nsXMLContentSerializer::MaybeFlagNewlineForRootNode(nsINode* aNode)
|
||||||
{
|
{
|
||||||
nsINode* parent = aNode->GetNodeParent();
|
nsINode* parent = aNode->GetParentNode();
|
||||||
if (parent) {
|
if (parent) {
|
||||||
mAddNewlineForRootNode = parent->IsNodeOfType(nsINode::eDOCUMENT);
|
mAddNewlineForRootNode = parent->IsNodeOfType(nsINode::eDOCUMENT);
|
||||||
}
|
}
|
||||||
|
@ -901,7 +901,7 @@ static nsINode* GetRootEditableNode(nsPresContext* aPresContext,
|
|||||||
nsINode* node = aContent;
|
nsINode* node = aContent;
|
||||||
while (node && IsEditable(node)) {
|
while (node && IsEditable(node)) {
|
||||||
root = node;
|
root = node;
|
||||||
node = node->GetNodeParent();
|
node = node->GetParentNode();
|
||||||
}
|
}
|
||||||
return root;
|
return root;
|
||||||
}
|
}
|
||||||
|
@ -11,7 +11,6 @@ class nsXMLEventsElement : public nsXMLElement {
|
|||||||
public:
|
public:
|
||||||
nsXMLEventsElement(already_AddRefed<nsINodeInfo> aNodeInfo);
|
nsXMLEventsElement(already_AddRefed<nsINodeInfo> aNodeInfo);
|
||||||
virtual ~nsXMLEventsElement();
|
virtual ~nsXMLEventsElement();
|
||||||
NS_FORWARD_NSIDOMNODE(nsXMLElement::)
|
|
||||||
|
|
||||||
virtual nsIAtom *GetIDAttributeName() const;
|
virtual nsIAtom *GetIDAttributeName() const;
|
||||||
virtual nsresult SetAttr(int32_t aNameSpaceID, nsIAtom* aName,
|
virtual nsresult SetAttr(int32_t aNameSpaceID, nsIAtom* aName,
|
||||||
|
@ -25,7 +25,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsHTMLMediaElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsHTMLMediaElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsHTMLMediaElement::)
|
||||||
|
@ -51,7 +51,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -28,7 +28,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsHTMLMediaElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsHTMLMediaElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsHTMLMediaElement::)
|
||||||
|
@ -1241,7 +1241,7 @@ Serialize(Element* aRoot, bool aDescendentsOnly, nsAString& aOut)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
current = current->GetNodeParent();
|
current = current->GetParentNode();
|
||||||
if (aDescendentsOnly && current == aRoot) {
|
if (aDescendentsOnly && current == aRoot) {
|
||||||
return builder.ToString(aOut);
|
return builder.ToString(aOut);
|
||||||
}
|
}
|
||||||
@ -1392,9 +1392,7 @@ nsGenericHTMLElement::SetInnerHTML(const nsAString& aInnerHTML,
|
|||||||
// listeners on the fragment that comes from the parser.
|
// listeners on the fragment that comes from the parser.
|
||||||
nsAutoScriptBlockerSuppressNodeRemoved scriptBlocker;
|
nsAutoScriptBlockerSuppressNodeRemoved scriptBlocker;
|
||||||
|
|
||||||
nsresult rv = NS_OK;
|
static_cast<nsINode*>(this)->AppendChild(*fragment, aError);
|
||||||
static_cast<nsINode*>(this)->AppendChild(fragment, &rv);
|
|
||||||
aError = rv;
|
|
||||||
mb.NodesAdded();
|
mb.NodesAdded();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1403,7 +1401,7 @@ nsGenericHTMLElement::SetInnerHTML(const nsAString& aInnerHTML,
|
|||||||
NS_IMETHODIMP
|
NS_IMETHODIMP
|
||||||
nsGenericHTMLElement::SetOuterHTML(const nsAString& aOuterHTML)
|
nsGenericHTMLElement::SetOuterHTML(const nsAString& aOuterHTML)
|
||||||
{
|
{
|
||||||
nsCOMPtr<nsINode> parent = GetNodeParent();
|
nsCOMPtr<nsINode> parent = GetParentNode();
|
||||||
if (!parent) {
|
if (!parent) {
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
@ -1437,8 +1435,9 @@ nsGenericHTMLElement::SetOuterHTML(const nsAString& aOuterHTML)
|
|||||||
eCompatibility_NavQuirks,
|
eCompatibility_NavQuirks,
|
||||||
true);
|
true);
|
||||||
nsAutoMutationBatch mb(parent, true, false);
|
nsAutoMutationBatch mb(parent, true, false);
|
||||||
parent->ReplaceChild(fragment, this, &rv);
|
ErrorResult error;
|
||||||
return rv;
|
parent->ReplaceChild(*fragment, *this, error);
|
||||||
|
return error.ErrorCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
nsCOMPtr<nsINode> context;
|
nsCOMPtr<nsINode> context;
|
||||||
@ -1463,8 +1462,9 @@ nsGenericHTMLElement::SetOuterHTML(const nsAString& aOuterHTML)
|
|||||||
NS_ENSURE_SUCCESS(rv, rv);
|
NS_ENSURE_SUCCESS(rv, rv);
|
||||||
nsCOMPtr<nsINode> fragment = do_QueryInterface(df);
|
nsCOMPtr<nsINode> fragment = do_QueryInterface(df);
|
||||||
nsAutoMutationBatch mb(parent, true, false);
|
nsAutoMutationBatch mb(parent, true, false);
|
||||||
parent->ReplaceChild(fragment, this, &rv);
|
ErrorResult error;
|
||||||
return rv;
|
parent->ReplaceChild(*fragment, *this, error);
|
||||||
|
return error.ErrorCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
enum nsAdjacentPosition {
|
enum nsAdjacentPosition {
|
||||||
@ -1551,22 +1551,23 @@ nsGenericHTMLElement::InsertAdjacentHTML(const nsAString& aPosition,
|
|||||||
// listeners on the fragment that comes from the parser.
|
// listeners on the fragment that comes from the parser.
|
||||||
nsAutoScriptBlockerSuppressNodeRemoved scriptBlocker;
|
nsAutoScriptBlockerSuppressNodeRemoved scriptBlocker;
|
||||||
|
|
||||||
|
ErrorResult error;
|
||||||
nsAutoMutationBatch mb(destination, true, false);
|
nsAutoMutationBatch mb(destination, true, false);
|
||||||
switch (position) {
|
switch (position) {
|
||||||
case eBeforeBegin:
|
case eBeforeBegin:
|
||||||
destination->InsertBefore(fragment, this, &rv);
|
destination->InsertBefore(*fragment, this, error);
|
||||||
break;
|
break;
|
||||||
case eAfterBegin:
|
case eAfterBegin:
|
||||||
static_cast<nsINode*>(this)->InsertBefore(fragment, GetFirstChild(), &rv);
|
static_cast<nsINode*>(this)->InsertBefore(*fragment, GetFirstChild(), error);
|
||||||
break;
|
break;
|
||||||
case eBeforeEnd:
|
case eBeforeEnd:
|
||||||
static_cast<nsINode*>(this)->AppendChild(fragment, &rv);
|
static_cast<nsINode*>(this)->AppendChild(*fragment, error);
|
||||||
break;
|
break;
|
||||||
case eAfterEnd:
|
case eAfterEnd:
|
||||||
destination->InsertBefore(fragment, GetNextSibling(), &rv);
|
destination->InsertBefore(*fragment, GetNextSibling(), error);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
return rv;
|
return error.ErrorCode();
|
||||||
}
|
}
|
||||||
|
|
||||||
nsresult
|
nsresult
|
||||||
@ -4232,13 +4233,14 @@ nsGenericHTMLElement::SetItemValue(nsIVariant* aValue)
|
|||||||
void
|
void
|
||||||
nsGenericHTMLElement::GetItemValueText(nsAString& text)
|
nsGenericHTMLElement::GetItemValueText(nsAString& text)
|
||||||
{
|
{
|
||||||
GetTextContent(text);
|
GetTextContentInternal(text);
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
nsGenericHTMLElement::SetItemValueText(const nsAString& text)
|
nsGenericHTMLElement::SetItemValueText(const nsAString& text)
|
||||||
{
|
{
|
||||||
SetTextContent(text);
|
mozilla::ErrorResult rv;
|
||||||
|
SetTextContentInternal(text, rv);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void
|
static void
|
||||||
|
@ -35,7 +35,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -29,7 +29,7 @@ public:
|
|||||||
NS_DECL_SIZEOF_EXCLUDING_THIS
|
NS_DECL_SIZEOF_EXCLUDING_THIS
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -27,7 +27,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -62,7 +62,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -63,7 +63,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLFormElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLFormElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLFormElement::)
|
||||||
|
@ -22,7 +22,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -25,7 +25,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -22,7 +22,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -34,7 +34,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLFormElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLFormElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLFormElement::)
|
||||||
|
@ -31,7 +31,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -526,7 +526,7 @@ nsHTMLFormElement::UnbindFromTree(bool aDeep, bool aNullParent)
|
|||||||
nsINode* ancestor = this;
|
nsINode* ancestor = this;
|
||||||
nsINode* cur;
|
nsINode* cur;
|
||||||
do {
|
do {
|
||||||
cur = ancestor->GetNodeParent();
|
cur = ancestor->GetParentNode();
|
||||||
if (!cur) {
|
if (!cur) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
@ -40,7 +40,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -27,7 +27,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLFrameElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLFrameElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLFrameElement::)
|
||||||
|
@ -51,7 +51,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -30,7 +30,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -27,7 +27,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -21,7 +21,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLFrameElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLFrameElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLFrameElement::)
|
||||||
|
@ -24,7 +24,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -69,7 +69,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLFormElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLFormElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLFormElement::)
|
||||||
|
@ -27,7 +27,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -32,7 +32,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLFormElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLFormElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLFormElement::)
|
||||||
|
@ -27,7 +27,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -46,7 +46,7 @@ public:
|
|||||||
nsGenericHTMLElement)
|
nsGenericHTMLElement)
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -21,7 +21,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -27,7 +27,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -31,7 +31,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -22,7 +22,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -22,7 +22,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
/* nsIDOMNode */
|
/* nsIDOMNode */
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
/* nsIDOMElement */
|
/* nsIDOMElement */
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -20,7 +20,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -31,7 +31,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -43,7 +43,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLFormElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLFormElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLFormElement::)
|
||||||
|
@ -20,7 +20,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -33,7 +33,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -29,7 +29,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLFormElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLFormElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLFormElement::)
|
||||||
|
@ -28,7 +28,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -27,7 +27,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -21,7 +21,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -43,7 +43,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -248,7 +248,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLFormElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLFormElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLFormElement::)
|
||||||
|
@ -41,7 +41,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -38,7 +38,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -25,7 +25,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -21,7 +21,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -38,7 +38,7 @@ public:
|
|||||||
nsGenericHTMLElement)
|
nsGenericHTMLElement)
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -27,7 +27,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -33,7 +33,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -31,7 +31,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -22,7 +22,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -33,7 +33,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -32,7 +32,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLElement::)
|
||||||
|
@ -71,7 +71,7 @@ public:
|
|||||||
NS_DECL_ISUPPORTS_INHERITED
|
NS_DECL_ISUPPORTS_INHERITED
|
||||||
|
|
||||||
// nsIDOMNode
|
// nsIDOMNode
|
||||||
NS_FORWARD_NSIDOMNODE(nsGenericHTMLFormElement::)
|
NS_FORWARD_NSIDOMNODE_TO_NSINODE
|
||||||
|
|
||||||
// nsIDOMElement
|
// nsIDOMElement
|
||||||
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLFormElement::)
|
NS_FORWARD_NSIDOMELEMENT(nsGenericHTMLFormElement::)
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user