Commit 849ea6f2 authored by Ms2ger's avatar Ms2ger
Browse files

Bug 707576 - Remove nsIDOMNSElement; r=smaug

parent d717a673
Loading
Loading
Loading
Loading
+74 −112
Original line number Diff line number Diff line
@@ -97,7 +97,6 @@
#include "nsIXBLService.h"
#include "nsPIDOMWindow.h"
#include "nsPIBoxObject.h"
#include "nsIDOMNSElement.h"
#include "nsClientRect.h"
#include "nsSVGUtils.h"
#include "nsLayoutUtils.h"
@@ -1709,41 +1708,56 @@ nsGenericElement::GetNextElementSibling()
}

NS_IMETHODIMP
nsNSElementTearoff::GetFirstElementChild(nsIDOMElement** aResult)
nsGenericElement::GetChildElementCount(PRUint32* aResult)
{
  *aResult = GetChildrenList()->Length(true);
  return NS_OK;
}

// readonly attribute nsIDOMNodeList children
NS_IMETHODIMP
nsGenericElement::GetChildElements(nsIDOMNodeList** aResult)
{
  NS_ADDREF(*aResult = GetChildrenList());
  return NS_OK;
}

NS_IMETHODIMP
nsGenericElement::GetFirstElementChild(nsIDOMElement** aResult)
{
  *aResult = nsnull;

  nsIContent *result = mContent->GetFirstElementChild();
  nsIContent *result = GetFirstElementChild();

  return result ? CallQueryInterface(result, aResult) : NS_OK;
}

NS_IMETHODIMP
nsNSElementTearoff::GetLastElementChild(nsIDOMElement** aResult)
nsGenericElement::GetLastElementChild(nsIDOMElement** aResult)
{
  *aResult = nsnull;

  nsIContent *result = mContent->GetLastElementChild();
  nsIContent *result = GetLastElementChild();

  return result ? CallQueryInterface(result, aResult) : NS_OK;
}

NS_IMETHODIMP
nsNSElementTearoff::GetPreviousElementSibling(nsIDOMElement** aResult)
nsGenericElement::GetPreviousElementSibling(nsIDOMElement** aResult)
{
  *aResult = nsnull;

  nsIContent *result = mContent->GetPreviousElementSibling();
  nsIContent *result = GetPreviousElementSibling();

  return result ? CallQueryInterface(result, aResult) : NS_OK;
}

NS_IMETHODIMP
nsNSElementTearoff::GetNextElementSibling(nsIDOMElement** aResult)
nsGenericElement::GetNextElementSibling(nsIDOMElement** aResult)
{
  *aResult = nsnull;

  nsIContent *result = mContent->GetNextElementSibling();
  nsIContent *result = GetNextElementSibling();

  return result ? CallQueryInterface(result, aResult) : NS_OK;
}
@@ -1762,18 +1776,6 @@ nsGenericElement::GetChildrenList()
  return slots->mChildrenList;
}

NS_IMETHODIMP
nsNSElementTearoff::GetChildElementCount(PRUint32* aResult)
{
  return mContent->GetChildElementCount(aResult);
}

NS_IMETHODIMP
nsNSElementTearoff::GetChildren(nsIDOMNodeList** aResult)
{
  return mContent->GetChildren(aResult);
}

nsIDOMDOMTokenList*
nsGenericElement::GetClassList(nsresult *aResult)
{
@@ -1790,7 +1792,6 @@ nsGenericElement::GetClassList(nsresult *aResult)
    }

    slots->mClassList = new nsDOMTokenList(this, classAttr);
    NS_ENSURE_TRUE(slots->mClassList, nsnull);
  }

  *aResult = NS_OK;
@@ -1799,12 +1800,12 @@ nsGenericElement::GetClassList(nsresult *aResult)
}

NS_IMETHODIMP
nsNSElementTearoff::GetClassList(nsIDOMDOMTokenList** aResult)
nsGenericElement::GetClassList(nsIDOMDOMTokenList** aResult)
{
  *aResult = nsnull;

  nsresult rv;
  nsIDOMDOMTokenList* list = mContent->GetClassList(&rv);
  nsIDOMDOMTokenList* list = GetClassList(&rv);
  NS_ENSURE_TRUE(list, rv);

  NS_ADDREF(*aResult = list);
@@ -1812,63 +1813,31 @@ nsNSElementTearoff::GetClassList(nsIDOMDOMTokenList** aResult)
  return NS_OK;
}

