Loading content/base/src/nsGenericElement.cpp +74 −112 Original line number Diff line number Diff line Loading @@ -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" Loading Loading @@ -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; } Loading @@ -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) { Loading @@ -1790,7 +1792,6 @@ nsGenericElement::GetClassList(nsresult *aResult) } slots->mClassList = new nsDOMTokenList(this, classAttr); NS_ENSURE_TRUE(slots->mClassList, nsnull); } *aResult = NS_OK; Loading @@ -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); Loading @@ -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() { Loading Loading @@ -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(); Loading @@ -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; } Loading @@ -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(); Loading @@ -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; } Loading @@ -2038,9 +1993,9 @@ nsGenericElement::GetScrollHeight() } NS_IMETHODIMP nsNSElementTearoff::GetScrollHeight(PRInt32* aScrollHeight) nsGenericElement::GetScrollHeight(PRInt32* aScrollHeight) { *aScrollHeight = mContent->GetScrollHeight(); *aScrollHeight = GetScrollHeight(); return NS_OK; } Loading @@ -2064,9 +2019,9 @@ nsGenericElement::GetScrollWidth() } NS_IMETHODIMP nsNSElementTearoff::GetScrollWidth(PRInt32 *aScrollWidth) nsGenericElement::GetScrollWidth(PRInt32 *aScrollWidth) { *aScrollWidth = mContent->GetScrollWidth(); *aScrollWidth = GetScrollWidth(); return NS_OK; } Loading Loading @@ -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); Loading @@ -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) { Loading @@ -2181,11 +2125,6 @@ nsGenericElement::GetClientRects(nsIDOMClientRectList** aResult) return NS_OK; } NS_IMETHODIMP nsNSElementTearoff::GetClientRects(nsIDOMClientRectList** aResult) { return mContent->GetClientRects(aResult); } //---------------------------------------------------------------------- Loading Loading @@ -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, Loading Loading @@ -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; } Loading Loading @@ -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 { Loading content/base/src/nsGenericElement.h +2 −90 Original line number Diff line number Diff line Loading @@ -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" Loading Loading @@ -228,7 +227,6 @@ private: }; // Forward declare to allow being a friend class nsNSElementTearoff; class nsTouchEventReceiverTearoff; class nsInlineEventHandlersTearoff; Loading @@ -242,7 +240,6 @@ public: nsGenericElement(already_AddRefed<nsINodeInfo> aNodeInfo); virtual ~nsGenericElement(); friend class nsNSElementTearoff; friend class nsTouchEventReceiverTearoff; friend class nsInlineEventHandlersTearoff; Loading Loading @@ -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); Loading Loading @@ -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() Loading @@ -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); /** Loading Loading @@ -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 */ Loading content/html/content/test/test_bug389797.html +1 −2 Original line number Diff line number Diff line Loading @@ -31,8 +31,7 @@ function HTML_TAG(aTagName, aImplClass) { allTags.push(aTagName); classInfos[aTagName] = aImplClass; interfaces[aTagName] = [ "nsIDOMNSElement", "nsIDOMEventTarget", [ "nsIDOMEventTarget", "nsIDOMElementCSSInlineStyle", "nsIDOMNodeSelector", "nsITouchEventReceiver", Loading dom/base/nsDOMClassInfo.cpp +0 −6 Original line number Diff line number Diff line Loading @@ -140,7 +140,6 @@ #include "nsIDOMDOMStringList.h" #include "nsIDOMDOMTokenList.h" #include "nsIDOMDOMSettableTokenList.h" #include "nsIDOMNSElement.h" #include "nsDOMStringMap.h" Loading Loading @@ -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, \ Loading Loading @@ -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) Loading Loading @@ -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) Loading Loading @@ -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, \ Loading Loading @@ -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) Loading dom/interfaces/base/domstubs.idl +0 −1 Original line number Diff line number Diff line Loading @@ -58,7 +58,6 @@ interface nsIDOMDocument; interface nsIDOMDocumentFragment; interface nsIDOMDocumentType; interface nsIDOMElement; interface nsIDOMNSElement; interface nsIDOMNamedNodeMap; interface nsIDOMNode; interface nsIDOMNodeList; Loading Loading
content/base/src/nsGenericElement.cpp +74 −112 Original line number Diff line number Diff line Loading @@ -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" Loading Loading @@ -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; } Loading @@ -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) { Loading @@ -1790,7 +1792,6 @@ nsGenericElement::GetClassList(nsresult *aResult) } slots->mClassList = new nsDOMTokenList(this, classAttr); NS_ENSURE_TRUE(slots->mClassList, nsnull); } *aResult = NS_OK; Loading @@ -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); Loading @@ -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() { Loading Loading @@ -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(); Loading @@ -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; } Loading @@ -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(); Loading @@ -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; } Loading @@ -2038,9 +1993,9 @@ nsGenericElement::GetScrollHeight() } NS_IMETHODIMP nsNSElementTearoff::GetScrollHeight(PRInt32* aScrollHeight) nsGenericElement::GetScrollHeight(PRInt32* aScrollHeight) { *aScrollHeight = mContent->GetScrollHeight(); *aScrollHeight = GetScrollHeight(); return NS_OK; } Loading @@ -2064,9 +2019,9 @@ nsGenericElement::GetScrollWidth() } NS_IMETHODIMP nsNSElementTearoff::GetScrollWidth(PRInt32 *aScrollWidth) nsGenericElement::GetScrollWidth(PRInt32 *aScrollWidth) { *aScrollWidth = mContent->GetScrollWidth(); *aScrollWidth = GetScrollWidth(); return NS_OK; } Loading Loading @@ -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); Loading @@ -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) { Loading @@ -2181,11 +2125,6 @@ nsGenericElement::GetClientRects(nsIDOMClientRectList** aResult) return NS_OK; } NS_IMETHODIMP nsNSElementTearoff::GetClientRects(nsIDOMClientRectList** aResult) { return mContent->GetClientRects(aResult); } //---------------------------------------------------------------------- Loading Loading @@ -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, Loading Loading @@ -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; } Loading Loading @@ -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 { Loading
content/base/src/nsGenericElement.h +2 −90 Original line number Diff line number Diff line Loading @@ -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" Loading Loading @@ -228,7 +227,6 @@ private: }; // Forward declare to allow being a friend class nsNSElementTearoff; class nsTouchEventReceiverTearoff; class nsInlineEventHandlersTearoff; Loading @@ -242,7 +240,6 @@ public: nsGenericElement(already_AddRefed<nsINodeInfo> aNodeInfo); virtual ~nsGenericElement(); friend class nsNSElementTearoff; friend class nsTouchEventReceiverTearoff; friend class nsInlineEventHandlersTearoff; Loading Loading @@ -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); Loading Loading @@ -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() Loading @@ -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); /** Loading Loading @@ -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 */ Loading
content/html/content/test/test_bug389797.html +1 −2 Original line number Diff line number Diff line Loading @@ -31,8 +31,7 @@ function HTML_TAG(aTagName, aImplClass) { allTags.push(aTagName); classInfos[aTagName] = aImplClass; interfaces[aTagName] = [ "nsIDOMNSElement", "nsIDOMEventTarget", [ "nsIDOMEventTarget", "nsIDOMElementCSSInlineStyle", "nsIDOMNodeSelector", "nsITouchEventReceiver", Loading
dom/base/nsDOMClassInfo.cpp +0 −6 Original line number Diff line number Diff line Loading @@ -140,7 +140,6 @@ #include "nsIDOMDOMStringList.h" #include "nsIDOMDOMTokenList.h" #include "nsIDOMDOMSettableTokenList.h" #include "nsIDOMNSElement.h" #include "nsDOMStringMap.h" Loading Loading @@ -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, \ Loading Loading @@ -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) Loading Loading @@ -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) Loading Loading @@ -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, \ Loading Loading @@ -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) Loading
dom/interfaces/base/domstubs.idl +0 −1 Original line number Diff line number Diff line Loading @@ -58,7 +58,6 @@ interface nsIDOMDocument; interface nsIDOMDocumentFragment; interface nsIDOMDocumentType; interface nsIDOMElement; interface nsIDOMNSElement; interface nsIDOMNamedNodeMap; interface nsIDOMNode; interface nsIDOMNodeList; Loading