void
NS_IMETHODIMP
nsGenericElement::SetCapture(bool aRetargetToElement)
{
  // If there is already an active capture, ignore this request. This would
  // occur if a splitter, frame resizer, etc had already captured and we don't
  // want to override those.
  if (nsIPresShell::GetCapturingContent())
    return;
    return NS_OK;

  nsIPresShell::SetCapturingContent(this, CAPTURE_PREVENTDRAG |
    (aRetargetToElement ? CAPTURE_RETARGETTOELEMENT : 0));
}

NS_IMETHODIMP
nsNSElementTearoff::SetCapture(bool aRetargetToElement)
{
  mContent->SetCapture(aRetargetToElement);

  return NS_OK;
}

void
NS_IMETHODIMP
nsGenericElement::ReleaseCapture()
{
  if (nsIPresShell::GetCapturingContent() == this) {
    nsIPresShell::SetCapturingContent(nsnull, 0);
  }
}

NS_IMETHODIMP
nsNSElementTearoff::ReleaseCapture()
{
  mContent->ReleaseCapture();

  return NS_OK;
}

//----------------------------------------------------------------------


NS_IMPL_CYCLE_COLLECTION_1(nsNSElementTearoff, mContent)

NS_INTERFACE_MAP_BEGIN(nsNSElementTearoff)
  NS_INTERFACE_MAP_ENTRY(nsIDOMNSElement)
  NS_INTERFACE_MAP_ENTRIES_CYCLE_COLLECTION(nsNSElementTearoff)
NS_INTERFACE_MAP_END_AGGREGATED(mContent)

NS_IMPL_CYCLE_COLLECTING_ADDREF(nsNSElementTearoff)
NS_IMPL_CYCLE_COLLECTING_RELEASE(nsNSElementTearoff)

NS_IMETHODIMP
nsNSElementTearoff::GetElementsByClassName(const nsAString& aClasses,
                                           nsIDOMNodeList** aReturn)
{
  return mContent->GetElementsByClassName(aClasses, aReturn);
}

nsIFrame*
nsGenericElement::GetStyledFrame()
{
@@ -1956,14 +1925,14 @@ nsGenericElement::GetScrollTop()
}

NS_IMETHODIMP
nsNSElementTearoff::GetScrollTop(PRInt32* aScrollTop)
nsGenericElement::GetScrollTop(PRInt32* aScrollTop)
{
  *aScrollTop = mContent->GetScrollTop();
  *aScrollTop = GetScrollTop();

  return NS_OK;
}

void
NS_IMETHODIMP
nsGenericElement::SetScrollTop(PRInt32 aScrollTop)
{
  nsIScrollableFrame* sf = GetScrollFrame();
@@ -1972,13 +1941,6 @@ nsGenericElement::SetScrollTop(PRInt32 aScrollTop)
    pt.y = nsPresContext::CSSPixelsToAppUnits(aScrollTop);
    sf->ScrollTo(pt, nsIScrollableFrame::INSTANT);
  }
}

NS_IMETHODIMP
nsNSElementTearoff::SetScrollTop(PRInt32 aScrollTop)
{
  mContent->SetScrollTop(aScrollTop);

  return NS_OK;
}

@@ -1993,14 +1955,14 @@ nsGenericElement::GetScrollLeft()
}

NS_IMETHODIMP
nsNSElementTearoff::GetScrollLeft(PRInt32* aScrollLeft)
nsGenericElement::GetScrollLeft(PRInt32* aScrollLeft)
{
  *aScrollLeft = mContent->GetScrollLeft();
  *aScrollLeft = GetScrollLeft();

  return NS_OK;
}

void
NS_IMETHODIMP
nsGenericElement::SetScrollLeft(PRInt32 aScrollLeft)
{
  nsIScrollableFrame* sf = GetScrollFrame();
@@ -2009,13 +1971,6 @@ nsGenericElement::SetScrollLeft(PRInt32 aScrollLeft)
    pt.x = nsPresContext::CSSPixelsToAppUnits(aScrollLeft);
    sf->ScrollTo(pt, nsIScrollableFrame::INSTANT);
  }
}

NS_IMETHODIMP
nsNSElementTearoff::SetScrollLeft(PRInt32 aScrollLeft)
{
  mContent->SetScrollLeft(aScrollLeft);

  return NS_OK;
}

@@ -2038,9 +1993,9 @@ nsGenericElement::GetScrollHeight()
}

NS_IMETHODIMP
nsNSElementTearoff::GetScrollHeight(PRInt32* aScrollHeight)
nsGenericElement::GetScrollHeight(PRInt32* aScrollHeight)
{
  *aScrollHeight = mContent->GetScrollHeight();
  *aScrollHeight = GetScrollHeight();

  return NS_OK;
}
@@ -2064,9 +2019,9 @@ nsGenericElement::GetScrollWidth()
}

NS_IMETHODIMP
nsNSElementTearoff::GetScrollWidth(PRInt32 *aScrollWidth)
nsGenericElement::GetScrollWidth(PRInt32 *aScrollWidth)
{
  *aScrollWidth = mContent->GetScrollWidth();
  *aScrollWidth = GetScrollWidth();

  return NS_OK;
}
@@ -2094,41 +2049,38 @@ nsGenericElement::GetClientAreaRect()
}

NS_IMETHODIMP
nsNSElementTearoff::GetClientTop(PRInt32 *aClientTop)
nsGenericElement::GetClientTop(PRInt32 *aClientTop)
{
  *aClientTop = mContent->GetClientTop();
  *aClientTop = GetClientTop();
  return NS_OK;
}

NS_IMETHODIMP
nsNSElementTearoff::GetClientLeft(PRInt32 *aClientLeft)
nsGenericElement::GetClientLeft(PRInt32 *aClientLeft)
{
  *aClientLeft = mContent->GetClientLeft();
  *aClientLeft = GetClientLeft();
  return NS_OK;
}

NS_IMETHODIMP
nsNSElementTearoff::GetClientHeight(PRInt32 *aClientHeight)
nsGenericElement::GetClientHeight(PRInt32 *aClientHeight)
{
  *aClientHeight = mContent->GetClientHeight();
  *aClientHeight = GetClientHeight();
  return NS_OK;
}

NS_IMETHODIMP
nsNSElementTearoff::GetClientWidth(PRInt32 *aClientWidth)
nsGenericElement::GetClientWidth(PRInt32 *aClientWidth)
{
  *aClientWidth = mContent->GetClientWidth();
  *aClientWidth = GetClientWidth();
  return NS_OK;
}

nsresult
NS_IMETHODIMP
nsGenericElement::GetBoundingClientRect(nsIDOMClientRect** aResult)
{
  // Weak ref, since we addref it below
  nsClientRect* rect = new nsClientRect();
  if (!rect)
    return NS_ERROR_OUT_OF_MEMORY;

  NS_ADDREF(*aResult = rect);
  
  nsIFrame* frame = GetPrimaryFrame(Flush_Layout);
@@ -2144,26 +2096,18 @@ nsGenericElement::GetBoundingClientRect(nsIDOMClientRect** aResult)
}

NS_IMETHODIMP
nsNSElementTearoff::GetBoundingClientRect(nsIDOMClientRect** aResult)
{
  return mContent->GetBoundingClientRect(aResult);
}

nsresult
nsGenericElement::GetElementsByClassName(const nsAString& aClasses,
                                         nsIDOMNodeList** aReturn)
{
  return nsContentUtils::GetElementsByClassName(this, aClasses, aReturn);
}

nsresult
NS_IMETHODIMP
nsGenericElement::GetClientRects(nsIDOMClientRectList** aResult)
{
  *aResult = nsnull;

  nsRefPtr<nsClientRectList> rectList = new nsClientRectList();
  if (!rectList)
    return NS_ERROR_OUT_OF_MEMORY;

  nsIFrame* frame = GetPrimaryFrame(Flush_Layout);
  if (!frame) {
@@ -2181,11 +2125,6 @@ nsGenericElement::GetClientRects(nsIDOMClientRectList** aResult)
  return NS_OK;
}

NS_IMETHODIMP
nsNSElementTearoff::GetClientRects(nsIDOMClientRectList** aResult)
{
  return mContent->GetClientRects(aResult);
}

//----------------------------------------------------------------------

@@ -4366,7 +4305,6 @@ NS_INTERFACE_MAP_BEGIN(nsGenericElement)
  NS_INTERFACE_MAP_ENTRY(nsIContent)
  NS_INTERFACE_MAP_ENTRY(nsINode)
  NS_INTERFACE_MAP_ENTRY(nsIDOMEventTarget)
  NS_INTERFACE_MAP_ENTRY_TEAROFF(nsIDOMNSElement, new nsNSElementTearoff(this))
  NS_INTERFACE_MAP_ENTRY_TEAROFF(nsISupportsWeakReference,
                                 new nsNodeSupportsWeakRefTearoff(this))
  NS_INTERFACE_MAP_ENTRY_TEAROFF(nsIDOMNodeSelector,
@@ -5521,12 +5459,12 @@ nsGenericElement::MozMatchesSelector(const nsAString& aSelector, nsresult* aResu
}

NS_IMETHODIMP
nsNSElementTearoff::MozMatchesSelector(const nsAString& aSelector, bool* aReturn)
nsGenericElement::MozMatchesSelector(const nsAString& aSelector, bool* aReturn)
{
  NS_PRECONDITION(aReturn, "Null out param?");

  nsresult rv;
  *aReturn = mContent->MozMatchesSelector(aSelector, &rv);
  *aReturn = MozMatchesSelector(aSelector, &rv);

  return rv;
}
@@ -5586,6 +5524,30 @@ nsGenericElement::SizeOf() const
#undef TOUCH_EVENT
#undef EVENT

NS_IMETHODIMP
nsGenericElement::GetOnmouseenter(JSContext* cx, JS::Value* vp)
{
  return nsINode::GetOnmouseenter(cx, vp);
}

NS_IMETHODIMP
nsGenericElement::SetOnmouseenter(JSContext* cx, const JS::Value& v)
{
  return nsINode::SetOnmouseenter(cx, v);
}

NS_IMETHODIMP
nsGenericElement::GetOnmouseleave(JSContext* cx, JS::Value* vp)
{
  return nsINode::GetOnmouseleave(cx, vp);
}

NS_IMETHODIMP
nsGenericElement::SetOnmouseleave(JSContext* cx, const JS::Value& v)
{
  return nsINode::SetOnmouseleave(cx, v);
}

bool
nsINode::Contains(const nsINode* aOther) const
{
+2 −90
Original line number Diff line number Diff line
@@ -49,7 +49,6 @@
#include "mozilla/dom/Element.h"
#include "nsIDOMElement.h"
#include "nsIDOMDocumentFragment.h"
#include "nsIDOMNSElement.h"
#include "nsILinkHandler.h"
#include "nsNodeUtils.h"
#include "nsAttrAndChildArray.h"
@@ -228,7 +227,6 @@ private:
};

// Forward declare to allow being a friend
class nsNSElementTearoff;
class nsTouchEventReceiverTearoff;
class nsInlineEventHandlersTearoff;

@@ -242,7 +240,6 @@ public:
  nsGenericElement(already_AddRefed<nsINodeInfo> aNodeInfo);
  virtual ~nsGenericElement();

  friend class nsNSElementTearoff;
  friend class nsTouchEventReceiverTearoff;
  friend class nsInlineEventHandlersTearoff;

@@ -425,37 +422,8 @@ public:
  }

  // nsIDOMElement method implementation
  NS_IMETHOD GetTagName(nsAString& aTagName);
  NS_IMETHOD GetAttribute(const nsAString& aName,
                          nsAString& aReturn);
  NS_IMETHOD SetAttribute(const nsAString& aName,
                          const nsAString& aValue);
  NS_IMETHOD RemoveAttribute(const nsAString& aName);
  NS_IMETHOD GetAttributeNode(const nsAString& aName,
                              nsIDOMAttr** aReturn);
  NS_IMETHOD SetAttributeNode(nsIDOMAttr* aNewAttr, nsIDOMAttr** aReturn);
  NS_IMETHOD RemoveAttributeNode(nsIDOMAttr* aOldAttr, nsIDOMAttr** aReturn);
  NS_IMETHOD GetElementsByTagName(const nsAString& aTagname,
                                  nsIDOMNodeList** aReturn);
  NS_IMETHOD GetAttributeNS(const nsAString& aNamespaceURI,
                            const nsAString& aLocalName,
                            nsAString& aReturn);
  NS_IMETHOD SetAttributeNS(const nsAString& aNamespaceURI,
                            const nsAString& aQualifiedName,
                            const nsAString& aValue);
  NS_IMETHOD RemoveAttributeNS(const nsAString& aNamespaceURI,
                               const nsAString& aLocalName);
  NS_IMETHOD GetAttributeNodeNS(const nsAString& aNamespaceURI,
                                const nsAString& aLocalName,
                                nsIDOMAttr** aReturn);
  NS_IMETHOD SetAttributeNodeNS(nsIDOMAttr* aNewAttr, nsIDOMAttr** aReturn);
  NS_IMETHOD GetElementsByTagNameNS(const nsAString& aNamespaceURI,
                                    const nsAString& aLocalName,
                                    nsIDOMNodeList** aReturn);
  NS_IMETHOD HasAttribute(const nsAString& aName, bool* aReturn);
  NS_IMETHOD HasAttributeNS(const nsAString& aNamespaceURI,
                            const nsAString& aLocalName,
                            bool* aReturn);
  NS_DECL_NSIDOMELEMENT

  nsresult CloneNode(bool aDeep, nsIDOMNode **aResult)
  {
    return nsNodeUtils::CloneNodeImpl(this, aDeep, true, aResult);
@@ -587,15 +555,8 @@ public:
  {
  }

  // nsIDOMNSElement methods
  nsresult GetElementsByClassName(const nsAString& aClasses,
                                  nsIDOMNodeList** aReturn);
  nsresult GetClientRects(nsIDOMClientRectList** aResult);
  nsresult GetBoundingClientRect(nsIDOMClientRect** aResult);
  PRInt32 GetScrollTop();
  void SetScrollTop(PRInt32 aScrollTop);
  PRInt32 GetScrollLeft();
  void SetScrollLeft(PRInt32 aScrollLeft);
  PRInt32 GetScrollHeight();
  PRInt32 GetScrollWidth();
  PRInt32 GetClientTop()
@@ -618,35 +579,7 @@ public:
  nsIContent* GetLastElementChild();
  nsIContent* GetPreviousElementSibling();
  nsIContent* GetNextElementSibling();
  nsresult GetChildElementCount(PRUint32* aResult)
  {
    nsContentList* list = GetChildrenList();
    if (!list) {
      *aResult = 0;

      return NS_ERROR_OUT_OF_MEMORY;
    }

    *aResult = list->Length(true);

    return NS_OK;
  }
  nsresult GetChildren(nsIDOMNodeList** aResult)
  {
    nsContentList* list = GetChildrenList();
    if (!list) {
      *aResult = nsnull;

      return NS_ERROR_OUT_OF_MEMORY;
    }

    NS_ADDREF(*aResult = list);

    return NS_OK;
  }
  nsIDOMDOMTokenList* GetClassList(nsresult *aResult);
  void SetCapture(bool aRetargetToElement);
  void ReleaseCapture();
  bool MozMatchesSelector(const nsAString& aSelector, nsresult* aResult);

  /**
@@ -1038,27 +971,6 @@ _elementName::Clone(nsINodeInfo *aNodeInfo, nsINode **aResult) const \
      NS_GetDOMClassInfoInstance(eDOMClassInfo_##_interface##_id));     \
  }

/**
 * Yet another tearoff class for nsGenericElement
 * to implement additional interfaces
 */
class nsNSElementTearoff : public nsIDOMNSElement
{
public:
  NS_DECL_CYCLE_COLLECTING_ISUPPORTS

  NS_DECL_NSIDOMNSELEMENT

  NS_DECL_CYCLE_COLLECTION_CLASS(nsNSElementTearoff)

  nsNSElementTearoff(nsGenericElement *aContent) : mContent(aContent)
  {
  }

private:
  nsRefPtr<nsGenericElement> mContent;
};

/**
 * Tearoff class to implement nsITouchEventReceiver
 */
+1 −2
Original line number Diff line number Diff line
@@ -31,8 +31,7 @@ function HTML_TAG(aTagName, aImplClass) {
  allTags.push(aTagName);
  classInfos[aTagName] = aImplClass;
  interfaces[aTagName] =
    [ "nsIDOMNSElement",
      "nsIDOMEventTarget",
    [ "nsIDOMEventTarget",
      "nsIDOMElementCSSInlineStyle",
      "nsIDOMNodeSelector",
      "nsITouchEventReceiver",
+0 −6
Original line number Diff line number Diff line
@@ -140,7 +140,6 @@
#include "nsIDOMDOMStringList.h"
#include "nsIDOMDOMTokenList.h"
#include "nsIDOMDOMSettableTokenList.h"
#include "nsIDOMNSElement.h"

#include "nsDOMStringMap.h"

@@ -2253,7 +2252,6 @@ nsDOMClassInfo::RegisterExternalClasses()
#define DOM_CLASSINFO_GENERIC_HTML_MAP_ENTRIES                                \
    DOM_CLASSINFO_MAP_ENTRY(nsIDOMElementCSSInlineStyle)                      \
    DOM_CLASSINFO_MAP_ENTRY(nsIDOMEventTarget)                                \
    DOM_CLASSINFO_MAP_ENTRY(nsIDOMNSElement)                                  \
    DOM_CLASSINFO_MAP_ENTRY(nsIDOMNodeSelector)                               \
    DOM_CLASSINFO_MAP_ENTRY(nsIInlineEventHandlers)                           \
    DOM_CLASSINFO_MAP_CONDITIONAL_ENTRY(nsITouchEventReceiver,                \
@@ -2430,7 +2428,6 @@ nsDOMClassInfo::Init()

  DOM_CLASSINFO_MAP_BEGIN(Element, nsIDOMElement)
    DOM_CLASSINFO_MAP_ENTRY(nsIDOMElement)
    DOM_CLASSINFO_MAP_ENTRY(nsIDOMNSElement)
    DOM_CLASSINFO_MAP_ENTRY(nsIDOMEventTarget)
    DOM_CLASSINFO_MAP_ENTRY(nsIDOMNodeSelector)
    DOM_CLASSINFO_MAP_ENTRY(nsIInlineEventHandlers)
@@ -2963,7 +2960,6 @@ nsDOMClassInfo::Init()
  DOM_CLASSINFO_MAP_BEGIN(XULElement, nsIDOMXULElement)
    DOM_CLASSINFO_MAP_ENTRY(nsIDOMXULElement)
    DOM_CLASSINFO_MAP_ENTRY(nsIDOMEventTarget)
    DOM_CLASSINFO_MAP_ENTRY(nsIDOMNSElement)
    DOM_CLASSINFO_MAP_ENTRY(nsIDOMElementCSSInlineStyle)
    DOM_CLASSINFO_MAP_ENTRY(nsIDOMNodeSelector)
    DOM_CLASSINFO_MAP_ENTRY(nsIInlineEventHandlers)
@@ -3067,7 +3063,6 @@ nsDOMClassInfo::Init()
#define DOM_CLASSINFO_SVG_ELEMENT_MAP_ENTRIES                           \
    DOM_CLASSINFO_MAP_ENTRY(nsIDOMEventTarget)                          \
    DOM_CLASSINFO_MAP_ENTRY(nsIDOMSVGElement)                           \
    DOM_CLASSINFO_MAP_ENTRY(nsIDOMNSElement)                            \
    DOM_CLASSINFO_MAP_ENTRY(nsIDOMNodeSelector)                         \
    DOM_CLASSINFO_MAP_ENTRY(nsIInlineEventHandlers)                     \
    DOM_CLASSINFO_MAP_CONDITIONAL_ENTRY(nsITouchEventReceiver,          \
@@ -4014,7 +4009,6 @@ nsDOMClassInfo::Init()

  DOM_CLASSINFO_MAP_BEGIN_NO_CLASS_IF(MathMLElement, nsIDOMElement)
    DOM_CLASSINFO_MAP_ENTRY(nsIDOMElement)
    DOM_CLASSINFO_MAP_ENTRY(nsIDOMNSElement)
    DOM_CLASSINFO_MAP_ENTRY(nsIDOMEventTarget)
    DOM_CLASSINFO_MAP_ENTRY(nsIDOMNodeSelector)
    DOM_CLASSINFO_MAP_ENTRY(nsIInlineEventHandlers)
+0 −1
Original line number Diff line number Diff line
@@ -58,7 +58,6 @@ interface nsIDOMDocument;
interface nsIDOMDocumentFragment;
interface nsIDOMDocumentType;
interface nsIDOMElement;
interface nsIDOMNSElement;
interface nsIDOMNamedNodeMap;
interface nsIDOMNode;
interface nsIDOMNodeList;
Loading