diff --git a/mozilla/content/base/src/nsContentList.cpp b/mozilla/content/base/src/nsContentList.cpp index e118ff67128..dcab6a5be31 100644 --- a/mozilla/content/base/src/nsContentList.cpp +++ b/mozilla/content/base/src/nsContentList.cpp @@ -217,7 +217,7 @@ nsContentList::GetScriptObject(nsIScriptContext *aContext, void** aScriptObject) nsIScriptGlobalObject *global = aContext->GetGlobalObject(); if (nsnull == mScriptObject) { - res = NS_NewScriptHTMLCollection(aContext, this, global, (void**)&mScriptObject); + res = NS_NewScriptHTMLCollection(aContext, (nsISupports*)(nsIDOMHTMLCollection*)this, global, (void**)&mScriptObject); } *aScriptObject = mScriptObject; diff --git a/mozilla/content/base/src/nsDocument.cpp b/mozilla/content/base/src/nsDocument.cpp index a867e55bf20..1e7b9dfcb3c 100644 --- a/mozilla/content/base/src/nsDocument.cpp +++ b/mozilla/content/base/src/nsDocument.cpp @@ -570,7 +570,7 @@ nsresult nsDocument::GetScriptObject(nsIScriptContext *aContext, void** aScriptO nsIScriptGlobalObject *global = aContext->GetGlobalObject(); if (nsnull == mScriptObject) { - res = NS_NewScriptDocument(aContext, this, global, (void**)&mScriptObject); + res = NS_NewScriptDocument(aContext, (nsISupports *)(nsIDOMDocument *)this, global, (void**)&mScriptObject); } *aScriptObject = mScriptObject; @@ -1102,6 +1102,13 @@ void nsDocument::Finalize(JSContext *aContext) { } +PRBool +nsDocument::Construct(JSContext *cx, JSObject *obj, uintN argc, + jsval *argv, jsval *rval) +{ + return PR_FALSE; +} + /** * Returns the Selection Object */ diff --git a/mozilla/content/base/src/nsDocument.h b/mozilla/content/base/src/nsDocument.h index 0c6e3c4b08f..53dde04835b 100644 --- a/mozilla/content/base/src/nsDocument.h +++ b/mozilla/content/base/src/nsDocument.h @@ -270,6 +270,8 @@ public: virtual PRBool Resolve(JSContext *aContext, jsval aID); virtual PRBool Convert(JSContext *aContext, jsval aID); virtual void Finalize(JSContext *aContext); + virtual PRBool Construct(JSContext *cx, JSObject *obj, uintN argc, + jsval *argv, jsval *rval); protected: nsIContent* FindContent(const nsIContent* aStartNode, diff --git a/mozilla/content/html/content/src/nsGenericHTMLElement.cpp b/mozilla/content/html/content/src/nsGenericHTMLElement.cpp index f8875987274..8e9cb12ef1c 100644 --- a/mozilla/content/html/content/src/nsGenericHTMLElement.cpp +++ b/mozilla/content/html/content/src/nsGenericHTMLElement.cpp @@ -53,6 +53,9 @@ #include "nsDOMEvent.h" #include "nsIPrivateDOMEvent.h" #include "nsBodyFrame.h" +#include "nsDOMCID.h" +#include "nsIServiceManager.h" +#include "nsIDOMScriptObjectFactory.h" #include "prprf.h" // XXX todo: add in missing out-of-memory checks @@ -260,7 +263,9 @@ DOMAttribute::GetScriptObject(nsIScriptContext *aContext, { nsresult res = NS_OK; if (nsnull == mScriptObject) { - res = NS_NewScriptAttribute(aContext, this, nsnull, + res = NS_NewScriptAttribute(aContext, + (nsISupports *)(nsIDOMAttribute *)this, + nsnull, (void **)&mScriptObject); } *aScriptObject = mScriptObject; @@ -478,7 +483,9 @@ DOMAttributeMap::GetScriptObject(nsIScriptContext *aContext, { nsresult res = NS_OK; if (nsnull == mScriptObject) { - res = NS_NewScriptNamedNodeMap(aContext, this, nsnull, + res = NS_NewScriptNamedNodeMap(aContext, + (nsISupports *)(nsIDOMNamedNodeMap *)this, + nsnull, (void**)&mScriptObject); } *aScriptObject = mScriptObject; @@ -612,6 +619,31 @@ static void ReleaseAttributes(nsIHTMLAttributes*& aAttributes) NS_RELEASE(aAttributes); } +// XXX Currently, the script object factory is global. The way we +// obtain it should, at least, be made thread-safe later. Ideally, +// we'd find a better way. +nsIDOMScriptObjectFactory* nsGenericHTMLElement::gScriptObjectFactory = nsnull; + +static NS_DEFINE_IID(kIDOMScriptObjectFactoryIID, NS_IDOM_SCRIPT_OBJECT_FACTORY_IID); +static NS_DEFINE_IID(kDOMScriptObjectFactoryCID, NS_DOM_SCRIPT_OBJECT_FACTORY_CID); + +nsresult +nsGenericHTMLElement::GetScriptObjectFactory(nsIDOMScriptObjectFactory **aResult) +{ + nsresult result = NS_OK; + + if (nsnull == gScriptObjectFactory) { + result = nsServiceManager::GetService(kDOMScriptObjectFactoryCID, + kIDOMScriptObjectFactoryIID, + (nsISupports **)&gScriptObjectFactory); + if (result != NS_OK) { + return result; + } + } + + *aResult = gScriptObjectFactory; + return result; +} nsGenericHTMLElement::nsGenericHTMLElement() { @@ -1689,10 +1721,17 @@ nsGenericHTMLElement::GetScriptObject(nsIScriptContext* aContext, { nsresult res = NS_OK; if (nsnull == mScriptObject) { - nsIDOMElement* ele = nsnull; - mContent->QueryInterface(kIDOMElementIID, (void**) &ele); - res = NS_NewScriptElement(aContext, ele, mParent, (void**)&mScriptObject); - NS_RELEASE(ele); + nsIDOMScriptObjectFactory *factory; + + res = GetScriptObjectFactory(&factory); + if (NS_OK != res) { + return res; + } + + nsAutoString tag; + mTag->ToString(tag); + res = factory->NewScriptElement(tag, aContext, mContent, + mParent, (void**)&mScriptObject); } *aScriptObject = mScriptObject; return res; diff --git a/mozilla/content/html/content/src/nsGenericHTMLElement.h b/mozilla/content/html/content/src/nsGenericHTMLElement.h index b3c43f34824..78e0faf9858 100644 --- a/mozilla/content/html/content/src/nsGenericHTMLElement.h +++ b/mozilla/content/html/content/src/nsGenericHTMLElement.h @@ -43,6 +43,7 @@ class nsIHTMLContent; class nsIStyleContext; class nsIStyleRule; class nsISupportsArray; +class nsIDOMScriptObjectFactory; enum nsSetAttrNotify { eSetAttrNotify_None = 0, @@ -51,7 +52,8 @@ enum nsSetAttrNotify { eSetAttrNotify_Restart = 3 }; -struct nsGenericHTMLElement { +class nsGenericHTMLElement { +public: nsGenericHTMLElement(); ~nsGenericHTMLElement(); @@ -242,6 +244,10 @@ struct nsGenericHTMLElement { void MapBackgroundAttributesInto(nsIStyleContext* aContext, nsIPresContext* aPresContext); + static nsresult GetScriptObjectFactory(nsIDOMScriptObjectFactory **aFactory); + + static nsIDOMScriptObjectFactory *gScriptObjectFactory; + // Up pointer to the real content object that we are // supporting. Sometimes there is work that we just can't do // ourselves, so this is needed to ask the real object to do the @@ -258,7 +264,8 @@ struct nsGenericHTMLElement { //---------------------------------------------------------------------- -struct nsGenericHTMLLeafElement : public nsGenericHTMLElement { +class nsGenericHTMLLeafElement : public nsGenericHTMLElement { +public: nsGenericHTMLLeafElement(); ~nsGenericHTMLLeafElement(); @@ -338,7 +345,8 @@ struct nsGenericHTMLLeafElement : public nsGenericHTMLElement { //---------------------------------------------------------------------- -struct nsGenericHTMLContainerElement : public nsGenericHTMLElement { +class nsGenericHTMLContainerElement : public nsGenericHTMLElement { +public: nsGenericHTMLContainerElement(); ~nsGenericHTMLContainerElement(); diff --git a/mozilla/content/html/document/src/nsHTMLDocument.cpp b/mozilla/content/html/document/src/nsHTMLDocument.cpp index 42b207dda22..7033042cee1 100644 --- a/mozilla/content/html/document/src/nsHTMLDocument.cpp +++ b/mozilla/content/html/document/src/nsHTMLDocument.cpp @@ -1037,7 +1037,7 @@ nsHTMLDocument::GetScriptObject(nsIScriptContext *aContext, void** aScriptObject nsIScriptGlobalObject *global = aContext->GetGlobalObject(); if (nsnull == mScriptObject) { - res = NS_NewScriptHTMLDocument(aContext, this, (nsISupports *)global, (void**)&mScriptObject); + res = NS_NewScriptHTMLDocument(aContext, (nsISupports *)(nsIDOMHTMLDocument *)this, (nsISupports *)global, (void**)&mScriptObject); } *aScriptObject = mScriptObject; diff --git a/mozilla/dom/public/MANIFEST b/mozilla/dom/public/MANIFEST index 09322bd2e2c..f123cd9bfa0 100644 --- a/mozilla/dom/public/MANIFEST +++ b/mozilla/dom/public/MANIFEST @@ -26,3 +26,5 @@ nsIDOMWindow.h nsIDOMLocation.h nsIDOMNavigator.h nsIDOMWindowCollection.h +nsIDOMScriptObjectFactory +nsDOMCID.h \ No newline at end of file diff --git a/mozilla/dom/public/Makefile b/mozilla/dom/public/Makefile index d0c2b19a4b2..582fb4865ca 100644 --- a/mozilla/dom/public/Makefile +++ b/mozilla/dom/public/Makefile @@ -32,6 +32,8 @@ EXPORTS = \ nsIDOMNavigator.h \ nsIDOMLocation.h \ nsIDOMWindowCollection.h \ + nsIDOMScriptObjectFactory \ + nsDOMCID.h \ $(NULL) MODULE = dom diff --git a/mozilla/dom/public/coreDom/nsIDOMAttribute.h b/mozilla/dom/public/coreDom/nsIDOMAttribute.h index ad1c2ddc5ba..6a3adb02076 100644 --- a/mozilla/dom/public/coreDom/nsIDOMAttribute.h +++ b/mozilla/dom/public/coreDom/nsIDOMAttribute.h @@ -59,6 +59,6 @@ public: extern nsresult NS_InitAttributeClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptAttribute(nsIScriptContext *aContext, nsIDOMAttribute *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptAttribute(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMAttribute_h__ diff --git a/mozilla/dom/public/coreDom/nsIDOMCDATASection.h b/mozilla/dom/public/coreDom/nsIDOMCDATASection.h index 3b8046c289d..9146bc88235 100644 --- a/mozilla/dom/public/coreDom/nsIDOMCDATASection.h +++ b/mozilla/dom/public/coreDom/nsIDOMCDATASection.h @@ -44,6 +44,6 @@ public: extern nsresult NS_InitCDATASectionClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptCDATASection(nsIScriptContext *aContext, nsIDOMCDATASection *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptCDATASection(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMCDATASection_h__ diff --git a/mozilla/dom/public/coreDom/nsIDOMComment.h b/mozilla/dom/public/coreDom/nsIDOMComment.h index 2b9c4303b48..acef4650104 100644 --- a/mozilla/dom/public/coreDom/nsIDOMComment.h +++ b/mozilla/dom/public/coreDom/nsIDOMComment.h @@ -44,6 +44,6 @@ public: extern nsresult NS_InitCommentClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptComment(nsIScriptContext *aContext, nsIDOMComment *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptComment(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMComment_h__ diff --git a/mozilla/dom/public/coreDom/nsIDOMDOM.h b/mozilla/dom/public/coreDom/nsIDOMDOM.h index f055c28e0b5..2ac9315090d 100644 --- a/mozilla/dom/public/coreDom/nsIDOMDOM.h +++ b/mozilla/dom/public/coreDom/nsIDOMDOM.h @@ -52,6 +52,6 @@ public: extern nsresult NS_InitDOMClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptDOM(nsIScriptContext *aContext, nsIDOMDOM *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptDOM(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMDOM_h__ diff --git a/mozilla/dom/public/coreDom/nsIDOMData.h b/mozilla/dom/public/coreDom/nsIDOMData.h index 6250d009f5f..af763856ea2 100644 --- a/mozilla/dom/public/coreDom/nsIDOMData.h +++ b/mozilla/dom/public/coreDom/nsIDOMData.h @@ -75,6 +75,6 @@ public: extern nsresult NS_InitDataClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptData(nsIScriptContext *aContext, nsIDOMData *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptData(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMData_h__ diff --git a/mozilla/dom/public/coreDom/nsIDOMDocument.h b/mozilla/dom/public/coreDom/nsIDOMDocument.h index 55f959a7b5c..df69674b507 100644 --- a/mozilla/dom/public/coreDom/nsIDOMDocument.h +++ b/mozilla/dom/public/coreDom/nsIDOMDocument.h @@ -98,6 +98,6 @@ public: extern nsresult NS_InitDocumentClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptDocument(nsIScriptContext *aContext, nsIDOMDocument *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptDocument(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMDocument_h__ diff --git a/mozilla/dom/public/coreDom/nsIDOMDocumentFragment.h b/mozilla/dom/public/coreDom/nsIDOMDocumentFragment.h index bb265f1b593..0e89a68fb16 100644 --- a/mozilla/dom/public/coreDom/nsIDOMDocumentFragment.h +++ b/mozilla/dom/public/coreDom/nsIDOMDocumentFragment.h @@ -49,6 +49,6 @@ public: extern nsresult NS_InitDocumentFragmentClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptDocumentFragment(nsIScriptContext *aContext, nsIDOMDocumentFragment *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptDocumentFragment(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMDocumentFragment_h__ diff --git a/mozilla/dom/public/coreDom/nsIDOMDocumentType.h b/mozilla/dom/public/coreDom/nsIDOMDocumentType.h index 265dbfc40a7..fbd723f1d35 100644 --- a/mozilla/dom/public/coreDom/nsIDOMDocumentType.h +++ b/mozilla/dom/public/coreDom/nsIDOMDocumentType.h @@ -58,6 +58,6 @@ public: extern nsresult NS_InitDocumentTypeClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptDocumentType(nsIScriptContext *aContext, nsIDOMDocumentType *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptDocumentType(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMDocumentType_h__ diff --git a/mozilla/dom/public/coreDom/nsIDOMElement.h b/mozilla/dom/public/coreDom/nsIDOMElement.h index 864680bfd28..75bb6355d58 100644 --- a/mozilla/dom/public/coreDom/nsIDOMElement.h +++ b/mozilla/dom/public/coreDom/nsIDOMElement.h @@ -82,6 +82,6 @@ public: extern nsresult NS_InitElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptElement(nsIScriptContext *aContext, nsIDOMElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMElement_h__ diff --git a/mozilla/dom/public/coreDom/nsIDOMNamedNodeMap.h b/mozilla/dom/public/coreDom/nsIDOMNamedNodeMap.h index c7ea90ce71a..7e562738394 100644 --- a/mozilla/dom/public/coreDom/nsIDOMNamedNodeMap.h +++ b/mozilla/dom/public/coreDom/nsIDOMNamedNodeMap.h @@ -64,6 +64,6 @@ public: extern nsresult NS_InitNamedNodeMapClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptNamedNodeMap(nsIScriptContext *aContext, nsIDOMNamedNodeMap *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptNamedNodeMap(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMNamedNodeMap_h__ diff --git a/mozilla/dom/public/coreDom/nsIDOMNode.h b/mozilla/dom/public/coreDom/nsIDOMNode.h index da4cfd89a91..d74608e787b 100644 --- a/mozilla/dom/public/coreDom/nsIDOMNode.h +++ b/mozilla/dom/public/coreDom/nsIDOMNode.h @@ -129,6 +129,6 @@ public: extern nsresult NS_InitNodeClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptNode(nsIScriptContext *aContext, nsIDOMNode *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptNode(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMNode_h__ diff --git a/mozilla/dom/public/coreDom/nsIDOMNodeList.h b/mozilla/dom/public/coreDom/nsIDOMNodeList.h index 3c4ef536976..6638a7615ad 100644 --- a/mozilla/dom/public/coreDom/nsIDOMNodeList.h +++ b/mozilla/dom/public/coreDom/nsIDOMNodeList.h @@ -52,6 +52,6 @@ public: extern nsresult NS_InitNodeListClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptNodeList(nsIScriptContext *aContext, nsIDOMNodeList *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptNodeList(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMNodeList_h__ diff --git a/mozilla/dom/public/coreDom/nsIDOMProcessingInstruction.h b/mozilla/dom/public/coreDom/nsIDOMProcessingInstruction.h index ee470222989..0fe115a8ecb 100644 --- a/mozilla/dom/public/coreDom/nsIDOMProcessingInstruction.h +++ b/mozilla/dom/public/coreDom/nsIDOMProcessingInstruction.h @@ -58,6 +58,6 @@ public: extern nsresult NS_InitProcessingInstructionClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptProcessingInstruction(nsIScriptContext *aContext, nsIDOMProcessingInstruction *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptProcessingInstruction(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMProcessingInstruction_h__ diff --git a/mozilla/dom/public/coreDom/nsIDOMText.h b/mozilla/dom/public/coreDom/nsIDOMText.h index f4355c50c9f..bb385f0c894 100644 --- a/mozilla/dom/public/coreDom/nsIDOMText.h +++ b/mozilla/dom/public/coreDom/nsIDOMText.h @@ -53,6 +53,6 @@ public: extern nsresult NS_InitTextClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptText(nsIScriptContext *aContext, nsIDOMText *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptText(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMText_h__ diff --git a/mozilla/dom/public/coreEvents/nsIDOMEvent.h b/mozilla/dom/public/coreEvents/nsIDOMEvent.h index 6d656f355a6..c37e8d990d2 100644 --- a/mozilla/dom/public/coreEvents/nsIDOMEvent.h +++ b/mozilla/dom/public/coreEvents/nsIDOMEvent.h @@ -255,6 +255,6 @@ public: extern nsresult NS_InitEventClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptEvent(nsIScriptContext *aContext, nsIDOMEvent *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptEvent(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMEvent_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLAnchorElement.h b/mozilla/dom/public/html/nsIDOMHTMLAnchorElement.h index a557922ef14..441256a7a26 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLAnchorElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLAnchorElement.h @@ -136,6 +136,6 @@ public: extern nsresult NS_InitHTMLAnchorElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLAnchorElement(nsIScriptContext *aContext, nsIDOMHTMLAnchorElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLAnchorElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLAnchorElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLAppletElement.h b/mozilla/dom/public/html/nsIDOMHTMLAppletElement.h index 9e6fd3e21b8..248036a8624 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLAppletElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLAppletElement.h @@ -121,6 +121,6 @@ public: extern nsresult NS_InitHTMLAppletElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLAppletElement(nsIScriptContext *aContext, nsIDOMHTMLAppletElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLAppletElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLAppletElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLAreaElement.h b/mozilla/dom/public/html/nsIDOMHTMLAreaElement.h index f4d5dfb58d7..050d009645f 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLAreaElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLAreaElement.h @@ -100,6 +100,6 @@ public: extern nsresult NS_InitHTMLAreaElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLAreaElement(nsIScriptContext *aContext, nsIDOMHTMLAreaElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLAreaElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLAreaElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLBRElement.h b/mozilla/dom/public/html/nsIDOMHTMLBRElement.h index a36bc285c0b..2348bd845ed 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLBRElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLBRElement.h @@ -51,6 +51,6 @@ public: extern nsresult NS_InitHTMLBRElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLBRElement(nsIScriptContext *aContext, nsIDOMHTMLBRElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLBRElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLBRElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLBaseElement.h b/mozilla/dom/public/html/nsIDOMHTMLBaseElement.h index 52e365c658d..affb0ed8814 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLBaseElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLBaseElement.h @@ -58,6 +58,6 @@ public: extern nsresult NS_InitHTMLBaseElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLBaseElement(nsIScriptContext *aContext, nsIDOMHTMLBaseElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLBaseElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLBaseElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLBaseFontElement.h b/mozilla/dom/public/html/nsIDOMHTMLBaseFontElement.h index 17627435134..83705693418 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLBaseFontElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLBaseFontElement.h @@ -65,6 +65,6 @@ public: extern nsresult NS_InitHTMLBaseFontElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLBaseFontElement(nsIScriptContext *aContext, nsIDOMHTMLBaseFontElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLBaseFontElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLBaseFontElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLBodyElement.h b/mozilla/dom/public/html/nsIDOMHTMLBodyElement.h index 0e177d7ed9f..4db1e39043f 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLBodyElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLBodyElement.h @@ -86,6 +86,6 @@ public: extern nsresult NS_InitHTMLBodyElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLBodyElement(nsIScriptContext *aContext, nsIDOMHTMLBodyElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLBodyElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLBodyElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLButtonElement.h b/mozilla/dom/public/html/nsIDOMHTMLButtonElement.h index 7e608be04bc..b5ad6c8c21d 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLButtonElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLButtonElement.h @@ -94,6 +94,6 @@ public: extern nsresult NS_InitHTMLButtonElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLButtonElement(nsIScriptContext *aContext, nsIDOMHTMLButtonElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLButtonElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLButtonElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLCollection.h b/mozilla/dom/public/html/nsIDOMHTMLCollection.h index 66fd985739d..eadafce91cb 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLCollection.h +++ b/mozilla/dom/public/html/nsIDOMHTMLCollection.h @@ -56,6 +56,6 @@ public: extern nsresult NS_InitHTMLCollectionClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLCollection(nsIScriptContext *aContext, nsIDOMHTMLCollection *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLCollection(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLCollection_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLDListElement.h b/mozilla/dom/public/html/nsIDOMHTMLDListElement.h index a502eeb3408..dccc245837a 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLDListElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLDListElement.h @@ -51,6 +51,6 @@ public: extern nsresult NS_InitHTMLDListElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLDListElement(nsIScriptContext *aContext, nsIDOMHTMLDListElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLDListElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLDListElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLDelElement.h b/mozilla/dom/public/html/nsIDOMHTMLDelElement.h index bde728e87b4..f6f4fc89829 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLDelElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLDelElement.h @@ -58,6 +58,6 @@ public: extern nsresult NS_InitHTMLDelElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLDelElement(nsIScriptContext *aContext, nsIDOMHTMLDelElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLDelElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLDelElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLDirectoryElement.h b/mozilla/dom/public/html/nsIDOMHTMLDirectoryElement.h index 1620a853fe4..187056fbe42 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLDirectoryElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLDirectoryElement.h @@ -51,6 +51,6 @@ public: extern nsresult NS_InitHTMLDirectoryElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLDirectoryElement(nsIScriptContext *aContext, nsIDOMHTMLDirectoryElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLDirectoryElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLDirectoryElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLDivElement.h b/mozilla/dom/public/html/nsIDOMHTMLDivElement.h index aa1501fc95b..ee9f3460720 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLDivElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLDivElement.h @@ -51,6 +51,6 @@ public: extern nsresult NS_InitHTMLDivElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLDivElement(nsIScriptContext *aContext, nsIDOMHTMLDivElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLDivElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLDivElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLDocument.h b/mozilla/dom/public/html/nsIDOMHTMLDocument.h index 6a816d3e1e5..8214cc84b0c 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLDocument.h +++ b/mozilla/dom/public/html/nsIDOMHTMLDocument.h @@ -142,6 +142,6 @@ public: extern nsresult NS_InitHTMLDocumentClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLDocument(nsIScriptContext *aContext, nsIDOMHTMLDocument *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLDocument(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLDocument_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLElement.h b/mozilla/dom/public/html/nsIDOMHTMLElement.h index 050936f15c9..e072be0650b 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLElement.h @@ -79,6 +79,6 @@ public: extern nsresult NS_InitHTMLElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLElement(nsIScriptContext *aContext, nsIDOMHTMLElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLFontElement.h b/mozilla/dom/public/html/nsIDOMHTMLFontElement.h index f838269d5d2..f7c6fc80111 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLFontElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLFontElement.h @@ -65,6 +65,6 @@ public: extern nsresult NS_InitHTMLFontElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLFontElement(nsIScriptContext *aContext, nsIDOMHTMLFontElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLFontElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLFontElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLFormElement.h b/mozilla/dom/public/html/nsIDOMHTMLFormElement.h index c8348d5f45f..805d4ced20f 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLFormElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLFormElement.h @@ -96,6 +96,6 @@ public: extern nsresult NS_InitHTMLFormElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLFormElement(nsIScriptContext *aContext, nsIDOMHTMLFormElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLFormElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLFormElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLFrameElement.h b/mozilla/dom/public/html/nsIDOMHTMLFrameElement.h index b63d63e08d9..70ac1421acc 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLFrameElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLFrameElement.h @@ -100,6 +100,6 @@ public: extern nsresult NS_InitHTMLFrameElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLFrameElement(nsIScriptContext *aContext, nsIDOMHTMLFrameElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLFrameElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLFrameElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLFrameSetElement.h b/mozilla/dom/public/html/nsIDOMHTMLFrameSetElement.h index 79fe5605669..d520b8c139d 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLFrameSetElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLFrameSetElement.h @@ -58,6 +58,6 @@ public: extern nsresult NS_InitHTMLFrameSetElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLFrameSetElement(nsIScriptContext *aContext, nsIDOMHTMLFrameSetElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLFrameSetElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLFrameSetElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLHRElement.h b/mozilla/dom/public/html/nsIDOMHTMLHRElement.h index 6b692b00a5c..ffb7fcdd187 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLHRElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLHRElement.h @@ -72,6 +72,6 @@ public: extern nsresult NS_InitHTMLHRElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLHRElement(nsIScriptContext *aContext, nsIDOMHTMLHRElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLHRElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLHRElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLHeadElement.h b/mozilla/dom/public/html/nsIDOMHTMLHeadElement.h index 2bd31e337e0..41147ae940a 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLHeadElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLHeadElement.h @@ -51,6 +51,6 @@ public: extern nsresult NS_InitHTMLHeadElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLHeadElement(nsIScriptContext *aContext, nsIDOMHTMLHeadElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLHeadElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLHeadElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLHeadingElement.h b/mozilla/dom/public/html/nsIDOMHTMLHeadingElement.h index c536a38c846..ada196912db 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLHeadingElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLHeadingElement.h @@ -51,6 +51,6 @@ public: extern nsresult NS_InitHTMLHeadingElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLHeadingElement(nsIScriptContext *aContext, nsIDOMHTMLHeadingElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLHeadingElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLHeadingElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLHtmlElement.h b/mozilla/dom/public/html/nsIDOMHTMLHtmlElement.h index af81775d8fd..a4d658aa4ba 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLHtmlElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLHtmlElement.h @@ -51,6 +51,6 @@ public: extern nsresult NS_InitHTMLHtmlElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLHtmlElement(nsIScriptContext *aContext, nsIDOMHTMLHtmlElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLHtmlElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLHtmlElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLIFrameElement.h b/mozilla/dom/public/html/nsIDOMHTMLIFrameElement.h index d968043c37f..62753dfaf71 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLIFrameElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLIFrameElement.h @@ -114,6 +114,6 @@ public: extern nsresult NS_InitHTMLIFrameElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLIFrameElement(nsIScriptContext *aContext, nsIDOMHTMLIFrameElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLIFrameElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLIFrameElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLImageElement.h b/mozilla/dom/public/html/nsIDOMHTMLImageElement.h index eb614106dee..f9815b93fe8 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLImageElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLImageElement.h @@ -135,6 +135,6 @@ public: extern nsresult NS_InitHTMLImageElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLImageElement(nsIScriptContext *aContext, nsIDOMHTMLImageElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLImageElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLImageElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLInputElement.h b/mozilla/dom/public/html/nsIDOMHTMLInputElement.h index f3766f55284..a0ff2293c55 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLInputElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLInputElement.h @@ -181,6 +181,6 @@ public: extern nsresult NS_InitHTMLInputElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLInputElement(nsIScriptContext *aContext, nsIDOMHTMLInputElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLInputElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLInputElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLInsElement.h b/mozilla/dom/public/html/nsIDOMHTMLInsElement.h index 9eea087ada9..c73c511cc7b 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLInsElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLInsElement.h @@ -58,6 +58,6 @@ public: extern nsresult NS_InitHTMLInsElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLInsElement(nsIScriptContext *aContext, nsIDOMHTMLInsElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLInsElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLInsElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLIsIndexElement.h b/mozilla/dom/public/html/nsIDOMHTMLIsIndexElement.h index 15a108af9f6..3e1f117cc7b 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLIsIndexElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLIsIndexElement.h @@ -59,6 +59,6 @@ public: extern nsresult NS_InitHTMLIsIndexElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLIsIndexElement(nsIScriptContext *aContext, nsIDOMHTMLIsIndexElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLIsIndexElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLIsIndexElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLLIElement.h b/mozilla/dom/public/html/nsIDOMHTMLLIElement.h index a58c4f949ad..c557b7fe97e 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLLIElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLLIElement.h @@ -58,6 +58,6 @@ public: extern nsresult NS_InitHTMLLIElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLLIElement(nsIScriptContext *aContext, nsIDOMHTMLLIElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLLIElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLLIElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLLabelElement.h b/mozilla/dom/public/html/nsIDOMHTMLLabelElement.h index 643ed4a1b26..32e0457c84b 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLLabelElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLLabelElement.h @@ -66,6 +66,6 @@ public: extern nsresult NS_InitHTMLLabelElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLLabelElement(nsIScriptContext *aContext, nsIDOMHTMLLabelElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLLabelElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLLabelElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLLegendElement.h b/mozilla/dom/public/html/nsIDOMHTMLLegendElement.h index 8c8333b951e..865d4e298a3 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLLegendElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLLegendElement.h @@ -66,6 +66,6 @@ public: extern nsresult NS_InitHTMLLegendElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLLegendElement(nsIScriptContext *aContext, nsIDOMHTMLLegendElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLLegendElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLLegendElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLLinkElement.h b/mozilla/dom/public/html/nsIDOMHTMLLinkElement.h index d2e8b6f3cd5..359cdca3728 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLLinkElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLLinkElement.h @@ -107,6 +107,6 @@ public: extern nsresult NS_InitHTMLLinkElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLLinkElement(nsIScriptContext *aContext, nsIDOMHTMLLinkElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLLinkElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLLinkElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLMapElement.h b/mozilla/dom/public/html/nsIDOMHTMLMapElement.h index 071ff3f7dfb..62ccd3802c0 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLMapElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLMapElement.h @@ -59,6 +59,6 @@ public: extern nsresult NS_InitHTMLMapElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLMapElement(nsIScriptContext *aContext, nsIDOMHTMLMapElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLMapElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLMapElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLMenuElement.h b/mozilla/dom/public/html/nsIDOMHTMLMenuElement.h index 1c36c66969f..08228bd8e73 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLMenuElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLMenuElement.h @@ -51,6 +51,6 @@ public: extern nsresult NS_InitHTMLMenuElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLMenuElement(nsIScriptContext *aContext, nsIDOMHTMLMenuElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLMenuElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLMenuElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLMetaElement.h b/mozilla/dom/public/html/nsIDOMHTMLMetaElement.h index 037f057ac71..62c1d7e1e00 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLMetaElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLMetaElement.h @@ -72,6 +72,6 @@ public: extern nsresult NS_InitHTMLMetaElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLMetaElement(nsIScriptContext *aContext, nsIDOMHTMLMetaElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLMetaElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLMetaElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLModElement.h b/mozilla/dom/public/html/nsIDOMHTMLModElement.h index 2f47414f600..87eed47c2a3 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLModElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLModElement.h @@ -58,6 +58,6 @@ public: extern nsresult NS_InitHTMLModElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLModElement(nsIScriptContext *aContext, nsIDOMHTMLModElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLModElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLModElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLOListElement.h b/mozilla/dom/public/html/nsIDOMHTMLOListElement.h index 7db8fd53544..41ec3480393 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLOListElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLOListElement.h @@ -65,6 +65,6 @@ public: extern nsresult NS_InitHTMLOListElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLOListElement(nsIScriptContext *aContext, nsIDOMHTMLOListElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLOListElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLOListElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLObjectElement.h b/mozilla/dom/public/html/nsIDOMHTMLObjectElement.h index 1e26c305972..c4d839b236d 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLObjectElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLObjectElement.h @@ -171,6 +171,6 @@ public: extern nsresult NS_InitHTMLObjectElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLObjectElement(nsIScriptContext *aContext, nsIDOMHTMLObjectElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLObjectElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLObjectElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLOptGroupElement.h b/mozilla/dom/public/html/nsIDOMHTMLOptGroupElement.h index 68d86dcadfc..555eb993b2a 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLOptGroupElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLOptGroupElement.h @@ -58,6 +58,6 @@ public: extern nsresult NS_InitHTMLOptGroupElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLOptGroupElement(nsIScriptContext *aContext, nsIDOMHTMLOptGroupElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLOptGroupElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLOptGroupElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLOptionElement.h b/mozilla/dom/public/html/nsIDOMHTMLOptionElement.h index 7364e10d3cc..8a5bcace074 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLOptionElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLOptionElement.h @@ -101,6 +101,6 @@ public: extern nsresult NS_InitHTMLOptionElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLOptionElement(nsIScriptContext *aContext, nsIDOMHTMLOptionElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLOptionElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLOptionElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLParagraphElement.h b/mozilla/dom/public/html/nsIDOMHTMLParagraphElement.h index b4a8ac66578..897422fd827 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLParagraphElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLParagraphElement.h @@ -51,6 +51,6 @@ public: extern nsresult NS_InitHTMLParagraphElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLParagraphElement(nsIScriptContext *aContext, nsIDOMHTMLParagraphElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLParagraphElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLParagraphElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLParamElement.h b/mozilla/dom/public/html/nsIDOMHTMLParamElement.h index 01edb44631d..f87ecde6fc1 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLParamElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLParamElement.h @@ -72,6 +72,6 @@ public: extern nsresult NS_InitHTMLParamElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLParamElement(nsIScriptContext *aContext, nsIDOMHTMLParamElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLParamElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLParamElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLPreElement.h b/mozilla/dom/public/html/nsIDOMHTMLPreElement.h index fcd7d3d45bb..7c818f81139 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLPreElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLPreElement.h @@ -51,6 +51,6 @@ public: extern nsresult NS_InitHTMLPreElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLPreElement(nsIScriptContext *aContext, nsIDOMHTMLPreElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLPreElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLPreElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLQuoteElement.h b/mozilla/dom/public/html/nsIDOMHTMLQuoteElement.h index 7b752f8f3ab..9d8de1a0ea6 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLQuoteElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLQuoteElement.h @@ -51,6 +51,6 @@ public: extern nsresult NS_InitHTMLQuoteElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLQuoteElement(nsIScriptContext *aContext, nsIDOMHTMLQuoteElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLQuoteElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLQuoteElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLScriptElement.h b/mozilla/dom/public/html/nsIDOMHTMLScriptElement.h index 6ec61d3eb70..c7d981399b0 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLScriptElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLScriptElement.h @@ -93,6 +93,6 @@ public: extern nsresult NS_InitHTMLScriptElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLScriptElement(nsIScriptContext *aContext, nsIDOMHTMLScriptElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLScriptElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLScriptElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLSelectElement.h b/mozilla/dom/public/html/nsIDOMHTMLSelectElement.h index ff68f6b80b5..5aee6fa427b 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLSelectElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLSelectElement.h @@ -140,6 +140,6 @@ public: extern nsresult NS_InitHTMLSelectElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLSelectElement(nsIScriptContext *aContext, nsIDOMHTMLSelectElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLSelectElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLSelectElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLStyleElement.h b/mozilla/dom/public/html/nsIDOMHTMLStyleElement.h index 9dc24ba7fb7..9502bed8ce3 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLStyleElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLStyleElement.h @@ -65,6 +65,6 @@ public: extern nsresult NS_InitHTMLStyleElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLStyleElement(nsIScriptContext *aContext, nsIDOMHTMLStyleElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLStyleElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLStyleElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLTableCaptionElement.h b/mozilla/dom/public/html/nsIDOMHTMLTableCaptionElement.h index 9b0c7522fd9..39966e62b24 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLTableCaptionElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLTableCaptionElement.h @@ -51,6 +51,6 @@ public: extern nsresult NS_InitHTMLTableCaptionElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLTableCaptionElement(nsIScriptContext *aContext, nsIDOMHTMLTableCaptionElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLTableCaptionElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLTableCaptionElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLTableCellElement.h b/mozilla/dom/public/html/nsIDOMHTMLTableCellElement.h index 4ebd25e955a..4d8f2fe283c 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLTableCellElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLTableCellElement.h @@ -149,6 +149,6 @@ public: extern nsresult NS_InitHTMLTableCellElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLTableCellElement(nsIScriptContext *aContext, nsIDOMHTMLTableCellElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLTableCellElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLTableCellElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLTableColElement.h b/mozilla/dom/public/html/nsIDOMHTMLTableColElement.h index 6a995c639cb..80aa048b13f 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLTableColElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLTableColElement.h @@ -86,6 +86,6 @@ public: extern nsresult NS_InitHTMLTableColElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLTableColElement(nsIScriptContext *aContext, nsIDOMHTMLTableColElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLTableColElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLTableColElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLTableElement.h b/mozilla/dom/public/html/nsIDOMHTMLTableElement.h index 9bea0802d4d..832fa56d6d1 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLTableElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLTableElement.h @@ -178,6 +178,6 @@ public: extern nsresult NS_InitHTMLTableElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLTableElement(nsIScriptContext *aContext, nsIDOMHTMLTableElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLTableElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLTableElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLTableRowElement.h b/mozilla/dom/public/html/nsIDOMHTMLTableRowElement.h index e046bd3ae85..96f317bb70e 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLTableRowElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLTableRowElement.h @@ -110,6 +110,6 @@ public: extern nsresult NS_InitHTMLTableRowElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLTableRowElement(nsIScriptContext *aContext, nsIDOMHTMLTableRowElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLTableRowElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLTableRowElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLTableSectionElement.h b/mozilla/dom/public/html/nsIDOMHTMLTableSectionElement.h index 60d636278d0..22e390344ca 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLTableSectionElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLTableSectionElement.h @@ -75,6 +75,6 @@ public: extern nsresult NS_InitHTMLTableSectionElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLTableSectionElement(nsIScriptContext *aContext, nsIDOMHTMLTableSectionElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLTableSectionElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLTableSectionElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLTbodyElement.h b/mozilla/dom/public/html/nsIDOMHTMLTbodyElement.h index f9ee3ce2cc0..4669af46e2c 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLTbodyElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLTbodyElement.h @@ -72,6 +72,6 @@ public: extern nsresult NS_InitHTMLTbodyElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLTbodyElement(nsIScriptContext *aContext, nsIDOMHTMLTbodyElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLTbodyElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLTbodyElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLTextAreaElement.h b/mozilla/dom/public/html/nsIDOMHTMLTextAreaElement.h index ebecfb8d6b0..91be1bee2e6 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLTextAreaElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLTextAreaElement.h @@ -120,6 +120,6 @@ public: extern nsresult NS_InitHTMLTextAreaElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLTextAreaElement(nsIScriptContext *aContext, nsIDOMHTMLTextAreaElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLTextAreaElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLTextAreaElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLTfootElement.h b/mozilla/dom/public/html/nsIDOMHTMLTfootElement.h index 7e45034e53e..1d9a62f14e2 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLTfootElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLTfootElement.h @@ -72,6 +72,6 @@ public: extern nsresult NS_InitHTMLTfootElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLTfootElement(nsIScriptContext *aContext, nsIDOMHTMLTfootElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLTfootElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLTfootElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLTheadElement.h b/mozilla/dom/public/html/nsIDOMHTMLTheadElement.h index 694801ab614..5b5b5c819a7 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLTheadElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLTheadElement.h @@ -72,6 +72,6 @@ public: extern nsresult NS_InitHTMLTheadElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLTheadElement(nsIScriptContext *aContext, nsIDOMHTMLTheadElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLTheadElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLTheadElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLTitleElement.h b/mozilla/dom/public/html/nsIDOMHTMLTitleElement.h index 85ac63fce9f..33bb489ca6b 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLTitleElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLTitleElement.h @@ -51,6 +51,6 @@ public: extern nsresult NS_InitHTMLTitleElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLTitleElement(nsIScriptContext *aContext, nsIDOMHTMLTitleElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLTitleElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLTitleElement_h__ diff --git a/mozilla/dom/public/html/nsIDOMHTMLUListElement.h b/mozilla/dom/public/html/nsIDOMHTMLUListElement.h index a76e9ffecaf..70e4700444f 100644 --- a/mozilla/dom/public/html/nsIDOMHTMLUListElement.h +++ b/mozilla/dom/public/html/nsIDOMHTMLUListElement.h @@ -58,6 +58,6 @@ public: extern nsresult NS_InitHTMLUListElementClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptHTMLUListElement(nsIScriptContext *aContext, nsIDOMHTMLUListElement *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptHTMLUListElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMHTMLUListElement_h__ diff --git a/mozilla/dom/public/makefile.win b/mozilla/dom/public/makefile.win index 8986893460b..4cbf00e1352 100644 --- a/mozilla/dom/public/makefile.win +++ b/mozilla/dom/public/makefile.win @@ -23,7 +23,7 @@ DEFINES=-D_IMPL_NS_DOM EXPORTS=nsIScriptContext.h nsIJSScriptObject.h nsIScriptObjectOwner.h \ nsIScriptGlobalObject.h nsIDOMWindow.h nsIScriptContextOwner.h \ nsIDOMNavigator.h nsIScriptEventListener.h nsIDOMLocation.h \ - nsIDOMWindowCollection.h + nsIDOMWindowCollection.h nsIDOMScriptObjectFactory.h nsDOMCID.h MODULE=dom diff --git a/mozilla/dom/public/nsDOMCID.h b/mozilla/dom/public/nsDOMCID.h new file mode 100644 index 00000000000..31367270eef --- /dev/null +++ b/mozilla/dom/public/nsDOMCID.h @@ -0,0 +1,31 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (the "NPL"); you may not use this file except in + * compliance with the NPL. You may obtain a copy of the NPL at + * http://www.mozilla.org/NPL/ + * + * Software distributed under the NPL is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL + * for the specific language governing rights and limitations under the + * NPL. + * + * The Initial Developer of this code under the NPL is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All Rights + * Reserved. + */ + +#ifndef nsDOMCID_h__ +#define nsDOMCID_h__ + +#include "nsISupports.h" +#include "nsIFactory.h" +#include "nsRepository.h" + +#define NS_DOM_SCRIPT_OBJECT_FACTORY_CID \ + { /* 9eb760f0-4380-11d2-b328-00805f8a3859 */ \ + 0x9eb760f0, 0x4380, 0x11d2, \ + {0xb3, 0x28, 0x00, 0x80, 0x5f, 0x8a, 0x38, 0x59} } + +#endif /* nsDOMCID_h__ */ diff --git a/mozilla/dom/public/nsIDOMLocation.h b/mozilla/dom/public/nsIDOMLocation.h index 2cd194eb177..1c04fb7d33f 100644 --- a/mozilla/dom/public/nsIDOMLocation.h +++ b/mozilla/dom/public/nsIDOMLocation.h @@ -108,6 +108,6 @@ public: extern nsresult NS_InitLocationClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptLocation(nsIScriptContext *aContext, nsIDOMLocation *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptLocation(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMLocation_h__ diff --git a/mozilla/dom/public/nsIDOMNavigator.h b/mozilla/dom/public/nsIDOMNavigator.h index 1f3b287d3c0..05af300f96e 100644 --- a/mozilla/dom/public/nsIDOMNavigator.h +++ b/mozilla/dom/public/nsIDOMNavigator.h @@ -75,6 +75,6 @@ public: extern nsresult NS_InitNavigatorClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptNavigator(nsIScriptContext *aContext, nsIDOMNavigator *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptNavigator(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMNavigator_h__ diff --git a/mozilla/dom/public/nsIDOMScriptObjectFactory.h b/mozilla/dom/public/nsIDOMScriptObjectFactory.h new file mode 100644 index 00000000000..f7aa763092c --- /dev/null +++ b/mozilla/dom/public/nsIDOMScriptObjectFactory.h @@ -0,0 +1,98 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (the "NPL"); you may not use this file except in + * compliance with the NPL. You may obtain a copy of the NPL at + * http://www.mozilla.org/NPL/ + * + * Software distributed under the NPL is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL + * for the specific language governing rights and limitations under the + * NPL. + * + * The Initial Developer of this code under the NPL is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All Rights + * Reserved. + */ + +#ifndef nsIDOMScriptObjectFactory_h__ +#define nsIDOMScriptObjectFactory_h__ + +#include "nsISupports.h" +#include "nsString.h" + +#define NS_IDOM_SCRIPT_OBJECT_FACTORY_IID \ +{ 0xa6cf9064, 0x15b3, 0x11d2, \ + { 0x93, 0x2e, 0x00, 0x80, 0x5f, 0x8a, 0xdd, 0x32 } } + +class nsIScriptContext; + +class nsIDOMScriptObjectFactory : public nsISupports { +public: + NS_IMETHOD NewScriptAttribute(nsIScriptContext *aContext, + nsISupports *aAttribute, + nsISupports *aParent, + void** aReturn)=0; + + NS_IMETHOD NewScriptComment(nsIScriptContext *aContext, + nsISupports *aComment, + nsISupports *aParent, + void** aReturn)=0; + + NS_IMETHOD NewScriptDocument(const nsString &aDocType, + nsIScriptContext *aContext, + nsISupports *aDocFrag, + nsISupports *aParent, + void** aReturn)=0; + + NS_IMETHOD NewScriptDocumentFragment(nsIScriptContext *aContext, + nsISupports *aDocFrag, + nsISupports *aParent, + void** aReturn)=0; + + NS_IMETHOD NewScriptDocumentType(nsIScriptContext *aContext, + nsISupports *aDocType, + nsISupports *aParent, + void** aReturn)=0; + + NS_IMETHOD NewScriptDOM(nsIScriptContext *aContext, + nsISupports *aDOM, + nsISupports *aParent, + void** aReturn)=0; + + NS_IMETHOD NewScriptData(const int aNodeType, + nsIScriptContext *aContext, + nsISupports *aData, + nsISupports *aParent, + void** aReturn)=0; + + NS_IMETHOD NewScriptElement(const nsString &aTagName, + nsIScriptContext *aContext, + nsISupports *aElement, + nsISupports *aParent, + void **aReturn)=0; + + NS_IMETHOD NewScriptHTMLCollection(nsIScriptContext *aContext, + nsISupports *aCollection, + nsISupports *aParent, + void** aReturn)=0; + + NS_IMETHOD NewScriptNamedNodeMap(nsIScriptContext *aContext, + nsISupports *aNodeMap, + nsISupports *aParent, + void** aReturn)=0; + + NS_IMETHOD NewScriptNodeList(nsIScriptContext *aContext, + nsISupports *aNodeList, + nsISupports *aParent, + void** aReturn)=0; + + NS_IMETHOD NewScriptProcessingInstruction(nsIScriptContext *aContext, + nsISupports *aPI, + nsISupports *aParent, + void** aReturn)=0; + +}; + +#endif /* nsIDOMScriptObjectFactory_h__ */ diff --git a/mozilla/dom/public/nsIDOMWindow.h b/mozilla/dom/public/nsIDOMWindow.h index d971fdec5a0..4ce9d698c5f 100644 --- a/mozilla/dom/public/nsIDOMWindow.h +++ b/mozilla/dom/public/nsIDOMWindow.h @@ -148,6 +148,6 @@ public: extern nsresult NS_InitWindowClass(nsIScriptContext *aContext, nsIScriptGlobalObject *aGlobal); -extern "C" NS_DOM nsresult NS_NewScriptWindow(nsIScriptContext *aContext, nsIDOMWindow *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptWindow(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMWindow_h__ diff --git a/mozilla/dom/public/nsIDOMWindowCollection.h b/mozilla/dom/public/nsIDOMWindowCollection.h index dd6d1cf21f2..240d73235fe 100644 --- a/mozilla/dom/public/nsIDOMWindowCollection.h +++ b/mozilla/dom/public/nsIDOMWindowCollection.h @@ -56,6 +56,6 @@ public: extern nsresult NS_InitWindowCollectionClass(nsIScriptContext *aContext, void **aPrototype); -extern "C" NS_DOM nsresult NS_NewScriptWindowCollection(nsIScriptContext *aContext, nsIDOMWindowCollection *aSupports, nsISupports *aParent, void **aReturn); +extern "C" NS_DOM nsresult NS_NewScriptWindowCollection(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn); #endif // nsIDOMWindowCollection_h__ diff --git a/mozilla/dom/public/nsIJSScriptObject.h b/mozilla/dom/public/nsIJSScriptObject.h index 54f6aeec1e3..33b7be0c262 100644 --- a/mozilla/dom/public/nsIJSScriptObject.h +++ b/mozilla/dom/public/nsIJSScriptObject.h @@ -37,14 +37,20 @@ */ class nsIJSScriptObject : public nsISupports { public: - virtual PRBool AddProperty(JSContext *aContext, jsval aID, jsval *aVp) = 0; - virtual PRBool DeleteProperty(JSContext *aContext, jsval aID, jsval *aVp) = 0; - virtual PRBool GetProperty(JSContext *aContext, jsval aID, jsval *aVp) = 0; - virtual PRBool SetProperty(JSContext *aContext, jsval aID, jsval *aVp) = 0; + virtual PRBool AddProperty(JSContext *aContext, jsval aID, + jsval *aVp) = 0; + virtual PRBool DeleteProperty(JSContext *aContext, jsval aID, + jsval *aVp) = 0; + virtual PRBool GetProperty(JSContext *aContext, jsval aID, + jsval *aVp) = 0; + virtual PRBool SetProperty(JSContext *aContext, jsval aID, + jsval *aVp) = 0; virtual PRBool EnumerateProperty(JSContext *aContext) = 0; virtual PRBool Resolve(JSContext *aContext, jsval aID) = 0; virtual PRBool Convert(JSContext *aContext, jsval aID) = 0; virtual void Finalize(JSContext *aContext) = 0; + virtual PRBool Construct(JSContext *cx, JSObject *obj, uintN argc, + jsval *argv, jsval *rval) = 0; }; #endif // nsIJSScriptObject_h__ diff --git a/mozilla/dom/src/base/nsFrameList.cpp b/mozilla/dom/src/base/nsFrameList.cpp index 94d92e9fd08..caef4de3c3d 100644 --- a/mozilla/dom/src/base/nsFrameList.cpp +++ b/mozilla/dom/src/base/nsFrameList.cpp @@ -148,7 +148,7 @@ nsFrameList::GetScriptObject(nsIScriptContext *aContext, void** aScriptObject) nsIScriptGlobalObject *global = aContext->GetGlobalObject(); if (nsnull == mScriptObject) { - res = NS_NewScriptWindowCollection(aContext, this, global, (void**)&mScriptObject); + res = NS_NewScriptWindowCollection(aContext, (nsISupports *)(nsIDOMWindowCollection *)this, global, (void**)&mScriptObject); } *aScriptObject = mScriptObject; diff --git a/mozilla/dom/src/base/nsGlobalWindow.cpp b/mozilla/dom/src/base/nsGlobalWindow.cpp index b73b45a80da..ae420cf1a0c 100644 --- a/mozilla/dom/src/base/nsGlobalWindow.cpp +++ b/mozilla/dom/src/base/nsGlobalWindow.cpp @@ -1323,6 +1323,13 @@ GlobalWindowImpl::Finalize(JSContext *aContext) { } +PRBool +GlobalWindowImpl::Construct(JSContext *cx, JSObject *obj, uintN argc, + jsval *argv, jsval *rval) +{ + return PR_FALSE; +} + nsresult GlobalWindowImpl::GetListenerManager(nsIEventListenerManager **aInstancePtrResult) { @@ -1518,7 +1525,7 @@ NavigatorImpl::GetScriptObject(nsIScriptContext *aContext, void** aScriptObject) nsresult res = NS_OK; if (nsnull == mScriptObject) { nsIScriptGlobalObject *global = aContext->GetGlobalObject(); - res = NS_NewScriptNavigator(aContext, this, global, &mScriptObject); + res = NS_NewScriptNavigator(aContext, (nsISupports *)(nsIDOMNavigator *)this, global, &mScriptObject); NS_IF_RELEASE(global); } diff --git a/mozilla/dom/src/base/nsGlobalWindow.h b/mozilla/dom/src/base/nsGlobalWindow.h index 19fbe9a2f75..9846c7e6524 100644 --- a/mozilla/dom/src/base/nsGlobalWindow.h +++ b/mozilla/dom/src/base/nsGlobalWindow.h @@ -123,6 +123,8 @@ public: virtual PRBool Resolve(JSContext *aContext, jsval aID); virtual PRBool Convert(JSContext *aContext, jsval aID); virtual void Finalize(JSContext *aContext); + virtual PRBool Construct(JSContext *cx, JSObject *obj, uintN argc, + jsval *argv, jsval *rval); friend void nsGlobalWindow_RunTimeout(nsITimer *aTimer, void *aClosure); diff --git a/mozilla/dom/src/base/nsJSLocation.cpp b/mozilla/dom/src/base/nsJSLocation.cpp index 3a6b2a84d89..fe768b2edc7 100644 --- a/mozilla/dom/src/base/nsJSLocation.cpp +++ b/mozilla/dom/src/base/nsJSLocation.cpp @@ -544,7 +544,18 @@ static JSFunctionSpec LocationMethods[] = PR_STATIC_CALLBACK(JSBool) Location(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMLocation *a = (nsIDOMLocation*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -598,13 +609,15 @@ nsresult NS_InitLocationClass(nsIScriptContext *aContext, void **aPrototype) // // Method for creating a new Location JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptLocation(nsIScriptContext *aContext, nsIDOMLocation *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptLocation(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptLocation"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMLocation *aLocation; if (nsnull == aParent) { parent = nsnull; @@ -624,14 +637,19 @@ extern "C" NS_DOM nsresult NS_NewScriptLocation(nsIScriptContext *aContext, nsID return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kILocationIID, (void **)&aLocation); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &LocationClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aLocation); } else { + NS_RELEASE(aLocation); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/base/nsJSNavigator.cpp b/mozilla/dom/src/base/nsJSNavigator.cpp index 44f7c951f11..8d3648b2f33 100644 --- a/mozilla/dom/src/base/nsJSNavigator.cpp +++ b/mozilla/dom/src/base/nsJSNavigator.cpp @@ -368,7 +368,18 @@ static JSFunctionSpec NavigatorMethods[] = PR_STATIC_CALLBACK(JSBool) Navigator(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMNavigator *a = (nsIDOMNavigator*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -422,13 +433,15 @@ nsresult NS_InitNavigatorClass(nsIScriptContext *aContext, void **aPrototype) // // Method for creating a new Navigator JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptNavigator(nsIScriptContext *aContext, nsIDOMNavigator *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptNavigator(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptNavigator"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMNavigator *aNavigator; if (nsnull == aParent) { parent = nsnull; @@ -448,14 +461,19 @@ extern "C" NS_DOM nsresult NS_NewScriptNavigator(nsIScriptContext *aContext, nsI return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kINavigatorIID, (void **)&aNavigator); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &NavigatorClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aNavigator); } else { + NS_RELEASE(aNavigator); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/base/nsJSWindow.cpp b/mozilla/dom/src/base/nsJSWindow.cpp index b44a5700b34..0b94205101d 100644 --- a/mozilla/dom/src/base/nsJSWindow.cpp +++ b/mozilla/dom/src/base/nsJSWindow.cpp @@ -970,7 +970,18 @@ static JSFunctionSpec WindowMethods[] = PR_STATIC_CALLBACK(JSBool) Window(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMWindow *a = (nsIDOMWindow*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -993,7 +1004,7 @@ nsresult NS_InitWindowClass(nsIScriptContext *aContext, // // Method for creating a new Window JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptWindow(nsIScriptContext *aContext, nsIDOMWindow *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptWindow(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null arg"); JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); diff --git a/mozilla/dom/src/base/nsJSWindowCollection.cpp b/mozilla/dom/src/base/nsJSWindowCollection.cpp index cc9f3b51679..279d039a58a 100644 --- a/mozilla/dom/src/base/nsJSWindowCollection.cpp +++ b/mozilla/dom/src/base/nsJSWindowCollection.cpp @@ -421,7 +421,18 @@ static JSFunctionSpec WindowCollectionMethods[] = PR_STATIC_CALLBACK(JSBool) WindowCollection(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMWindowCollection *a = (nsIDOMWindowCollection*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -475,13 +486,15 @@ nsresult NS_InitWindowCollectionClass(nsIScriptContext *aContext, void **aProtot // // Method for creating a new WindowCollection JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptWindowCollection(nsIScriptContext *aContext, nsIDOMWindowCollection *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptWindowCollection(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptWindowCollection"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMWindowCollection *aWindowCollection; if (nsnull == aParent) { parent = nsnull; @@ -501,14 +514,19 @@ extern "C" NS_DOM nsresult NS_NewScriptWindowCollection(nsIScriptContext *aConte return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIWindowCollectionIID, (void **)&aWindowCollection); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &WindowCollectionClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aWindowCollection); } else { + NS_RELEASE(aWindowCollection); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/base/nsLocation.cpp b/mozilla/dom/src/base/nsLocation.cpp index 6dde6ef1aba..98a3c86182b 100644 --- a/mozilla/dom/src/base/nsLocation.cpp +++ b/mozilla/dom/src/base/nsLocation.cpp @@ -79,7 +79,7 @@ LocationImpl::GetScriptObject(nsIScriptContext *aContext, void** aScriptObject) nsresult res = NS_OK; if (nsnull == mScriptObject) { nsIScriptGlobalObject *global = aContext->GetGlobalObject(); - res = NS_NewScriptLocation(aContext, this, global, &mScriptObject); + res = NS_NewScriptLocation(aContext, (nsISupports *)(nsIDOMLocation *)this, global, &mScriptObject); NS_IF_RELEASE(global); } diff --git a/mozilla/dom/src/build/Makefile b/mozilla/dom/src/build/Makefile index 711c350524e..0874cd33dbd 100644 --- a/mozilla/dom/src/build/Makefile +++ b/mozilla/dom/src/build/Makefile @@ -27,7 +27,7 @@ MODULE=raptor REQUIRES=xpcom raptor -CPPSRCS=dlldeps.cpp +CPPSRCS=nsDOMFactory.cpp nsHTMLTagsEnums.cpp INCLUDES += -I$(PUBLIC)/xpcom -I$(PUBLIC)/raptor \ -I$(PUBLIC)/dom -I$(PUBLIC)/js -I../base -I$(PUBLIC)/jsurl diff --git a/mozilla/dom/src/build/makefile.win b/mozilla/dom/src/build/makefile.win index ab8f01dae7b..a9f53439dae 100644 --- a/mozilla/dom/src/build/makefile.win +++ b/mozilla/dom/src/build/makefile.win @@ -22,9 +22,9 @@ DEFINES=-D_IMPL_NS_DOM MODULE=raptor REQUIRES=xpcom raptor dom -CPPSRCS=dlldeps.cpp +CPPSRCS=nsDOMFactory.cpp nsHTMLTagsEnums.cpp -CPP_OBJS=.\$(OBJDIR)\dlldeps.obj +CPP_OBJS=.\$(OBJDIR)\nsDOMFactory.obj .\$(OBJDIR)\nsHTMLTagsEnums.obj LINCS=-I$(PUBLIC)\xpcom -I$(PUBLIC)\raptor \ -I$(PUBLIC)\dom -I$(PUBLIC)\js -I..\base -I$(PUBLIC)\jsurl diff --git a/mozilla/dom/src/build/nsDOMFactory.cpp b/mozilla/dom/src/build/nsDOMFactory.cpp new file mode 100644 index 00000000000..6ad05235241 --- /dev/null +++ b/mozilla/dom/src/build/nsDOMFactory.cpp @@ -0,0 +1,590 @@ +/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (the "NPL"); you may not use this file except in + * compliance with the NPL. You may obtain a copy of the NPL at + * http://www.mozilla.org/NPL/ + * + * Software distributed under the NPL is distributed on an "AS IS" basis, + * WITHOUT WARRANTY OF ANY KIND, either express or implied. See the NPL + * for the specific language governing rights and limitations under the + * NPL. + * + * The Initial Developer of this code under the NPL is Netscape + * Communications Corporation. Portions created by Netscape are + * Copyright (C) 1998 Netscape Communications Corporation. All Rights + * Reserved. + */ +#include "nscore.h" +#include "nsIFactory.h" +#include "nsISupports.h" + +#include "nsJSEnvironment.h" +#include "nsIScriptGlobalObject.h" +#include "nsDOMCID.h" +#include "nsIDOMScriptObjectFactory.h" +#include "nsIScriptEventListener.h" +#include "jsurl.h" +#include "nsIScriptContext.h" +#include "nsHTMLTagsEnums.h" +#include "nsIDOMAttribute.h" +#include "nsIDOMCDATASection.h" +#include "nsIDOMComment.h" +#include "nsIDOMDOM.h" +#include "nsIDOMData.h" +#include "nsIDOMDocument.h" +#include "nsIDOMDocumentFragment.h" +#include "nsIDOMDocumentType.h" +#include "nsIDOMElement.h" +#include "nsIDOMNamedNodeMap.h" +#include "nsIDOMNode.h" +#include "nsIDOMNodeList.h" +#include "nsIDOMProcessingInstruction.h" +#include "nsIDOMText.h" +#include "nsIDOMHTMLAnchorElement.h" +#include "nsIDOMHTMLAppletElement.h" +#include "nsIDOMHTMLAreaElement.h" +#include "nsIDOMHTMLBRElement.h" +#include "nsIDOMHTMLBaseElement.h" +#include "nsIDOMHTMLBaseFontElement.h" +#include "nsIDOMHTMLBodyElement.h" +#include "nsIDOMHTMLButtonElement.h" +#include "nsIDOMHTMLCollection.h" +#include "nsIDOMHTMLDListElement.h" +#include "nsIDOMHTMLDelElement.h" +#include "nsIDOMHTMLDirectoryElement.h" +#include "nsIDOMHTMLDivElement.h" +#include "nsIDOMHTMLDocument.h" +#include "nsIDOMHTMLElement.h" +#include "nsIDOMHTMLFontElement.h" +#include "nsIDOMHTMLFormElement.h" +#include "nsIDOMHTMLFrameElement.h" +#include "nsIDOMHTMLFrameSetElement.h" +#include "nsIDOMHTMLHRElement.h" +#include "nsIDOMHTMLHeadElement.h" +#include "nsIDOMHTMLHeadingElement.h" +#include "nsIDOMHTMLHtmlElement.h" +#include "nsIDOMHTMLIFrameElement.h" +#include "nsIDOMHTMLImageElement.h" +#include "nsIDOMHTMLInputElement.h" +#include "nsIDOMHTMLInsElement.h" +#include "nsIDOMHTMLIsIndexElement.h" +#include "nsIDOMHTMLLIElement.h" +#include "nsIDOMHTMLLabelElement.h" +#include "nsIDOMHTMLLegendElement.h" +#include "nsIDOMHTMLLinkElement.h" +#include "nsIDOMHTMLMapElement.h" +#include "nsIDOMHTMLMenuElement.h" +#include "nsIDOMHTMLMetaElement.h" +#include "nsIDOMHTMLModElement.h" +#include "nsIDOMHTMLOListElement.h" +#include "nsIDOMHTMLObjectElement.h" +#include "nsIDOMHTMLOptGroupElement.h" +#include "nsIDOMHTMLOptionElement.h" +#include "nsIDOMHTMLParagraphElement.h" +#include "nsIDOMHTMLParamElement.h" +#include "nsIDOMHTMLPreElement.h" +#include "nsIDOMHTMLQuoteElement.h" +#include "nsIDOMHTMLScriptElement.h" +#include "nsIDOMHTMLSelectElement.h" +#include "nsIDOMHTMLStyleElement.h" +#include "nsIDOMHTMLTableCaptionElement.h" +#include "nsIDOMHTMLTableCellElement.h" +#include "nsIDOMHTMLTableColElement.h" +#include "nsIDOMHTMLTableElement.h" +#include "nsIDOMHTMLTableRowElement.h" +#include "nsIDOMHTMLTableSectionElement.h" +#include "nsIDOMHTMLTbodyElement.h" +#include "nsIDOMHTMLTextAreaElement.h" +#include "nsIDOMHTMLTfootElement.h" +#include "nsIDOMHTMLTheadElement.h" +#include "nsIDOMHTMLTitleElement.h" +#include "nsIDOMHTMLUListElement.h" +#include "nsIDOMNSHTMLDocument.h" +#include "nsIDOMNSHTMLFormElement.h" +#include "nsIDOMNavigator.h" +#include "nsIDOMLocation.h" + +static NS_DEFINE_IID(kIDOMScriptObjectFactory, NS_IDOM_SCRIPT_OBJECT_FACTORY_IID); + +class nsDOMScriptObjectFactory : public nsIDOMScriptObjectFactory { +public: + nsDOMScriptObjectFactory(); + ~nsDOMScriptObjectFactory(); + + NS_DECL_ISUPPORTS + + NS_IMETHOD NewScriptAttribute(nsIScriptContext *aContext, + nsISupports *aAttribute, + nsISupports *aParent, + void** aReturn); + + NS_IMETHOD NewScriptComment(nsIScriptContext *aContext, + nsISupports *aComment, + nsISupports *aParent, + void** aReturn); + + NS_IMETHOD NewScriptDocument(const nsString &aDocType, + nsIScriptContext *aContext, + nsISupports *aDocFrag, + nsISupports *aParent, + void** aReturn); + + NS_IMETHOD NewScriptDocumentFragment(nsIScriptContext *aContext, + nsISupports *aDocFrag, + nsISupports *aParent, + void** aReturn); + + NS_IMETHOD NewScriptDocumentType(nsIScriptContext *aContext, + nsISupports *aDocType, + nsISupports *aParent, + void** aReturn); + + NS_IMETHOD NewScriptDOM(nsIScriptContext *aContext, + nsISupports *aDOM, + nsISupports *aParent, + void** aReturn); + + NS_IMETHOD NewScriptData(const int aNodeType, + nsIScriptContext *aContext, + nsISupports *aData, + nsISupports *aParent, + void** aReturn); + + NS_IMETHOD NewScriptElement(const nsString &aTagName, + nsIScriptContext *aContext, + nsISupports *aElement, + nsISupports *aParent, + void **aReturn); + + NS_IMETHOD NewScriptHTMLCollection(nsIScriptContext *aContext, + nsISupports *aCollection, + nsISupports *aParent, + void** aReturn); + + NS_IMETHOD NewScriptNamedNodeMap(nsIScriptContext *aContext, + nsISupports *aNodeMap, + nsISupports *aParent, + void** aReturn); + + NS_IMETHOD NewScriptNodeList(nsIScriptContext *aContext, + nsISupports *aNodeList, + nsISupports *aParent, + void** aReturn); + + NS_IMETHOD NewScriptProcessingInstruction(nsIScriptContext *aContext, + nsISupports *aPI, + nsISupports *aParent, + void** aReturn); + +}; + +nsDOMScriptObjectFactory::nsDOMScriptObjectFactory() +{ + NS_INIT_REFCNT(); +} + +nsDOMScriptObjectFactory::~nsDOMScriptObjectFactory() +{ +} + +NS_IMPL_ISUPPORTS(nsDOMScriptObjectFactory, kIDOMScriptObjectFactory); + +NS_IMETHODIMP +nsDOMScriptObjectFactory::NewScriptAttribute(nsIScriptContext *aContext, + nsISupports *aAttribute, + nsISupports *aParent, + void** aReturn) +{ + return NS_NewScriptAttribute(aContext, aAttribute, aParent, aReturn); +} + +NS_IMETHODIMP +nsDOMScriptObjectFactory::NewScriptComment(nsIScriptContext *aContext, + nsISupports *aComment, + nsISupports *aParent, + void** aReturn) +{ + return NS_NewScriptComment(aContext, aComment, aParent, aReturn); +} + +NS_IMETHODIMP +nsDOMScriptObjectFactory::NewScriptDocument(const nsString &aDocType, + nsIScriptContext *aContext, + nsISupports *aDocFrag, + nsISupports *aParent, + void** aReturn) +{ + return NS_NewScriptHTMLDocument(aContext, aDocFrag, aParent, aReturn); +} + +NS_IMETHODIMP +nsDOMScriptObjectFactory::NewScriptDocumentFragment(nsIScriptContext *aContext, + nsISupports *aDocFrag, + nsISupports *aParent, + void** aReturn) +{ + return NS_NewScriptDocumentFragment(aContext, aDocFrag, aParent, aReturn); +} + +NS_IMETHODIMP +nsDOMScriptObjectFactory::NewScriptDocumentType(nsIScriptContext *aContext, + nsISupports *aDocType, + nsISupports *aParent, + void** aReturn) +{ + return NS_NewScriptDocumentType(aContext, aDocType, aParent, aReturn); +} + +NS_IMETHODIMP +nsDOMScriptObjectFactory::NewScriptDOM(nsIScriptContext *aContext, + nsISupports *aDOM, + nsISupports *aParent, + void** aReturn) +{ + return NS_NewScriptDOM(aContext, aDOM, aParent, aReturn); +} + +NS_IMETHODIMP +nsDOMScriptObjectFactory::NewScriptData(const int aNodeType, + nsIScriptContext *aContext, + nsISupports *aData, + nsISupports *aParent, + void** aReturn) +{ + if (aNodeType == nsIDOMNode::CDATA_SECTION) { + return NS_NewScriptCDATASection(aContext, aData, aParent, aReturn); + } + else { + return NS_NewScriptText(aContext, aData, aParent, aReturn); + } +} + +NS_IMETHODIMP +nsDOMScriptObjectFactory::NewScriptElement(const nsString &aTagName, + nsIScriptContext *aContext, + nsISupports *aElement, + nsISupports *aParent, + void **aReturn) +{ + char *str = aTagName.ToNewCString(); + nsDOMHTMLTag tag = NS_DOMTagToEnum(str); + + if (str) { + delete str; + } + + switch (tag) { + case DOMHTMLTag_a: + return NS_NewScriptHTMLAnchorElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_applet: + return NS_NewScriptHTMLAppletElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_area: + return NS_NewScriptHTMLAreaElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_br: + return NS_NewScriptHTMLBRElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_base: + return NS_NewScriptHTMLBaseElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_basefont: + return NS_NewScriptHTMLBaseFontElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_body: + return NS_NewScriptHTMLBodyElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_button: + return NS_NewScriptHTMLButtonElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_dl: + return NS_NewScriptHTMLDListElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_dir: + return NS_NewScriptHTMLDirectoryElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_div: + return NS_NewScriptHTMLDivElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_font: + return NS_NewScriptHTMLFontElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_form: + return NS_NewScriptHTMLFormElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_frame: + return NS_NewScriptHTMLFrameElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_frameset: + return NS_NewScriptHTMLFrameSetElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_hr: + return NS_NewScriptHTMLHRElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_head: + return NS_NewScriptHTMLHeadElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_h1: + case DOMHTMLTag_h2: + case DOMHTMLTag_h3: + case DOMHTMLTag_h4: + case DOMHTMLTag_h5: + case DOMHTMLTag_h6: + return NS_NewScriptHTMLHeadingElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_html: + return NS_NewScriptHTMLHtmlElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_iframe: + return NS_NewScriptHTMLIFrameElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_img: + return NS_NewScriptHTMLImageElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_input: + return NS_NewScriptHTMLInputElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_isindex: + return NS_NewScriptHTMLIsIndexElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_li: + return NS_NewScriptHTMLLIElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_label: + return NS_NewScriptHTMLLabelElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_legend: + return NS_NewScriptHTMLLegendElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_link: + return NS_NewScriptHTMLLinkElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_map: + return NS_NewScriptHTMLMapElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_menu: + return NS_NewScriptHTMLMenuElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_meta: + return NS_NewScriptHTMLMetaElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_ins: + case DOMHTMLTag_del: + return NS_NewScriptHTMLModElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_ol: + return NS_NewScriptHTMLOListElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_object: + case DOMHTMLTag_embed: + // XXX Does embed need a different one? + return NS_NewScriptHTMLObjectElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_optgroup: + return NS_NewScriptHTMLOptGroupElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_option: + return NS_NewScriptHTMLOptionElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_p: + return NS_NewScriptHTMLParagraphElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_param: + return NS_NewScriptHTMLParamElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_pre: + return NS_NewScriptHTMLPreElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_q: + return NS_NewScriptHTMLQuoteElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_script: + return NS_NewScriptHTMLScriptElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_select: + return NS_NewScriptHTMLSelectElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_style: + return NS_NewScriptHTMLStyleElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_caption: + return NS_NewScriptHTMLTableCaptionElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_th: + case DOMHTMLTag_td: + return NS_NewScriptHTMLTableCellElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_col: + case DOMHTMLTag_colgroup: + return NS_NewScriptHTMLTableColElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_table: + return NS_NewScriptHTMLTableElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_tr: + return NS_NewScriptHTMLTableRowElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_thead: + case DOMHTMLTag_tbody: + case DOMHTMLTag_tfoot: + return NS_NewScriptHTMLTableSectionElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_textarea: + return NS_NewScriptHTMLTextAreaElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_title: + return NS_NewScriptHTMLTitleElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_ul: + return NS_NewScriptHTMLUListElement(aContext, aElement, aParent, aReturn); + case DOMHTMLTag_blockquote: + case DOMHTMLTag_fieldset: + case DOMHTMLTag_ilayer: + case DOMHTMLTag_layer: + case DOMHTMLTag_multicol: + case DOMHTMLTag_spacer: + case DOMHTMLTag_wbr: + // XXX There should be a separate interface for these + default: + return NS_NewScriptHTMLElement(aContext, aElement, aParent, aReturn); + } +} + +NS_IMETHODIMP +nsDOMScriptObjectFactory::NewScriptHTMLCollection(nsIScriptContext *aContext, + nsISupports *aCollection, + nsISupports *aParent, + void** aReturn) +{ + return NS_NewScriptHTMLCollection(aContext, aCollection, aParent, aReturn); +} + +NS_IMETHODIMP +nsDOMScriptObjectFactory::NewScriptNamedNodeMap(nsIScriptContext *aContext, + nsISupports *aNodeMap, + nsISupports *aParent, + void** aReturn) +{ + return NS_NewScriptNamedNodeMap(aContext, aNodeMap, aParent, aReturn); +} + +NS_IMETHODIMP +nsDOMScriptObjectFactory::NewScriptNodeList(nsIScriptContext *aContext, + nsISupports *aNodeList, + nsISupports *aParent, + void** aReturn) +{ + return NS_NewScriptNodeList(aContext, aNodeList, aParent, aReturn); +} + +NS_IMETHODIMP +nsDOMScriptObjectFactory::NewScriptProcessingInstruction(nsIScriptContext *aContext, + nsISupports *aPI, + nsISupports *aParent, + void** aReturn) +{ + return NS_NewScriptProcessingInstruction(aContext, aPI, aParent, aReturn); +} + + +////////////////////////////////////////////////////////////////////// + + +static NS_DEFINE_IID(kCDOMScriptObjectFactory, NS_DOM_SCRIPT_OBJECT_FACTORY_CID); + +static NS_DEFINE_IID(kISupportsIID, NS_ISUPPORTS_IID); +static NS_DEFINE_IID(kIFactoryIID, NS_IFACTORY_IID); + +class nsDOMFactory : public nsIFactory +{ + public: + // nsISupports methods + NS_IMETHOD QueryInterface(const nsIID &aIID, + void **aResult); + NS_IMETHOD_(nsrefcnt) AddRef(void); + NS_IMETHOD_(nsrefcnt) Release(void); + + // nsIFactory methods + NS_IMETHOD CreateInstance(nsISupports *aOuter, + const nsIID &aIID, + void **aResult); + + NS_IMETHOD LockFactory(PRBool aLock); + + nsDOMFactory(const nsCID &aClass); + + protected: + virtual ~nsDOMFactory(); + + private: + nsrefcnt mRefCnt; + nsCID mClassID; +}; + +nsDOMFactory::nsDOMFactory(const nsCID &aClass) +{ + mRefCnt = 0; + mClassID = aClass; +} + +nsDOMFactory::~nsDOMFactory() +{ + NS_ASSERTION(mRefCnt == 0, "non-zero refcnt at destruction"); +} + +nsresult nsDOMFactory::QueryInterface(const nsIID &aIID, + void **aResult) +{ + if (aResult == NULL) { + return NS_ERROR_NULL_POINTER; + } + + // Always NULL result, in case of failure + *aResult = NULL; + + if (aIID.Equals(kISupportsIID)) { + *aResult = (void *)(nsISupports*)this; + } else if (aIID.Equals(kIFactoryIID)) { + *aResult = (void *)(nsIFactory*)this; + } + + if (*aResult == NULL) { + return NS_NOINTERFACE; + } + + AddRef(); // Increase reference count for caller + return NS_OK; +} + +nsrefcnt nsDOMFactory::AddRef() +{ + return ++mRefCnt; +} + +nsrefcnt nsDOMFactory::Release() +{ + if (--mRefCnt == 0) { + delete this; + return 0; // Don't access mRefCnt after deleting! + } + return mRefCnt; +} + +nsresult nsDOMFactory::CreateInstance(nsISupports *aOuter, + const nsIID &aIID, + void **aResult) +{ + if (aResult == NULL) { + return NS_ERROR_NULL_POINTER; + } + + *aResult = NULL; + + nsISupports *inst = nsnull; + + if (mClassID.Equals(kCDOMScriptObjectFactory)) { + inst = (nsISupports *)new nsDOMScriptObjectFactory(); + } + + if (inst == NULL) { + return NS_ERROR_OUT_OF_MEMORY; + } + + nsresult res = inst->QueryInterface(aIID, aResult); + + if (res != NS_OK) { + // We didn't get the right interface, so clean up + delete inst; + } + + return res; +} + +nsresult nsDOMFactory::LockFactory(PRBool aLock) +{ + // Not implemented in simplest case. + return NS_OK; +} + +// return the proper factory to the caller +#ifdef XP_MAC +extern "C" NS_DOM nsresult NSGetFactory_DOM_DLL(const nsCID &aClass, nsIFactory **aFactory) +#else +extern "C" NS_DOM nsresult NSGetFactory(const nsCID &aClass, nsIFactory **aFactory) +#endif +{ + if (nsnull == aFactory) { + return NS_ERROR_NULL_POINTER; + } + + *aFactory = new nsDOMFactory(aClass); + + if (nsnull == aFactory) { + return NS_ERROR_OUT_OF_MEMORY; + } + + return (*aFactory)->QueryInterface(kIFactoryIID, (void**)aFactory); +} + + +void XXXDomNeverCalled() +{ + nsJSContext* jcx = new nsJSContext(0); + NS_NewScriptGlobalObject(0); + NS_NewScriptNavigator(0, 0, 0, 0); + NS_NewScriptLocation(0, 0, 0, 0); + NS_NewScriptEventListener(0, 0, 0); + NET_InitJavaScriptProtocol(); +} diff --git a/mozilla/dom/src/coreDOM/nsJSAttribute.cpp b/mozilla/dom/src/coreDOM/nsJSAttribute.cpp index 3bbad46e4eb..81062b68609 100644 --- a/mozilla/dom/src/coreDOM/nsJSAttribute.cpp +++ b/mozilla/dom/src/coreDOM/nsJSAttribute.cpp @@ -286,7 +286,18 @@ static JSFunctionSpec AttributeMethods[] = PR_STATIC_CALLBACK(JSBool) Attribute(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMAttribute *a = (nsIDOMAttribute*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -343,13 +354,15 @@ nsresult NS_InitAttributeClass(nsIScriptContext *aContext, void **aPrototype) // // Method for creating a new Attribute JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptAttribute(nsIScriptContext *aContext, nsIDOMAttribute *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptAttribute(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptAttribute"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMAttribute *aAttribute; if (nsnull == aParent) { parent = nsnull; @@ -369,14 +382,19 @@ extern "C" NS_DOM nsresult NS_NewScriptAttribute(nsIScriptContext *aContext, nsI return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIAttributeIID, (void **)&aAttribute); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &AttributeClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aAttribute); } else { + NS_RELEASE(aAttribute); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/coreDOM/nsJSCDATASection.cpp b/mozilla/dom/src/coreDOM/nsJSCDATASection.cpp index 1483b5714e6..c386bd07b87 100644 --- a/mozilla/dom/src/coreDOM/nsJSCDATASection.cpp +++ b/mozilla/dom/src/coreDOM/nsJSCDATASection.cpp @@ -224,7 +224,18 @@ static JSFunctionSpec CDATASectionMethods[] = PR_STATIC_CALLBACK(JSBool) CDATASection(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMCDATASection *a = (nsIDOMCDATASection*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -281,13 +292,15 @@ nsresult NS_InitCDATASectionClass(nsIScriptContext *aContext, void **aPrototype) // // Method for creating a new CDATASection JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptCDATASection(nsIScriptContext *aContext, nsIDOMCDATASection *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptCDATASection(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptCDATASection"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMCDATASection *aCDATASection; if (nsnull == aParent) { parent = nsnull; @@ -307,14 +320,19 @@ extern "C" NS_DOM nsresult NS_NewScriptCDATASection(nsIScriptContext *aContext, return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kICDATASectionIID, (void **)&aCDATASection); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &CDATASectionClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aCDATASection); } else { + NS_RELEASE(aCDATASection); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/coreDOM/nsJSComment.cpp b/mozilla/dom/src/coreDOM/nsJSComment.cpp index b233475a9c8..bf85a6e1bed 100644 --- a/mozilla/dom/src/coreDOM/nsJSComment.cpp +++ b/mozilla/dom/src/coreDOM/nsJSComment.cpp @@ -224,7 +224,18 @@ static JSFunctionSpec CommentMethods[] = PR_STATIC_CALLBACK(JSBool) Comment(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMComment *a = (nsIDOMComment*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -281,13 +292,15 @@ nsresult NS_InitCommentClass(nsIScriptContext *aContext, void **aPrototype) // // Method for creating a new Comment JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptComment(nsIScriptContext *aContext, nsIDOMComment *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptComment(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptComment"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMComment *aComment; if (nsnull == aParent) { parent = nsnull; @@ -307,14 +320,19 @@ extern "C" NS_DOM nsresult NS_NewScriptComment(nsIScriptContext *aContext, nsIDO return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kICommentIID, (void **)&aComment); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &CommentClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aComment); } else { + NS_RELEASE(aComment); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/coreDOM/nsJSDOM.cpp b/mozilla/dom/src/coreDOM/nsJSDOM.cpp index b6487f2ce9f..ec0921dd6c2 100644 --- a/mozilla/dom/src/coreDOM/nsJSDOM.cpp +++ b/mozilla/dom/src/coreDOM/nsJSDOM.cpp @@ -330,7 +330,18 @@ static JSFunctionSpec DOMMethods[] = PR_STATIC_CALLBACK(JSBool) DOM(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMDOM *a = (nsIDOMDOM*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -384,13 +395,15 @@ nsresult NS_InitDOMClass(nsIScriptContext *aContext, void **aPrototype) // // Method for creating a new DOM JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptDOM(nsIScriptContext *aContext, nsIDOMDOM *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptDOM(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptDOM"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMDOM *aDOM; if (nsnull == aParent) { parent = nsnull; @@ -410,14 +423,19 @@ extern "C" NS_DOM nsresult NS_NewScriptDOM(nsIScriptContext *aContext, nsIDOMDOM return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIDOMIID, (void **)&aDOM); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &DOMClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aDOM); } else { + NS_RELEASE(aDOM); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/coreDOM/nsJSData.cpp b/mozilla/dom/src/coreDOM/nsJSData.cpp index 325ad1059b1..3753c94e8c1 100644 --- a/mozilla/dom/src/coreDOM/nsJSData.cpp +++ b/mozilla/dom/src/coreDOM/nsJSData.cpp @@ -512,7 +512,18 @@ static JSFunctionSpec DataMethods[] = PR_STATIC_CALLBACK(JSBool) Data(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMData *a = (nsIDOMData*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -569,13 +580,15 @@ nsresult NS_InitDataClass(nsIScriptContext *aContext, void **aPrototype) // // Method for creating a new Data JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptData(nsIScriptContext *aContext, nsIDOMData *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptData(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptData"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMData *aData; if (nsnull == aParent) { parent = nsnull; @@ -595,14 +608,19 @@ extern "C" NS_DOM nsresult NS_NewScriptData(nsIScriptContext *aContext, nsIDOMDa return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIDataIID, (void **)&aData); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &DataClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aData); } else { + NS_RELEASE(aData); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/coreDOM/nsJSDocument.cpp b/mozilla/dom/src/coreDOM/nsJSDocument.cpp index e2e2eca89af..62ba113279e 100644 --- a/mozilla/dom/src/coreDOM/nsJSDocument.cpp +++ b/mozilla/dom/src/coreDOM/nsJSDocument.cpp @@ -825,7 +825,18 @@ static JSFunctionSpec DocumentMethods[] = PR_STATIC_CALLBACK(JSBool) Document(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMDocument *a = (nsIDOMDocument*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -882,13 +893,15 @@ nsresult NS_InitDocumentClass(nsIScriptContext *aContext, void **aPrototype) // // Method for creating a new Document JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptDocument(nsIScriptContext *aContext, nsIDOMDocument *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptDocument(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptDocument"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMDocument *aDocument; if (nsnull == aParent) { parent = nsnull; @@ -908,14 +921,19 @@ extern "C" NS_DOM nsresult NS_NewScriptDocument(nsIScriptContext *aContext, nsID return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIDocumentIID, (void **)&aDocument); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &DocumentClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aDocument); } else { + NS_RELEASE(aDocument); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/coreDOM/nsJSDocumentFragment.cpp b/mozilla/dom/src/coreDOM/nsJSDocumentFragment.cpp index d3f16ca8314..67982071c37 100644 --- a/mozilla/dom/src/coreDOM/nsJSDocumentFragment.cpp +++ b/mozilla/dom/src/coreDOM/nsJSDocumentFragment.cpp @@ -260,7 +260,18 @@ static JSFunctionSpec DocumentFragmentMethods[] = PR_STATIC_CALLBACK(JSBool) DocumentFragment(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMDocumentFragment *a = (nsIDOMDocumentFragment*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -317,13 +328,15 @@ nsresult NS_InitDocumentFragmentClass(nsIScriptContext *aContext, void **aProtot // // Method for creating a new DocumentFragment JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptDocumentFragment(nsIScriptContext *aContext, nsIDOMDocumentFragment *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptDocumentFragment(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptDocumentFragment"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMDocumentFragment *aDocumentFragment; if (nsnull == aParent) { parent = nsnull; @@ -343,14 +356,19 @@ extern "C" NS_DOM nsresult NS_NewScriptDocumentFragment(nsIScriptContext *aConte return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIDocumentFragmentIID, (void **)&aDocumentFragment); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &DocumentFragmentClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aDocumentFragment); } else { + NS_RELEASE(aDocumentFragment); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/coreDOM/nsJSDocumentType.cpp b/mozilla/dom/src/coreDOM/nsJSDocumentType.cpp index 7e491f9f061..6a091e4460b 100644 --- a/mozilla/dom/src/coreDOM/nsJSDocumentType.cpp +++ b/mozilla/dom/src/coreDOM/nsJSDocumentType.cpp @@ -312,7 +312,18 @@ static JSFunctionSpec DocumentTypeMethods[] = PR_STATIC_CALLBACK(JSBool) DocumentType(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMDocumentType *a = (nsIDOMDocumentType*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -366,13 +377,15 @@ nsresult NS_InitDocumentTypeClass(nsIScriptContext *aContext, void **aPrototype) // // Method for creating a new DocumentType JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptDocumentType(nsIScriptContext *aContext, nsIDOMDocumentType *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptDocumentType(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptDocumentType"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMDocumentType *aDocumentType; if (nsnull == aParent) { parent = nsnull; @@ -392,14 +405,19 @@ extern "C" NS_DOM nsresult NS_NewScriptDocumentType(nsIScriptContext *aContext, return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIDocumentTypeIID, (void **)&aDocumentType); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &DocumentTypeClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aDocumentType); } else { + NS_RELEASE(aDocumentType); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/coreDOM/nsJSElement.cpp b/mozilla/dom/src/coreDOM/nsJSElement.cpp index 955dd8b67cc..36f32c4862d 100644 --- a/mozilla/dom/src/coreDOM/nsJSElement.cpp +++ b/mozilla/dom/src/coreDOM/nsJSElement.cpp @@ -648,7 +648,18 @@ static JSFunctionSpec ElementMethods[] = PR_STATIC_CALLBACK(JSBool) Element(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMElement *a = (nsIDOMElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -705,13 +716,15 @@ nsresult NS_InitElementClass(nsIScriptContext *aContext, void **aPrototype) // // Method for creating a new Element JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptElement(nsIScriptContext *aContext, nsIDOMElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMElement *aElement; if (nsnull == aParent) { parent = nsnull; @@ -731,14 +744,19 @@ extern "C" NS_DOM nsresult NS_NewScriptElement(nsIScriptContext *aContext, nsIDO return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIElementIID, (void **)&aElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &ElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aElement); } else { + NS_RELEASE(aElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/coreDOM/nsJSNamedNodeMap.cpp b/mozilla/dom/src/coreDOM/nsJSNamedNodeMap.cpp index a7fa0bb0bda..96c7d015bdd 100644 --- a/mozilla/dom/src/coreDOM/nsJSNamedNodeMap.cpp +++ b/mozilla/dom/src/coreDOM/nsJSNamedNodeMap.cpp @@ -487,7 +487,18 @@ static JSFunctionSpec NamedNodeMapMethods[] = PR_STATIC_CALLBACK(JSBool) NamedNodeMap(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMNamedNodeMap *a = (nsIDOMNamedNodeMap*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -541,13 +552,15 @@ nsresult NS_InitNamedNodeMapClass(nsIScriptContext *aContext, void **aPrototype) // // Method for creating a new NamedNodeMap JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptNamedNodeMap(nsIScriptContext *aContext, nsIDOMNamedNodeMap *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptNamedNodeMap(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptNamedNodeMap"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMNamedNodeMap *aNamedNodeMap; if (nsnull == aParent) { parent = nsnull; @@ -567,14 +580,19 @@ extern "C" NS_DOM nsresult NS_NewScriptNamedNodeMap(nsIScriptContext *aContext, return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kINamedNodeMapIID, (void **)&aNamedNodeMap); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &NamedNodeMapClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aNamedNodeMap); } else { + NS_RELEASE(aNamedNodeMap); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/coreDOM/nsJSNode.cpp b/mozilla/dom/src/coreDOM/nsJSNode.cpp index 5f5f4ac0c84..951dc632832 100644 --- a/mozilla/dom/src/coreDOM/nsJSNode.cpp +++ b/mozilla/dom/src/coreDOM/nsJSNode.cpp @@ -931,7 +931,18 @@ static JSFunctionSpec NodeMethods[] = PR_STATIC_CALLBACK(JSBool) Node(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMNode *a = (nsIDOMNode*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -1020,13 +1031,15 @@ nsresult NS_InitNodeClass(nsIScriptContext *aContext, void **aPrototype) // // Method for creating a new Node JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptNode(nsIScriptContext *aContext, nsIDOMNode *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptNode(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptNode"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMNode *aNode; if (nsnull == aParent) { parent = nsnull; @@ -1046,14 +1059,19 @@ extern "C" NS_DOM nsresult NS_NewScriptNode(nsIScriptContext *aContext, nsIDOMNo return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kINodeIID, (void **)&aNode); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &NodeClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aNode); } else { + NS_RELEASE(aNode); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/coreDOM/nsJSNodeList.cpp b/mozilla/dom/src/coreDOM/nsJSNodeList.cpp index 743ef7c0dad..c580b336d81 100644 --- a/mozilla/dom/src/coreDOM/nsJSNodeList.cpp +++ b/mozilla/dom/src/coreDOM/nsJSNodeList.cpp @@ -316,7 +316,18 @@ static JSFunctionSpec NodeListMethods[] = PR_STATIC_CALLBACK(JSBool) NodeList(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMNodeList *a = (nsIDOMNodeList*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -370,13 +381,15 @@ nsresult NS_InitNodeListClass(nsIScriptContext *aContext, void **aPrototype) // // Method for creating a new NodeList JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptNodeList(nsIScriptContext *aContext, nsIDOMNodeList *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptNodeList(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptNodeList"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMNodeList *aNodeList; if (nsnull == aParent) { parent = nsnull; @@ -396,14 +409,19 @@ extern "C" NS_DOM nsresult NS_NewScriptNodeList(nsIScriptContext *aContext, nsID return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kINodeListIID, (void **)&aNodeList); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &NodeListClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aNodeList); } else { + NS_RELEASE(aNodeList); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/coreDOM/nsJSProcessingInstruction.cpp b/mozilla/dom/src/coreDOM/nsJSProcessingInstruction.cpp index 379d0b5b52c..477b626151a 100644 --- a/mozilla/dom/src/coreDOM/nsJSProcessingInstruction.cpp +++ b/mozilla/dom/src/coreDOM/nsJSProcessingInstruction.cpp @@ -287,7 +287,18 @@ static JSFunctionSpec ProcessingInstructionMethods[] = PR_STATIC_CALLBACK(JSBool) ProcessingInstruction(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMProcessingInstruction *a = (nsIDOMProcessingInstruction*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -344,13 +355,15 @@ nsresult NS_InitProcessingInstructionClass(nsIScriptContext *aContext, void **aP // // Method for creating a new ProcessingInstruction JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptProcessingInstruction(nsIScriptContext *aContext, nsIDOMProcessingInstruction *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptProcessingInstruction(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptProcessingInstruction"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMProcessingInstruction *aProcessingInstruction; if (nsnull == aParent) { parent = nsnull; @@ -370,14 +383,19 @@ extern "C" NS_DOM nsresult NS_NewScriptProcessingInstruction(nsIScriptContext *a return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIProcessingInstructionIID, (void **)&aProcessingInstruction); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &ProcessingInstructionClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aProcessingInstruction); } else { + NS_RELEASE(aProcessingInstruction); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/coreDOM/nsJSText.cpp b/mozilla/dom/src/coreDOM/nsJSText.cpp index 6b8f043850d..33cecc0d513 100644 --- a/mozilla/dom/src/coreDOM/nsJSText.cpp +++ b/mozilla/dom/src/coreDOM/nsJSText.cpp @@ -368,7 +368,18 @@ static JSFunctionSpec TextMethods[] = PR_STATIC_CALLBACK(JSBool) Text(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMText *a = (nsIDOMText*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -425,13 +436,15 @@ nsresult NS_InitTextClass(nsIScriptContext *aContext, void **aPrototype) // // Method for creating a new Text JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptText(nsIScriptContext *aContext, nsIDOMText *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptText(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptText"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMText *aText; if (nsnull == aParent) { parent = nsnull; @@ -451,14 +464,19 @@ extern "C" NS_DOM nsresult NS_NewScriptText(nsIScriptContext *aContext, nsIDOMTe return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kITextIID, (void **)&aText); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &TextClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aText); } else { + NS_RELEASE(aText); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/events/nsJSEvent.cpp b/mozilla/dom/src/events/nsJSEvent.cpp index 267bb75c54e..62f1aee1a19 100644 --- a/mozilla/dom/src/events/nsJSEvent.cpp +++ b/mozilla/dom/src/events/nsJSEvent.cpp @@ -757,7 +757,18 @@ static JSFunctionSpec EventMethods[] = PR_STATIC_CALLBACK(JSBool) Event(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMEvent *a = (nsIDOMEvent*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -1149,13 +1160,15 @@ nsresult NS_InitEventClass(nsIScriptContext *aContext, void **aPrototype) // // Method for creating a new Event JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptEvent(nsIScriptContext *aContext, nsIDOMEvent *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptEvent(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptEvent"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMEvent *aEvent; if (nsnull == aParent) { parent = nsnull; @@ -1175,14 +1188,19 @@ extern "C" NS_DOM nsresult NS_NewScriptEvent(nsIScriptContext *aContext, nsIDOME return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIEventIID, (void **)&aEvent); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &EventClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aEvent); } else { + NS_RELEASE(aEvent); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLAnchorElement.cpp b/mozilla/dom/src/html/nsJSHTMLAnchorElement.cpp index 2c009100ced..a2b169be5a9 100644 --- a/mozilla/dom/src/html/nsJSHTMLAnchorElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLAnchorElement.cpp @@ -654,7 +654,18 @@ static JSFunctionSpec HTMLAnchorElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLAnchorElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLAnchorElement *a = (nsIDOMHTMLAnchorElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -711,13 +722,15 @@ nsresult NS_InitHTMLAnchorElementClass(nsIScriptContext *aContext, void **aProto // // Method for creating a new HTMLAnchorElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLAnchorElement(nsIScriptContext *aContext, nsIDOMHTMLAnchorElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLAnchorElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLAnchorElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLAnchorElement *aHTMLAnchorElement; if (nsnull == aParent) { parent = nsnull; @@ -737,14 +750,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLAnchorElement(nsIScriptContext *aCont return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLAnchorElementIID, (void **)&aHTMLAnchorElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLAnchorElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLAnchorElement); } else { + NS_RELEASE(aHTMLAnchorElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLAppletElement.cpp b/mozilla/dom/src/html/nsJSHTMLAppletElement.cpp index d1acf7a6315..4d504f7ff69 100644 --- a/mozilla/dom/src/html/nsJSHTMLAppletElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLAppletElement.cpp @@ -557,7 +557,18 @@ static JSFunctionSpec HTMLAppletElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLAppletElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLAppletElement *a = (nsIDOMHTMLAppletElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -614,13 +625,15 @@ nsresult NS_InitHTMLAppletElementClass(nsIScriptContext *aContext, void **aProto // // Method for creating a new HTMLAppletElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLAppletElement(nsIScriptContext *aContext, nsIDOMHTMLAppletElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLAppletElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLAppletElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLAppletElement *aHTMLAppletElement; if (nsnull == aParent) { parent = nsnull; @@ -640,14 +653,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLAppletElement(nsIScriptContext *aCont return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLAppletElementIID, (void **)&aHTMLAppletElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLAppletElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLAppletElement); } else { + NS_RELEASE(aHTMLAppletElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLAreaElement.cpp b/mozilla/dom/src/html/nsJSHTMLAreaElement.cpp index fcc4c9020e1..a5070f32994 100644 --- a/mozilla/dom/src/html/nsJSHTMLAreaElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLAreaElement.cpp @@ -465,7 +465,18 @@ static JSFunctionSpec HTMLAreaElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLAreaElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLAreaElement *a = (nsIDOMHTMLAreaElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -522,13 +533,15 @@ nsresult NS_InitHTMLAreaElementClass(nsIScriptContext *aContext, void **aPrototy // // Method for creating a new HTMLAreaElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLAreaElement(nsIScriptContext *aContext, nsIDOMHTMLAreaElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLAreaElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLAreaElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLAreaElement *aHTMLAreaElement; if (nsnull == aParent) { parent = nsnull; @@ -548,14 +561,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLAreaElement(nsIScriptContext *aContex return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLAreaElementIID, (void **)&aHTMLAreaElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLAreaElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLAreaElement); } else { + NS_RELEASE(aHTMLAreaElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLBRElement.cpp b/mozilla/dom/src/html/nsJSHTMLBRElement.cpp index 214c8b7d9d8..1fcd80d3df1 100644 --- a/mozilla/dom/src/html/nsJSHTMLBRElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLBRElement.cpp @@ -257,7 +257,18 @@ static JSFunctionSpec HTMLBRElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLBRElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLBRElement *a = (nsIDOMHTMLBRElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -314,13 +325,15 @@ nsresult NS_InitHTMLBRElementClass(nsIScriptContext *aContext, void **aPrototype // // Method for creating a new HTMLBRElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLBRElement(nsIScriptContext *aContext, nsIDOMHTMLBRElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLBRElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLBRElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLBRElement *aHTMLBRElement; if (nsnull == aParent) { parent = nsnull; @@ -340,14 +353,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLBRElement(nsIScriptContext *aContext, return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLBRElementIID, (void **)&aHTMLBRElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLBRElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLBRElement); } else { + NS_RELEASE(aHTMLBRElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLBaseElement.cpp b/mozilla/dom/src/html/nsJSHTMLBaseElement.cpp index 81bd4e6a712..4893015e04d 100644 --- a/mozilla/dom/src/html/nsJSHTMLBaseElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLBaseElement.cpp @@ -287,7 +287,18 @@ static JSFunctionSpec HTMLBaseElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLBaseElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLBaseElement *a = (nsIDOMHTMLBaseElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -344,13 +355,15 @@ nsresult NS_InitHTMLBaseElementClass(nsIScriptContext *aContext, void **aPrototy // // Method for creating a new HTMLBaseElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLBaseElement(nsIScriptContext *aContext, nsIDOMHTMLBaseElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLBaseElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLBaseElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLBaseElement *aHTMLBaseElement; if (nsnull == aParent) { parent = nsnull; @@ -370,14 +383,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLBaseElement(nsIScriptContext *aContex return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLBaseElementIID, (void **)&aHTMLBaseElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLBaseElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLBaseElement); } else { + NS_RELEASE(aHTMLBaseElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLBaseFontElement.cpp b/mozilla/dom/src/html/nsJSHTMLBaseFontElement.cpp index 878090f1735..fc4d39e4682 100644 --- a/mozilla/dom/src/html/nsJSHTMLBaseFontElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLBaseFontElement.cpp @@ -317,7 +317,18 @@ static JSFunctionSpec HTMLBaseFontElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLBaseFontElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLBaseFontElement *a = (nsIDOMHTMLBaseFontElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -374,13 +385,15 @@ nsresult NS_InitHTMLBaseFontElementClass(nsIScriptContext *aContext, void **aPro // // Method for creating a new HTMLBaseFontElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLBaseFontElement(nsIScriptContext *aContext, nsIDOMHTMLBaseFontElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLBaseFontElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLBaseFontElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLBaseFontElement *aHTMLBaseFontElement; if (nsnull == aParent) { parent = nsnull; @@ -400,14 +413,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLBaseFontElement(nsIScriptContext *aCo return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLBaseFontElementIID, (void **)&aHTMLBaseFontElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLBaseFontElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLBaseFontElement); } else { + NS_RELEASE(aHTMLBaseFontElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLBodyElement.cpp b/mozilla/dom/src/html/nsJSHTMLBodyElement.cpp index 35fc8662ed7..e9f71317143 100644 --- a/mozilla/dom/src/html/nsJSHTMLBodyElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLBodyElement.cpp @@ -407,7 +407,18 @@ static JSFunctionSpec HTMLBodyElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLBodyElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLBodyElement *a = (nsIDOMHTMLBodyElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -464,13 +475,15 @@ nsresult NS_InitHTMLBodyElementClass(nsIScriptContext *aContext, void **aPrototy // // Method for creating a new HTMLBodyElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLBodyElement(nsIScriptContext *aContext, nsIDOMHTMLBodyElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLBodyElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLBodyElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLBodyElement *aHTMLBodyElement; if (nsnull == aParent) { parent = nsnull; @@ -490,14 +503,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLBodyElement(nsIScriptContext *aContex return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLBodyElementIID, (void **)&aHTMLBodyElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLBodyElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLBodyElement); } else { + NS_RELEASE(aHTMLBodyElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLButtonElement.cpp b/mozilla/dom/src/html/nsJSHTMLButtonElement.cpp index d42fee13358..2560437e220 100644 --- a/mozilla/dom/src/html/nsJSHTMLButtonElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLButtonElement.cpp @@ -460,7 +460,18 @@ static JSFunctionSpec HTMLButtonElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLButtonElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLButtonElement *a = (nsIDOMHTMLButtonElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -517,13 +528,15 @@ nsresult NS_InitHTMLButtonElementClass(nsIScriptContext *aContext, void **aProto // // Method for creating a new HTMLButtonElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLButtonElement(nsIScriptContext *aContext, nsIDOMHTMLButtonElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLButtonElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLButtonElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLButtonElement *aHTMLButtonElement; if (nsnull == aParent) { parent = nsnull; @@ -543,14 +556,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLButtonElement(nsIScriptContext *aCont return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLButtonElementIID, (void **)&aHTMLButtonElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLButtonElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLButtonElement); } else { + NS_RELEASE(aHTMLButtonElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLCollection.cpp b/mozilla/dom/src/html/nsJSHTMLCollection.cpp index f5ad6f2d334..2a63eb950a1 100644 --- a/mozilla/dom/src/html/nsJSHTMLCollection.cpp +++ b/mozilla/dom/src/html/nsJSHTMLCollection.cpp @@ -421,7 +421,18 @@ static JSFunctionSpec HTMLCollectionMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLCollection(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLCollection *a = (nsIDOMHTMLCollection*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -475,13 +486,15 @@ nsresult NS_InitHTMLCollectionClass(nsIScriptContext *aContext, void **aPrototyp // // Method for creating a new HTMLCollection JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLCollection(nsIScriptContext *aContext, nsIDOMHTMLCollection *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLCollection(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLCollection"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLCollection *aHTMLCollection; if (nsnull == aParent) { parent = nsnull; @@ -501,14 +514,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLCollection(nsIScriptContext *aContext return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLCollectionIID, (void **)&aHTMLCollection); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLCollectionClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLCollection); } else { + NS_RELEASE(aHTMLCollection); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLDListElement.cpp b/mozilla/dom/src/html/nsJSHTMLDListElement.cpp index 7afdb8ece74..c88bf1bd928 100644 --- a/mozilla/dom/src/html/nsJSHTMLDListElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLDListElement.cpp @@ -256,7 +256,18 @@ static JSFunctionSpec HTMLDListElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLDListElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLDListElement *a = (nsIDOMHTMLDListElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -313,13 +324,15 @@ nsresult NS_InitHTMLDListElementClass(nsIScriptContext *aContext, void **aProtot // // Method for creating a new HTMLDListElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLDListElement(nsIScriptContext *aContext, nsIDOMHTMLDListElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLDListElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLDListElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLDListElement *aHTMLDListElement; if (nsnull == aParent) { parent = nsnull; @@ -339,14 +352,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLDListElement(nsIScriptContext *aConte return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLDListElementIID, (void **)&aHTMLDListElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLDListElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLDListElement); } else { + NS_RELEASE(aHTMLDListElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLDelElement.cpp b/mozilla/dom/src/html/nsJSHTMLDelElement.cpp index fbf057e4c82..6038515cfd9 100644 --- a/mozilla/dom/src/html/nsJSHTMLDelElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLDelElement.cpp @@ -287,7 +287,18 @@ static JSFunctionSpec HTMLDelElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLDelElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLDelElement *a = (nsIDOMHTMLDelElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -344,13 +355,15 @@ nsresult NS_InitHTMLDelElementClass(nsIScriptContext *aContext, void **aPrototyp // // Method for creating a new HTMLDelElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLDelElement(nsIScriptContext *aContext, nsIDOMHTMLDelElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLDelElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLDelElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLDelElement *aHTMLDelElement; if (nsnull == aParent) { parent = nsnull; @@ -370,14 +383,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLDelElement(nsIScriptContext *aContext return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLDelElementIID, (void **)&aHTMLDelElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLDelElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLDelElement); } else { + NS_RELEASE(aHTMLDelElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLDirectoryElement.cpp b/mozilla/dom/src/html/nsJSHTMLDirectoryElement.cpp index 6670a9f18b5..3993a2882aa 100644 --- a/mozilla/dom/src/html/nsJSHTMLDirectoryElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLDirectoryElement.cpp @@ -256,7 +256,18 @@ static JSFunctionSpec HTMLDirectoryElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLDirectoryElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLDirectoryElement *a = (nsIDOMHTMLDirectoryElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -313,13 +324,15 @@ nsresult NS_InitHTMLDirectoryElementClass(nsIScriptContext *aContext, void **aPr // // Method for creating a new HTMLDirectoryElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLDirectoryElement(nsIScriptContext *aContext, nsIDOMHTMLDirectoryElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLDirectoryElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLDirectoryElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLDirectoryElement *aHTMLDirectoryElement; if (nsnull == aParent) { parent = nsnull; @@ -339,14 +352,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLDirectoryElement(nsIScriptContext *aC return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLDirectoryElementIID, (void **)&aHTMLDirectoryElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLDirectoryElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLDirectoryElement); } else { + NS_RELEASE(aHTMLDirectoryElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLDivElement.cpp b/mozilla/dom/src/html/nsJSHTMLDivElement.cpp index daeae3a5283..d0ae92f4350 100644 --- a/mozilla/dom/src/html/nsJSHTMLDivElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLDivElement.cpp @@ -257,7 +257,18 @@ static JSFunctionSpec HTMLDivElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLDivElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLDivElement *a = (nsIDOMHTMLDivElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -314,13 +325,15 @@ nsresult NS_InitHTMLDivElementClass(nsIScriptContext *aContext, void **aPrototyp // // Method for creating a new HTMLDivElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLDivElement(nsIScriptContext *aContext, nsIDOMHTMLDivElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLDivElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLDivElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLDivElement *aHTMLDivElement; if (nsnull == aParent) { parent = nsnull; @@ -340,14 +353,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLDivElement(nsIScriptContext *aContext return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLDivElementIID, (void **)&aHTMLDivElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLDivElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLDivElement); } else { + NS_RELEASE(aHTMLDivElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLDocument.cpp b/mozilla/dom/src/html/nsJSHTMLDocument.cpp index 307343f9937..b330270929c 100644 --- a/mozilla/dom/src/html/nsJSHTMLDocument.cpp +++ b/mozilla/dom/src/html/nsJSHTMLDocument.cpp @@ -1399,7 +1399,18 @@ static JSFunctionSpec HTMLDocumentMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLDocument(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLDocument *a = (nsIDOMHTMLDocument*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -1456,13 +1467,15 @@ nsresult NS_InitHTMLDocumentClass(nsIScriptContext *aContext, void **aPrototype) // // Method for creating a new HTMLDocument JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLDocument(nsIScriptContext *aContext, nsIDOMHTMLDocument *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLDocument(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLDocument"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLDocument *aHTMLDocument; if (nsnull == aParent) { parent = nsnull; @@ -1482,14 +1495,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLDocument(nsIScriptContext *aContext, return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLDocumentIID, (void **)&aHTMLDocument); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLDocumentClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLDocument); } else { + NS_RELEASE(aHTMLDocument); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLElement.cpp b/mozilla/dom/src/html/nsJSHTMLElement.cpp index f5e52939d92..e43537ff6b0 100644 --- a/mozilla/dom/src/html/nsJSHTMLElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLElement.cpp @@ -377,7 +377,18 @@ static JSFunctionSpec HTMLElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLElement *a = (nsIDOMHTMLElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -434,13 +445,15 @@ nsresult NS_InitHTMLElementClass(nsIScriptContext *aContext, void **aPrototype) // // Method for creating a new HTMLElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLElement(nsIScriptContext *aContext, nsIDOMHTMLElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLElement *aHTMLElement; if (nsnull == aParent) { parent = nsnull; @@ -460,14 +473,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLElement(nsIScriptContext *aContext, n return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLElementIID, (void **)&aHTMLElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLElement); } else { + NS_RELEASE(aHTMLElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLFontElement.cpp b/mozilla/dom/src/html/nsJSHTMLFontElement.cpp index 1829a4e8a2c..a7a0e270ba7 100644 --- a/mozilla/dom/src/html/nsJSHTMLFontElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLFontElement.cpp @@ -317,7 +317,18 @@ static JSFunctionSpec HTMLFontElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLFontElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLFontElement *a = (nsIDOMHTMLFontElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -374,13 +385,15 @@ nsresult NS_InitHTMLFontElementClass(nsIScriptContext *aContext, void **aPrototy // // Method for creating a new HTMLFontElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLFontElement(nsIScriptContext *aContext, nsIDOMHTMLFontElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLFontElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLFontElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLFontElement *aHTMLFontElement; if (nsnull == aParent) { parent = nsnull; @@ -400,14 +413,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLFontElement(nsIScriptContext *aContex return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLFontElementIID, (void **)&aHTMLFontElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLFontElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLFontElement); } else { + NS_RELEASE(aHTMLFontElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLFormElement.cpp b/mozilla/dom/src/html/nsJSHTMLFormElement.cpp index cb388d5da7b..bbe5e6d4a25 100644 --- a/mozilla/dom/src/html/nsJSHTMLFormElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLFormElement.cpp @@ -664,7 +664,18 @@ static JSFunctionSpec HTMLFormElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLFormElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLFormElement *a = (nsIDOMHTMLFormElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -721,13 +732,15 @@ nsresult NS_InitHTMLFormElementClass(nsIScriptContext *aContext, void **aPrototy // // Method for creating a new HTMLFormElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLFormElement(nsIScriptContext *aContext, nsIDOMHTMLFormElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLFormElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLFormElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLFormElement *aHTMLFormElement; if (nsnull == aParent) { parent = nsnull; @@ -747,14 +760,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLFormElement(nsIScriptContext *aContex return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLFormElementIID, (void **)&aHTMLFormElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLFormElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLFormElement); } else { + NS_RELEASE(aHTMLFormElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLFrameElement.cpp b/mozilla/dom/src/html/nsJSHTMLFrameElement.cpp index aebc4b9e5fc..8e6082e1f6d 100644 --- a/mozilla/dom/src/html/nsJSHTMLFrameElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLFrameElement.cpp @@ -466,7 +466,18 @@ static JSFunctionSpec HTMLFrameElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLFrameElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLFrameElement *a = (nsIDOMHTMLFrameElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -523,13 +534,15 @@ nsresult NS_InitHTMLFrameElementClass(nsIScriptContext *aContext, void **aProtot // // Method for creating a new HTMLFrameElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLFrameElement(nsIScriptContext *aContext, nsIDOMHTMLFrameElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLFrameElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLFrameElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLFrameElement *aHTMLFrameElement; if (nsnull == aParent) { parent = nsnull; @@ -549,14 +562,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLFrameElement(nsIScriptContext *aConte return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLFrameElementIID, (void **)&aHTMLFrameElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLFrameElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLFrameElement); } else { + NS_RELEASE(aHTMLFrameElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLFrameSetElement.cpp b/mozilla/dom/src/html/nsJSHTMLFrameSetElement.cpp index 2a39a4af7b6..158fd0bb5bc 100644 --- a/mozilla/dom/src/html/nsJSHTMLFrameSetElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLFrameSetElement.cpp @@ -287,7 +287,18 @@ static JSFunctionSpec HTMLFrameSetElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLFrameSetElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLFrameSetElement *a = (nsIDOMHTMLFrameSetElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -344,13 +355,15 @@ nsresult NS_InitHTMLFrameSetElementClass(nsIScriptContext *aContext, void **aPro // // Method for creating a new HTMLFrameSetElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLFrameSetElement(nsIScriptContext *aContext, nsIDOMHTMLFrameSetElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLFrameSetElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLFrameSetElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLFrameSetElement *aHTMLFrameSetElement; if (nsnull == aParent) { parent = nsnull; @@ -370,14 +383,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLFrameSetElement(nsIScriptContext *aCo return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLFrameSetElementIID, (void **)&aHTMLFrameSetElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLFrameSetElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLFrameSetElement); } else { + NS_RELEASE(aHTMLFrameSetElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLHRElement.cpp b/mozilla/dom/src/html/nsJSHTMLHRElement.cpp index 298ae0c135e..a64536a0a1e 100644 --- a/mozilla/dom/src/html/nsJSHTMLHRElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLHRElement.cpp @@ -346,7 +346,18 @@ static JSFunctionSpec HTMLHRElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLHRElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLHRElement *a = (nsIDOMHTMLHRElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -403,13 +414,15 @@ nsresult NS_InitHTMLHRElementClass(nsIScriptContext *aContext, void **aPrototype // // Method for creating a new HTMLHRElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLHRElement(nsIScriptContext *aContext, nsIDOMHTMLHRElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLHRElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLHRElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLHRElement *aHTMLHRElement; if (nsnull == aParent) { parent = nsnull; @@ -429,14 +442,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLHRElement(nsIScriptContext *aContext, return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLHRElementIID, (void **)&aHTMLHRElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLHRElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLHRElement); } else { + NS_RELEASE(aHTMLHRElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLHeadElement.cpp b/mozilla/dom/src/html/nsJSHTMLHeadElement.cpp index cf60a4d2d9a..2055f886fba 100644 --- a/mozilla/dom/src/html/nsJSHTMLHeadElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLHeadElement.cpp @@ -257,7 +257,18 @@ static JSFunctionSpec HTMLHeadElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLHeadElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLHeadElement *a = (nsIDOMHTMLHeadElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -314,13 +325,15 @@ nsresult NS_InitHTMLHeadElementClass(nsIScriptContext *aContext, void **aPrototy // // Method for creating a new HTMLHeadElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLHeadElement(nsIScriptContext *aContext, nsIDOMHTMLHeadElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLHeadElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLHeadElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLHeadElement *aHTMLHeadElement; if (nsnull == aParent) { parent = nsnull; @@ -340,14 +353,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLHeadElement(nsIScriptContext *aContex return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLHeadElementIID, (void **)&aHTMLHeadElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLHeadElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLHeadElement); } else { + NS_RELEASE(aHTMLHeadElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLHeadingElement.cpp b/mozilla/dom/src/html/nsJSHTMLHeadingElement.cpp index 4bb266a0ddc..8fb0efb941f 100644 --- a/mozilla/dom/src/html/nsJSHTMLHeadingElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLHeadingElement.cpp @@ -257,7 +257,18 @@ static JSFunctionSpec HTMLHeadingElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLHeadingElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLHeadingElement *a = (nsIDOMHTMLHeadingElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -314,13 +325,15 @@ nsresult NS_InitHTMLHeadingElementClass(nsIScriptContext *aContext, void **aProt // // Method for creating a new HTMLHeadingElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLHeadingElement(nsIScriptContext *aContext, nsIDOMHTMLHeadingElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLHeadingElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLHeadingElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLHeadingElement *aHTMLHeadingElement; if (nsnull == aParent) { parent = nsnull; @@ -340,14 +353,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLHeadingElement(nsIScriptContext *aCon return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLHeadingElementIID, (void **)&aHTMLHeadingElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLHeadingElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLHeadingElement); } else { + NS_RELEASE(aHTMLHeadingElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLHtmlElement.cpp b/mozilla/dom/src/html/nsJSHTMLHtmlElement.cpp index 871c4c75f0c..f197f9c6ffe 100644 --- a/mozilla/dom/src/html/nsJSHTMLHtmlElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLHtmlElement.cpp @@ -257,7 +257,18 @@ static JSFunctionSpec HTMLHtmlElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLHtmlElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLHtmlElement *a = (nsIDOMHTMLHtmlElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -314,13 +325,15 @@ nsresult NS_InitHTMLHtmlElementClass(nsIScriptContext *aContext, void **aPrototy // // Method for creating a new HTMLHtmlElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLHtmlElement(nsIScriptContext *aContext, nsIDOMHTMLHtmlElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLHtmlElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLHtmlElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLHtmlElement *aHTMLHtmlElement; if (nsnull == aParent) { parent = nsnull; @@ -340,14 +353,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLHtmlElement(nsIScriptContext *aContex return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLHtmlElementIID, (void **)&aHTMLHtmlElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLHtmlElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLHtmlElement); } else { + NS_RELEASE(aHTMLHtmlElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLIFrameElement.cpp b/mozilla/dom/src/html/nsJSHTMLIFrameElement.cpp index 01e7ee28490..8f7a3a64b7b 100644 --- a/mozilla/dom/src/html/nsJSHTMLIFrameElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLIFrameElement.cpp @@ -527,7 +527,18 @@ static JSFunctionSpec HTMLIFrameElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLIFrameElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLIFrameElement *a = (nsIDOMHTMLIFrameElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -584,13 +595,15 @@ nsresult NS_InitHTMLIFrameElementClass(nsIScriptContext *aContext, void **aProto // // Method for creating a new HTMLIFrameElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLIFrameElement(nsIScriptContext *aContext, nsIDOMHTMLIFrameElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLIFrameElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLIFrameElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLIFrameElement *aHTMLIFrameElement; if (nsnull == aParent) { parent = nsnull; @@ -610,14 +623,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLIFrameElement(nsIScriptContext *aCont return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLIFrameElementIID, (void **)&aHTMLIFrameElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLIFrameElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLIFrameElement); } else { + NS_RELEASE(aHTMLIFrameElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLImageElement.cpp b/mozilla/dom/src/html/nsJSHTMLImageElement.cpp index df337313a64..9246f638fcb 100644 --- a/mozilla/dom/src/html/nsJSHTMLImageElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLImageElement.cpp @@ -616,7 +616,18 @@ static JSFunctionSpec HTMLImageElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLImageElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLImageElement *a = (nsIDOMHTMLImageElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -673,13 +684,15 @@ nsresult NS_InitHTMLImageElementClass(nsIScriptContext *aContext, void **aProtot // // Method for creating a new HTMLImageElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLImageElement(nsIScriptContext *aContext, nsIDOMHTMLImageElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLImageElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLImageElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLImageElement *aHTMLImageElement; if (nsnull == aParent) { parent = nsnull; @@ -699,14 +712,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLImageElement(nsIScriptContext *aConte return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLImageElementIID, (void **)&aHTMLImageElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLImageElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLImageElement); } else { + NS_RELEASE(aHTMLImageElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLInputElement.cpp b/mozilla/dom/src/html/nsJSHTMLInputElement.cpp index 9362f5ed0ed..ba1f2b84664 100644 --- a/mozilla/dom/src/html/nsJSHTMLInputElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLInputElement.cpp @@ -884,7 +884,18 @@ static JSFunctionSpec HTMLInputElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLInputElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLInputElement *a = (nsIDOMHTMLInputElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -941,13 +952,15 @@ nsresult NS_InitHTMLInputElementClass(nsIScriptContext *aContext, void **aProtot // // Method for creating a new HTMLInputElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLInputElement(nsIScriptContext *aContext, nsIDOMHTMLInputElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLInputElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLInputElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLInputElement *aHTMLInputElement; if (nsnull == aParent) { parent = nsnull; @@ -967,14 +980,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLInputElement(nsIScriptContext *aConte return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLInputElementIID, (void **)&aHTMLInputElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLInputElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLInputElement); } else { + NS_RELEASE(aHTMLInputElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLInsElement.cpp b/mozilla/dom/src/html/nsJSHTMLInsElement.cpp index 48efd1c2135..025660d2c60 100644 --- a/mozilla/dom/src/html/nsJSHTMLInsElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLInsElement.cpp @@ -287,7 +287,18 @@ static JSFunctionSpec HTMLInsElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLInsElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLInsElement *a = (nsIDOMHTMLInsElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -344,13 +355,15 @@ nsresult NS_InitHTMLInsElementClass(nsIScriptContext *aContext, void **aPrototyp // // Method for creating a new HTMLInsElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLInsElement(nsIScriptContext *aContext, nsIDOMHTMLInsElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLInsElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLInsElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLInsElement *aHTMLInsElement; if (nsnull == aParent) { parent = nsnull; @@ -370,14 +383,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLInsElement(nsIScriptContext *aContext return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLInsElementIID, (void **)&aHTMLInsElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLInsElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLInsElement); } else { + NS_RELEASE(aHTMLInsElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLIsIndexElement.cpp b/mozilla/dom/src/html/nsJSHTMLIsIndexElement.cpp index e28db0ecc23..2954f15d8c0 100644 --- a/mozilla/dom/src/html/nsJSHTMLIsIndexElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLIsIndexElement.cpp @@ -312,7 +312,18 @@ static JSFunctionSpec HTMLIsIndexElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLIsIndexElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLIsIndexElement *a = (nsIDOMHTMLIsIndexElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -369,13 +380,15 @@ nsresult NS_InitHTMLIsIndexElementClass(nsIScriptContext *aContext, void **aProt // // Method for creating a new HTMLIsIndexElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLIsIndexElement(nsIScriptContext *aContext, nsIDOMHTMLIsIndexElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLIsIndexElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLIsIndexElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLIsIndexElement *aHTMLIsIndexElement; if (nsnull == aParent) { parent = nsnull; @@ -395,14 +408,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLIsIndexElement(nsIScriptContext *aCon return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLIsIndexElementIID, (void **)&aHTMLIsIndexElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLIsIndexElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLIsIndexElement); } else { + NS_RELEASE(aHTMLIsIndexElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLLIElement.cpp b/mozilla/dom/src/html/nsJSHTMLLIElement.cpp index 4b8a9c6f6ff..083fef9dc4f 100644 --- a/mozilla/dom/src/html/nsJSHTMLLIElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLLIElement.cpp @@ -286,7 +286,18 @@ static JSFunctionSpec HTMLLIElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLLIElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLLIElement *a = (nsIDOMHTMLLIElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -343,13 +354,15 @@ nsresult NS_InitHTMLLIElementClass(nsIScriptContext *aContext, void **aPrototype // // Method for creating a new HTMLLIElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLLIElement(nsIScriptContext *aContext, nsIDOMHTMLLIElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLLIElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLLIElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLLIElement *aHTMLLIElement; if (nsnull == aParent) { parent = nsnull; @@ -369,14 +382,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLLIElement(nsIScriptContext *aContext, return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLLIElementIID, (void **)&aHTMLLIElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLLIElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLLIElement); } else { + NS_RELEASE(aHTMLLIElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLLabelElement.cpp b/mozilla/dom/src/html/nsJSHTMLLabelElement.cpp index c7c1e95cd40..123c256cfda 100644 --- a/mozilla/dom/src/html/nsJSHTMLLabelElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLLabelElement.cpp @@ -342,7 +342,18 @@ static JSFunctionSpec HTMLLabelElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLLabelElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLLabelElement *a = (nsIDOMHTMLLabelElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -399,13 +410,15 @@ nsresult NS_InitHTMLLabelElementClass(nsIScriptContext *aContext, void **aProtot // // Method for creating a new HTMLLabelElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLLabelElement(nsIScriptContext *aContext, nsIDOMHTMLLabelElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLLabelElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLLabelElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLLabelElement *aHTMLLabelElement; if (nsnull == aParent) { parent = nsnull; @@ -425,14 +438,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLLabelElement(nsIScriptContext *aConte return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLLabelElementIID, (void **)&aHTMLLabelElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLLabelElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLLabelElement); } else { + NS_RELEASE(aHTMLLabelElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLLegendElement.cpp b/mozilla/dom/src/html/nsJSHTMLLegendElement.cpp index 7b878614e5b..148eb506b4b 100644 --- a/mozilla/dom/src/html/nsJSHTMLLegendElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLLegendElement.cpp @@ -342,7 +342,18 @@ static JSFunctionSpec HTMLLegendElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLLegendElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLLegendElement *a = (nsIDOMHTMLLegendElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -399,13 +410,15 @@ nsresult NS_InitHTMLLegendElementClass(nsIScriptContext *aContext, void **aProto // // Method for creating a new HTMLLegendElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLLegendElement(nsIScriptContext *aContext, nsIDOMHTMLLegendElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLLegendElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLLegendElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLLegendElement *aHTMLLegendElement; if (nsnull == aParent) { parent = nsnull; @@ -425,14 +438,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLLegendElement(nsIScriptContext *aCont return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLLegendElementIID, (void **)&aHTMLLegendElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLLegendElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLLegendElement); } else { + NS_RELEASE(aHTMLLegendElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLLinkElement.cpp b/mozilla/dom/src/html/nsJSHTMLLinkElement.cpp index 3149f6c29a2..0517575639f 100644 --- a/mozilla/dom/src/html/nsJSHTMLLinkElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLLinkElement.cpp @@ -496,7 +496,18 @@ static JSFunctionSpec HTMLLinkElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLLinkElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLLinkElement *a = (nsIDOMHTMLLinkElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -553,13 +564,15 @@ nsresult NS_InitHTMLLinkElementClass(nsIScriptContext *aContext, void **aPrototy // // Method for creating a new HTMLLinkElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLLinkElement(nsIScriptContext *aContext, nsIDOMHTMLLinkElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLLinkElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLLinkElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLLinkElement *aHTMLLinkElement; if (nsnull == aParent) { parent = nsnull; @@ -579,14 +592,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLLinkElement(nsIScriptContext *aContex return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLLinkElementIID, (void **)&aHTMLLinkElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLLinkElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLLinkElement); } else { + NS_RELEASE(aHTMLLinkElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLMapElement.cpp b/mozilla/dom/src/html/nsJSHTMLMapElement.cpp index d3e5ec24ab1..e45e1291b93 100644 --- a/mozilla/dom/src/html/nsJSHTMLMapElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLMapElement.cpp @@ -312,7 +312,18 @@ static JSFunctionSpec HTMLMapElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLMapElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLMapElement *a = (nsIDOMHTMLMapElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -369,13 +380,15 @@ nsresult NS_InitHTMLMapElementClass(nsIScriptContext *aContext, void **aPrototyp // // Method for creating a new HTMLMapElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLMapElement(nsIScriptContext *aContext, nsIDOMHTMLMapElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLMapElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLMapElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLMapElement *aHTMLMapElement; if (nsnull == aParent) { parent = nsnull; @@ -395,14 +408,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLMapElement(nsIScriptContext *aContext return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLMapElementIID, (void **)&aHTMLMapElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLMapElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLMapElement); } else { + NS_RELEASE(aHTMLMapElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLMenuElement.cpp b/mozilla/dom/src/html/nsJSHTMLMenuElement.cpp index 6b2e7e1bc6d..292dc46de0d 100644 --- a/mozilla/dom/src/html/nsJSHTMLMenuElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLMenuElement.cpp @@ -256,7 +256,18 @@ static JSFunctionSpec HTMLMenuElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLMenuElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLMenuElement *a = (nsIDOMHTMLMenuElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -313,13 +324,15 @@ nsresult NS_InitHTMLMenuElementClass(nsIScriptContext *aContext, void **aPrototy // // Method for creating a new HTMLMenuElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLMenuElement(nsIScriptContext *aContext, nsIDOMHTMLMenuElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLMenuElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLMenuElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLMenuElement *aHTMLMenuElement; if (nsnull == aParent) { parent = nsnull; @@ -339,14 +352,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLMenuElement(nsIScriptContext *aContex return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLMenuElementIID, (void **)&aHTMLMenuElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLMenuElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLMenuElement); } else { + NS_RELEASE(aHTMLMenuElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLMetaElement.cpp b/mozilla/dom/src/html/nsJSHTMLMetaElement.cpp index d3256752625..d1a5fbbe090 100644 --- a/mozilla/dom/src/html/nsJSHTMLMetaElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLMetaElement.cpp @@ -347,7 +347,18 @@ static JSFunctionSpec HTMLMetaElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLMetaElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLMetaElement *a = (nsIDOMHTMLMetaElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -404,13 +415,15 @@ nsresult NS_InitHTMLMetaElementClass(nsIScriptContext *aContext, void **aPrototy // // Method for creating a new HTMLMetaElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLMetaElement(nsIScriptContext *aContext, nsIDOMHTMLMetaElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLMetaElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLMetaElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLMetaElement *aHTMLMetaElement; if (nsnull == aParent) { parent = nsnull; @@ -430,14 +443,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLMetaElement(nsIScriptContext *aContex return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLMetaElementIID, (void **)&aHTMLMetaElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLMetaElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLMetaElement); } else { + NS_RELEASE(aHTMLMetaElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLModElement.cpp b/mozilla/dom/src/html/nsJSHTMLModElement.cpp index edda644b6bf..de85699016f 100644 --- a/mozilla/dom/src/html/nsJSHTMLModElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLModElement.cpp @@ -287,7 +287,18 @@ static JSFunctionSpec HTMLModElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLModElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLModElement *a = (nsIDOMHTMLModElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -344,13 +355,15 @@ nsresult NS_InitHTMLModElementClass(nsIScriptContext *aContext, void **aPrototyp // // Method for creating a new HTMLModElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLModElement(nsIScriptContext *aContext, nsIDOMHTMLModElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLModElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLModElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLModElement *aHTMLModElement; if (nsnull == aParent) { parent = nsnull; @@ -370,14 +383,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLModElement(nsIScriptContext *aContext return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLModElementIID, (void **)&aHTMLModElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLModElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLModElement); } else { + NS_RELEASE(aHTMLModElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLOListElement.cpp b/mozilla/dom/src/html/nsJSHTMLOListElement.cpp index 1e9d9f4c9d2..74947b743af 100644 --- a/mozilla/dom/src/html/nsJSHTMLOListElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLOListElement.cpp @@ -315,7 +315,18 @@ static JSFunctionSpec HTMLOListElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLOListElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLOListElement *a = (nsIDOMHTMLOListElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -372,13 +383,15 @@ nsresult NS_InitHTMLOListElementClass(nsIScriptContext *aContext, void **aProtot // // Method for creating a new HTMLOListElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLOListElement(nsIScriptContext *aContext, nsIDOMHTMLOListElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLOListElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLOListElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLOListElement *aHTMLOListElement; if (nsnull == aParent) { parent = nsnull; @@ -398,14 +411,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLOListElement(nsIScriptContext *aConte return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLOListElementIID, (void **)&aHTMLOListElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLOListElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLOListElement); } else { + NS_RELEASE(aHTMLOListElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLObjectElement.cpp b/mozilla/dom/src/html/nsJSHTMLObjectElement.cpp index dc67dacd212..1edb4142bde 100644 --- a/mozilla/dom/src/html/nsJSHTMLObjectElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLObjectElement.cpp @@ -790,7 +790,18 @@ static JSFunctionSpec HTMLObjectElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLObjectElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLObjectElement *a = (nsIDOMHTMLObjectElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -847,13 +858,15 @@ nsresult NS_InitHTMLObjectElementClass(nsIScriptContext *aContext, void **aProto // // Method for creating a new HTMLObjectElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLObjectElement(nsIScriptContext *aContext, nsIDOMHTMLObjectElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLObjectElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLObjectElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLObjectElement *aHTMLObjectElement; if (nsnull == aParent) { parent = nsnull; @@ -873,14 +886,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLObjectElement(nsIScriptContext *aCont return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLObjectElementIID, (void **)&aHTMLObjectElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLObjectElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLObjectElement); } else { + NS_RELEASE(aHTMLObjectElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLOptGroupElement.cpp b/mozilla/dom/src/html/nsJSHTMLOptGroupElement.cpp index b2cb427e67b..297271caa03 100644 --- a/mozilla/dom/src/html/nsJSHTMLOptGroupElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLOptGroupElement.cpp @@ -286,7 +286,18 @@ static JSFunctionSpec HTMLOptGroupElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLOptGroupElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLOptGroupElement *a = (nsIDOMHTMLOptGroupElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -343,13 +354,15 @@ nsresult NS_InitHTMLOptGroupElementClass(nsIScriptContext *aContext, void **aPro // // Method for creating a new HTMLOptGroupElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLOptGroupElement(nsIScriptContext *aContext, nsIDOMHTMLOptGroupElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLOptGroupElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLOptGroupElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLOptGroupElement *aHTMLOptGroupElement; if (nsnull == aParent) { parent = nsnull; @@ -369,14 +382,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLOptGroupElement(nsIScriptContext *aCo return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLOptGroupElementIID, (void **)&aHTMLOptGroupElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLOptGroupElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLOptGroupElement); } else { + NS_RELEASE(aHTMLOptGroupElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLOptionElement.cpp b/mozilla/dom/src/html/nsJSHTMLOptionElement.cpp index 85a9add8db2..05211505d7e 100644 --- a/mozilla/dom/src/html/nsJSHTMLOptionElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLOptionElement.cpp @@ -488,7 +488,18 @@ static JSFunctionSpec HTMLOptionElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLOptionElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLOptionElement *a = (nsIDOMHTMLOptionElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -545,13 +556,15 @@ nsresult NS_InitHTMLOptionElementClass(nsIScriptContext *aContext, void **aProto // // Method for creating a new HTMLOptionElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLOptionElement(nsIScriptContext *aContext, nsIDOMHTMLOptionElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLOptionElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLOptionElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLOptionElement *aHTMLOptionElement; if (nsnull == aParent) { parent = nsnull; @@ -571,14 +584,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLOptionElement(nsIScriptContext *aCont return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLOptionElementIID, (void **)&aHTMLOptionElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLOptionElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLOptionElement); } else { + NS_RELEASE(aHTMLOptionElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLParagraphElement.cpp b/mozilla/dom/src/html/nsJSHTMLParagraphElement.cpp index 04da91daa41..29cc06b87c4 100644 --- a/mozilla/dom/src/html/nsJSHTMLParagraphElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLParagraphElement.cpp @@ -257,7 +257,18 @@ static JSFunctionSpec HTMLParagraphElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLParagraphElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLParagraphElement *a = (nsIDOMHTMLParagraphElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -314,13 +325,15 @@ nsresult NS_InitHTMLParagraphElementClass(nsIScriptContext *aContext, void **aPr // // Method for creating a new HTMLParagraphElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLParagraphElement(nsIScriptContext *aContext, nsIDOMHTMLParagraphElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLParagraphElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLParagraphElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLParagraphElement *aHTMLParagraphElement; if (nsnull == aParent) { parent = nsnull; @@ -340,14 +353,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLParagraphElement(nsIScriptContext *aC return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLParagraphElementIID, (void **)&aHTMLParagraphElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLParagraphElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLParagraphElement); } else { + NS_RELEASE(aHTMLParagraphElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLParamElement.cpp b/mozilla/dom/src/html/nsJSHTMLParamElement.cpp index c870deecae3..51e860897d2 100644 --- a/mozilla/dom/src/html/nsJSHTMLParamElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLParamElement.cpp @@ -347,7 +347,18 @@ static JSFunctionSpec HTMLParamElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLParamElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLParamElement *a = (nsIDOMHTMLParamElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -404,13 +415,15 @@ nsresult NS_InitHTMLParamElementClass(nsIScriptContext *aContext, void **aProtot // // Method for creating a new HTMLParamElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLParamElement(nsIScriptContext *aContext, nsIDOMHTMLParamElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLParamElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLParamElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLParamElement *aHTMLParamElement; if (nsnull == aParent) { parent = nsnull; @@ -430,14 +443,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLParamElement(nsIScriptContext *aConte return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLParamElementIID, (void **)&aHTMLParamElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLParamElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLParamElement); } else { + NS_RELEASE(aHTMLParamElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLPreElement.cpp b/mozilla/dom/src/html/nsJSHTMLPreElement.cpp index 672cb0a205a..49192c17127 100644 --- a/mozilla/dom/src/html/nsJSHTMLPreElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLPreElement.cpp @@ -256,7 +256,18 @@ static JSFunctionSpec HTMLPreElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLPreElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLPreElement *a = (nsIDOMHTMLPreElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -313,13 +324,15 @@ nsresult NS_InitHTMLPreElementClass(nsIScriptContext *aContext, void **aPrototyp // // Method for creating a new HTMLPreElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLPreElement(nsIScriptContext *aContext, nsIDOMHTMLPreElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLPreElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLPreElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLPreElement *aHTMLPreElement; if (nsnull == aParent) { parent = nsnull; @@ -339,14 +352,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLPreElement(nsIScriptContext *aContext return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLPreElementIID, (void **)&aHTMLPreElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLPreElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLPreElement); } else { + NS_RELEASE(aHTMLPreElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLQuoteElement.cpp b/mozilla/dom/src/html/nsJSHTMLQuoteElement.cpp index e204a9acba8..c0ea9b8907c 100644 --- a/mozilla/dom/src/html/nsJSHTMLQuoteElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLQuoteElement.cpp @@ -257,7 +257,18 @@ static JSFunctionSpec HTMLQuoteElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLQuoteElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLQuoteElement *a = (nsIDOMHTMLQuoteElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -314,13 +325,15 @@ nsresult NS_InitHTMLQuoteElementClass(nsIScriptContext *aContext, void **aProtot // // Method for creating a new HTMLQuoteElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLQuoteElement(nsIScriptContext *aContext, nsIDOMHTMLQuoteElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLQuoteElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLQuoteElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLQuoteElement *aHTMLQuoteElement; if (nsnull == aParent) { parent = nsnull; @@ -340,14 +353,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLQuoteElement(nsIScriptContext *aConte return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLQuoteElementIID, (void **)&aHTMLQuoteElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLQuoteElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLQuoteElement); } else { + NS_RELEASE(aHTMLQuoteElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLScriptElement.cpp b/mozilla/dom/src/html/nsJSHTMLScriptElement.cpp index 3f80658f668..6e6dcb59e66 100644 --- a/mozilla/dom/src/html/nsJSHTMLScriptElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLScriptElement.cpp @@ -436,7 +436,18 @@ static JSFunctionSpec HTMLScriptElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLScriptElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLScriptElement *a = (nsIDOMHTMLScriptElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -493,13 +504,15 @@ nsresult NS_InitHTMLScriptElementClass(nsIScriptContext *aContext, void **aProto // // Method for creating a new HTMLScriptElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLScriptElement(nsIScriptContext *aContext, nsIDOMHTMLScriptElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLScriptElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLScriptElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLScriptElement *aHTMLScriptElement; if (nsnull == aParent) { parent = nsnull; @@ -519,14 +532,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLScriptElement(nsIScriptContext *aCont return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLScriptElementIID, (void **)&aHTMLScriptElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLScriptElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLScriptElement); } else { + NS_RELEASE(aHTMLScriptElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLSelectElement.cpp b/mozilla/dom/src/html/nsJSHTMLSelectElement.cpp index b2fb91d04cd..15c8db33a52 100644 --- a/mozilla/dom/src/html/nsJSHTMLSelectElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLSelectElement.cpp @@ -784,7 +784,18 @@ static JSFunctionSpec HTMLSelectElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLSelectElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLSelectElement *a = (nsIDOMHTMLSelectElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -841,13 +852,15 @@ nsresult NS_InitHTMLSelectElementClass(nsIScriptContext *aContext, void **aProto // // Method for creating a new HTMLSelectElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLSelectElement(nsIScriptContext *aContext, nsIDOMHTMLSelectElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLSelectElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLSelectElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLSelectElement *aHTMLSelectElement; if (nsnull == aParent) { parent = nsnull; @@ -867,14 +880,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLSelectElement(nsIScriptContext *aCont return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLSelectElementIID, (void **)&aHTMLSelectElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLSelectElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLSelectElement); } else { + NS_RELEASE(aHTMLSelectElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLStyleElement.cpp b/mozilla/dom/src/html/nsJSHTMLStyleElement.cpp index 20aaa3d228b..9e5e2d9c641 100644 --- a/mozilla/dom/src/html/nsJSHTMLStyleElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLStyleElement.cpp @@ -316,7 +316,18 @@ static JSFunctionSpec HTMLStyleElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLStyleElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLStyleElement *a = (nsIDOMHTMLStyleElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -373,13 +384,15 @@ nsresult NS_InitHTMLStyleElementClass(nsIScriptContext *aContext, void **aProtot // // Method for creating a new HTMLStyleElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLStyleElement(nsIScriptContext *aContext, nsIDOMHTMLStyleElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLStyleElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLStyleElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLStyleElement *aHTMLStyleElement; if (nsnull == aParent) { parent = nsnull; @@ -399,14 +412,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLStyleElement(nsIScriptContext *aConte return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLStyleElementIID, (void **)&aHTMLStyleElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLStyleElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLStyleElement); } else { + NS_RELEASE(aHTMLStyleElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLTableCaptionElement.cpp b/mozilla/dom/src/html/nsJSHTMLTableCaptionElement.cpp index a0e536332b2..81e3cd47d28 100644 --- a/mozilla/dom/src/html/nsJSHTMLTableCaptionElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLTableCaptionElement.cpp @@ -257,7 +257,18 @@ static JSFunctionSpec HTMLTableCaptionElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLTableCaptionElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLTableCaptionElement *a = (nsIDOMHTMLTableCaptionElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -314,13 +325,15 @@ nsresult NS_InitHTMLTableCaptionElementClass(nsIScriptContext *aContext, void ** // // Method for creating a new HTMLTableCaptionElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLTableCaptionElement(nsIScriptContext *aContext, nsIDOMHTMLTableCaptionElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLTableCaptionElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLTableCaptionElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLTableCaptionElement *aHTMLTableCaptionElement; if (nsnull == aParent) { parent = nsnull; @@ -340,14 +353,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLTableCaptionElement(nsIScriptContext return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLTableCaptionElementIID, (void **)&aHTMLTableCaptionElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLTableCaptionElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLTableCaptionElement); } else { + NS_RELEASE(aHTMLTableCaptionElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLTableCellElement.cpp b/mozilla/dom/src/html/nsJSHTMLTableCellElement.cpp index 8ba6942fa84..e264d3f9e91 100644 --- a/mozilla/dom/src/html/nsJSHTMLTableCellElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLTableCellElement.cpp @@ -673,7 +673,18 @@ static JSFunctionSpec HTMLTableCellElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLTableCellElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLTableCellElement *a = (nsIDOMHTMLTableCellElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -730,13 +741,15 @@ nsresult NS_InitHTMLTableCellElementClass(nsIScriptContext *aContext, void **aPr // // Method for creating a new HTMLTableCellElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLTableCellElement(nsIScriptContext *aContext, nsIDOMHTMLTableCellElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLTableCellElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLTableCellElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLTableCellElement *aHTMLTableCellElement; if (nsnull == aParent) { parent = nsnull; @@ -756,14 +769,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLTableCellElement(nsIScriptContext *aC return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLTableCellElementIID, (void **)&aHTMLTableCellElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLTableCellElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLTableCellElement); } else { + NS_RELEASE(aHTMLTableCellElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLTableColElement.cpp b/mozilla/dom/src/html/nsJSHTMLTableColElement.cpp index 41669f20a15..28bb24ca461 100644 --- a/mozilla/dom/src/html/nsJSHTMLTableColElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLTableColElement.cpp @@ -406,7 +406,18 @@ static JSFunctionSpec HTMLTableColElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLTableColElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLTableColElement *a = (nsIDOMHTMLTableColElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -463,13 +474,15 @@ nsresult NS_InitHTMLTableColElementClass(nsIScriptContext *aContext, void **aPro // // Method for creating a new HTMLTableColElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLTableColElement(nsIScriptContext *aContext, nsIDOMHTMLTableColElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLTableColElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLTableColElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLTableColElement *aHTMLTableColElement; if (nsnull == aParent) { parent = nsnull; @@ -489,14 +502,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLTableColElement(nsIScriptContext *aCo return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLTableColElementIID, (void **)&aHTMLTableColElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLTableColElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLTableColElement); } else { + NS_RELEASE(aHTMLTableColElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLTableElement.cpp b/mozilla/dom/src/html/nsJSHTMLTableElement.cpp index c738d4a9954..ffa723e3dd4 100644 --- a/mozilla/dom/src/html/nsJSHTMLTableElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLTableElement.cpp @@ -1117,7 +1117,18 @@ static JSFunctionSpec HTMLTableElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLTableElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLTableElement *a = (nsIDOMHTMLTableElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -1174,13 +1185,15 @@ nsresult NS_InitHTMLTableElementClass(nsIScriptContext *aContext, void **aProtot // // Method for creating a new HTMLTableElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLTableElement(nsIScriptContext *aContext, nsIDOMHTMLTableElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLTableElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLTableElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLTableElement *aHTMLTableElement; if (nsnull == aParent) { parent = nsnull; @@ -1200,14 +1213,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLTableElement(nsIScriptContext *aConte return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLTableElementIID, (void **)&aHTMLTableElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLTableElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLTableElement); } else { + NS_RELEASE(aHTMLTableElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLTableRowElement.cpp b/mozilla/dom/src/html/nsJSHTMLTableRowElement.cpp index dbed5b65fed..beb673ee2b8 100644 --- a/mozilla/dom/src/html/nsJSHTMLTableRowElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLTableRowElement.cpp @@ -589,7 +589,18 @@ static JSFunctionSpec HTMLTableRowElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLTableRowElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLTableRowElement *a = (nsIDOMHTMLTableRowElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -646,13 +657,15 @@ nsresult NS_InitHTMLTableRowElementClass(nsIScriptContext *aContext, void **aPro // // Method for creating a new HTMLTableRowElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLTableRowElement(nsIScriptContext *aContext, nsIDOMHTMLTableRowElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLTableRowElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLTableRowElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLTableRowElement *aHTMLTableRowElement; if (nsnull == aParent) { parent = nsnull; @@ -672,14 +685,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLTableRowElement(nsIScriptContext *aCo return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLTableRowElementIID, (void **)&aHTMLTableRowElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLTableRowElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLTableRowElement); } else { + NS_RELEASE(aHTMLTableRowElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLTableSectionElement.cpp b/mozilla/dom/src/html/nsJSHTMLTableSectionElement.cpp index f90d624bc4d..28e89d496b3 100644 --- a/mozilla/dom/src/html/nsJSHTMLTableSectionElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLTableSectionElement.cpp @@ -441,7 +441,18 @@ static JSFunctionSpec HTMLTableSectionElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLTableSectionElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLTableSectionElement *a = (nsIDOMHTMLTableSectionElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -498,13 +509,15 @@ nsresult NS_InitHTMLTableSectionElementClass(nsIScriptContext *aContext, void ** // // Method for creating a new HTMLTableSectionElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLTableSectionElement(nsIScriptContext *aContext, nsIDOMHTMLTableSectionElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLTableSectionElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLTableSectionElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLTableSectionElement *aHTMLTableSectionElement; if (nsnull == aParent) { parent = nsnull; @@ -524,14 +537,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLTableSectionElement(nsIScriptContext return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLTableSectionElementIID, (void **)&aHTMLTableSectionElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLTableSectionElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLTableSectionElement); } else { + NS_RELEASE(aHTMLTableSectionElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLTbodyElement.cpp b/mozilla/dom/src/html/nsJSHTMLTbodyElement.cpp index df68627fac8..c17c1810f9d 100644 --- a/mozilla/dom/src/html/nsJSHTMLTbodyElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLTbodyElement.cpp @@ -347,7 +347,18 @@ static JSFunctionSpec HTMLTbodyElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLTbodyElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLTbodyElement *a = (nsIDOMHTMLTbodyElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -404,13 +415,15 @@ nsresult NS_InitHTMLTbodyElementClass(nsIScriptContext *aContext, void **aProtot // // Method for creating a new HTMLTbodyElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLTbodyElement(nsIScriptContext *aContext, nsIDOMHTMLTbodyElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLTbodyElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLTbodyElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLTbodyElement *aHTMLTbodyElement; if (nsnull == aParent) { parent = nsnull; @@ -430,14 +443,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLTbodyElement(nsIScriptContext *aConte return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLTbodyElementIID, (void **)&aHTMLTbodyElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLTbodyElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLTbodyElement); } else { + NS_RELEASE(aHTMLTbodyElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLTextAreaElement.cpp b/mozilla/dom/src/html/nsJSHTMLTextAreaElement.cpp index a4035173cf8..bc112adaebd 100644 --- a/mozilla/dom/src/html/nsJSHTMLTextAreaElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLTextAreaElement.cpp @@ -619,7 +619,18 @@ static JSFunctionSpec HTMLTextAreaElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLTextAreaElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLTextAreaElement *a = (nsIDOMHTMLTextAreaElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -676,13 +687,15 @@ nsresult NS_InitHTMLTextAreaElementClass(nsIScriptContext *aContext, void **aPro // // Method for creating a new HTMLTextAreaElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLTextAreaElement(nsIScriptContext *aContext, nsIDOMHTMLTextAreaElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLTextAreaElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLTextAreaElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLTextAreaElement *aHTMLTextAreaElement; if (nsnull == aParent) { parent = nsnull; @@ -702,14 +715,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLTextAreaElement(nsIScriptContext *aCo return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLTextAreaElementIID, (void **)&aHTMLTextAreaElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLTextAreaElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLTextAreaElement); } else { + NS_RELEASE(aHTMLTextAreaElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLTfootElement.cpp b/mozilla/dom/src/html/nsJSHTMLTfootElement.cpp index 6a84a91aca0..f2df69f3632 100644 --- a/mozilla/dom/src/html/nsJSHTMLTfootElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLTfootElement.cpp @@ -347,7 +347,18 @@ static JSFunctionSpec HTMLTfootElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLTfootElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLTfootElement *a = (nsIDOMHTMLTfootElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -404,13 +415,15 @@ nsresult NS_InitHTMLTfootElementClass(nsIScriptContext *aContext, void **aProtot // // Method for creating a new HTMLTfootElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLTfootElement(nsIScriptContext *aContext, nsIDOMHTMLTfootElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLTfootElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLTfootElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLTfootElement *aHTMLTfootElement; if (nsnull == aParent) { parent = nsnull; @@ -430,14 +443,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLTfootElement(nsIScriptContext *aConte return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLTfootElementIID, (void **)&aHTMLTfootElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLTfootElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLTfootElement); } else { + NS_RELEASE(aHTMLTfootElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLTheadElement.cpp b/mozilla/dom/src/html/nsJSHTMLTheadElement.cpp index 53325ad7a99..e9f08376de6 100644 --- a/mozilla/dom/src/html/nsJSHTMLTheadElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLTheadElement.cpp @@ -347,7 +347,18 @@ static JSFunctionSpec HTMLTheadElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLTheadElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLTheadElement *a = (nsIDOMHTMLTheadElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -404,13 +415,15 @@ nsresult NS_InitHTMLTheadElementClass(nsIScriptContext *aContext, void **aProtot // // Method for creating a new HTMLTheadElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLTheadElement(nsIScriptContext *aContext, nsIDOMHTMLTheadElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLTheadElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLTheadElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLTheadElement *aHTMLTheadElement; if (nsnull == aParent) { parent = nsnull; @@ -430,14 +443,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLTheadElement(nsIScriptContext *aConte return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLTheadElementIID, (void **)&aHTMLTheadElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLTheadElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLTheadElement); } else { + NS_RELEASE(aHTMLTheadElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLTitleElement.cpp b/mozilla/dom/src/html/nsJSHTMLTitleElement.cpp index c5074fbfa80..2ec07db8960 100644 --- a/mozilla/dom/src/html/nsJSHTMLTitleElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLTitleElement.cpp @@ -257,7 +257,18 @@ static JSFunctionSpec HTMLTitleElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLTitleElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLTitleElement *a = (nsIDOMHTMLTitleElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -314,13 +325,15 @@ nsresult NS_InitHTMLTitleElementClass(nsIScriptContext *aContext, void **aProtot // // Method for creating a new HTMLTitleElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLTitleElement(nsIScriptContext *aContext, nsIDOMHTMLTitleElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLTitleElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLTitleElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLTitleElement *aHTMLTitleElement; if (nsnull == aParent) { parent = nsnull; @@ -340,14 +353,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLTitleElement(nsIScriptContext *aConte return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLTitleElementIID, (void **)&aHTMLTitleElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLTitleElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLTitleElement); } else { + NS_RELEASE(aHTMLTitleElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/src/html/nsJSHTMLUListElement.cpp b/mozilla/dom/src/html/nsJSHTMLUListElement.cpp index bce4f8f89da..7e6f1abd183 100644 --- a/mozilla/dom/src/html/nsJSHTMLUListElement.cpp +++ b/mozilla/dom/src/html/nsJSHTMLUListElement.cpp @@ -286,7 +286,18 @@ static JSFunctionSpec HTMLUListElementMethods[] = PR_STATIC_CALLBACK(JSBool) HTMLUListElement(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval) { - return JS_TRUE; + nsIDOMHTMLUListElement *a = (nsIDOMHTMLUListElement*)JS_GetPrivate(cx, obj); + PRBool result = PR_TRUE; + + if (nsnull != a) { + // get the js object + nsIJSScriptObject *object; + if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) { + result = object->Construct(cx, obj, argc, argv, rval); + NS_RELEASE(object); + } + } + return (result == PR_TRUE) ? JS_TRUE : JS_FALSE; } @@ -343,13 +354,15 @@ nsresult NS_InitHTMLUListElementClass(nsIScriptContext *aContext, void **aProtot // // Method for creating a new HTMLUListElement JavaScript object // -extern "C" NS_DOM nsresult NS_NewScriptHTMLUListElement(nsIScriptContext *aContext, nsIDOMHTMLUListElement *aSupports, nsISupports *aParent, void **aReturn) +extern "C" NS_DOM nsresult NS_NewScriptHTMLUListElement(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn) { NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, "null argument to NS_NewScriptHTMLUListElement"); JSObject *proto; JSObject *parent; nsIScriptObjectOwner *owner; JSContext *jscontext = (JSContext *)aContext->GetNativeContext(); + nsresult result = NS_OK; + nsIDOMHTMLUListElement *aHTMLUListElement; if (nsnull == aParent) { parent = nsnull; @@ -369,14 +382,19 @@ extern "C" NS_DOM nsresult NS_NewScriptHTMLUListElement(nsIScriptContext *aConte return NS_ERROR_FAILURE; } + result = aSupports->QueryInterface(kIHTMLUListElementIID, (void **)&aHTMLUListElement); + if (NS_OK != result) { + return result; + } + // create a js object for this class *aReturn = JS_NewObject(jscontext, &HTMLUListElementClass, proto, parent); if (nsnull != *aReturn) { // connect the native object to the js object - JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports); - NS_ADDREF(aSupports); + JS_SetPrivate(jscontext, (JSObject *)*aReturn, aHTMLUListElement); } else { + NS_RELEASE(aHTMLUListElement); return NS_ERROR_FAILURE; } diff --git a/mozilla/dom/tools/JSStubGen.cpp b/mozilla/dom/tools/JSStubGen.cpp index 13b468b54f7..7d80ae5089e 100644 --- a/mozilla/dom/tools/JSStubGen.cpp +++ b/mozilla/dom/tools/JSStubGen.cpp @@ -1316,17 +1316,29 @@ static const char *kConstructorStr = "PR_STATIC_CALLBACK(JSBool)\n" "%s(JSContext *cx, JSObject *obj, uintN argc, jsval *argv, jsval *rval)\n" "{\n" -" return JS_TRUE;\n" +" nsIDOM%s *a = (nsIDOM%s*)JS_GetPrivate(cx, obj);\n" +" PRBool result = PR_TRUE;\n" +" \n" +" if (nsnull != a) {\n" +" // get the js object\n" +" nsIJSScriptObject *object;\n" +" if (NS_OK == a->QueryInterface(kIJSScriptObjectIID, (void**)&object)) {\n" +" result = object->Construct(cx, obj, argc, argv, rval);\n" +" NS_RELEASE(object);\n" +" }\n" +" }\n" +" return (result == PR_TRUE) ? JS_TRUE : JS_FALSE;\n" "}\n"; void JSStubGen::GenerateConstructor(IdlSpecification &aSpec) { - char buf[512]; + char buf[1024]; ofstream *file = GetFile(); IdlInterface *primary_iface = aSpec.GetInterfaceAt(0); sprintf(buf, kConstructorStr, primary_iface->GetName(), + primary_iface->GetName(), primary_iface->GetName(), primary_iface->GetName()); *file << buf; } @@ -1481,7 +1493,7 @@ static const char *kNewGlobalJSObjectStr = "\n\n//\n" "// Method for creating a new %s JavaScript object\n" "//\n" -"extern \"C\" NS_DOM nsresult NS_NewScript%s(nsIScriptContext *aContext, nsIDOM%s *aSupports, nsISupports *aParent, void **aReturn)\n" +"extern \"C\" NS_DOM nsresult NS_NewScript%s(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn)\n" "{\n" " NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, \"null arg\");\n" " JSContext *jscontext = (JSContext *)aContext->GetNativeContext();\n" @@ -1512,20 +1524,22 @@ static const char *kNewGlobalJSObjectStr = "}\n"; #define JSGEN_GENERATE_NEWGLOBALJSOBJECT(buffer, className) \ - sprintf(buffer, kNewGlobalJSObjectStr, className, className, \ + sprintf(buffer, kNewGlobalJSObjectStr, className, \ className, className, className, className) static const char *kNewJSObjectStr = "\n\n//\n" "// Method for creating a new %s JavaScript object\n" "//\n" -"extern \"C\" NS_DOM nsresult NS_NewScript%s(nsIScriptContext *aContext, nsIDOM%s *aSupports, nsISupports *aParent, void **aReturn)\n" +"extern \"C\" NS_DOM nsresult NS_NewScript%s(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn)\n" "{\n" " NS_PRECONDITION(nsnull != aContext && nsnull != aSupports && nsnull != aReturn, \"null argument to NS_NewScript%s\");\n" " JSObject *proto;\n" " JSObject *parent;\n" " nsIScriptObjectOwner *owner;\n" " JSContext *jscontext = (JSContext *)aContext->GetNativeContext();\n" +" nsresult result = NS_OK;\n" +" nsIDOM%s *a%s;\n" "\n" " if (nsnull == aParent) {\n" " parent = nsnull;\n" @@ -1545,14 +1559,19 @@ static const char *kNewJSObjectStr = " return NS_ERROR_FAILURE;\n" " }\n" "\n" +" result = aSupports->QueryInterface(kI%sIID, (void **)&a%s);\n" +" if (NS_OK != result) {\n" +" return result;\n" +" }\n" +"\n" " // create a js object for this class\n" " *aReturn = JS_NewObject(jscontext, &%sClass, proto, parent);\n" " if (nsnull != *aReturn) {\n" " // connect the native object to the js object\n" -" JS_SetPrivate(jscontext, (JSObject *)*aReturn, aSupports);\n" -" NS_ADDREF(aSupports);\n" +" JS_SetPrivate(jscontext, (JSObject *)*aReturn, a%s);\n" " }\n" " else {\n" +" NS_RELEASE(a%s);\n" " return NS_ERROR_FAILURE; \n" " }\n" "\n" @@ -1561,7 +1580,8 @@ static const char *kNewJSObjectStr = #define JSGEN_GENERATE_NEWJSOBJECT(buffer, className) \ sprintf(buffer, kNewJSObjectStr, className, className, \ - className, className, className, className) + className, className, className, className, \ + className, className, className, className, className) void JSStubGen::GenerateNew(IdlSpecification &aSpec) diff --git a/mozilla/dom/tools/Makefile.win b/mozilla/dom/tools/Makefile.win index a3191afb39b..5d022401fa5 100644 --- a/mozilla/dom/tools/Makefile.win +++ b/mozilla/dom/tools/Makefile.win @@ -52,12 +52,20 @@ LINCS= \ LCFLAGS = $(LCFLAGS) -GX +TAGSNAME=nsHTMLTagsEnums +TAGSDESTDIR=..\src\build + include <$(DEPTH)\config\rules.mak> install:: $(PROGRAM) echo $(OS_CFLAGS) $(MAKE_INSTALL) $(PROGRAM) $(DIST)\bin $(MAKE_INSTALL) geniid.pl $(DIST)\bin + @echo +++ make: generating nsHTMLTagEnums + $(PERL) gentags.pl $(TAGSNAME) + $(MAKE_INSTALL) $(TAGSNAME).h $(TAGSDESTDIR) + $(MAKE_INSTALL) $(TAGSNAME).cpp $(TAGSDESTDIR) + clobber:: rm -f $(DIST)\bin\idlc.exe diff --git a/mozilla/dom/tools/XPCOMGen.cpp b/mozilla/dom/tools/XPCOMGen.cpp index 8d154ab8688..dabbe58774d 100644 --- a/mozilla/dom/tools/XPCOMGen.cpp +++ b/mozilla/dom/tools/XPCOMGen.cpp @@ -72,7 +72,7 @@ static const char *kReturnCallStr = "aReturn"; static const char *kClassEpilogStr = "};\n\n"; static const char *kGlobalInitClassStr = "extern nsresult NS_Init%sClass(nsIScriptContext *aContext, nsIScriptGlobalObject *aGlobal);\n\n"; static const char *kInitClassStr = "extern nsresult NS_Init%sClass(nsIScriptContext *aContext, void **aPrototype);\n\n"; -static const char *kNewObjStr = "extern \"C\" NS_DOM nsresult NS_NewScript%s(nsIScriptContext *aContext, nsIDOM%s *aSupports, nsISupports *aParent, void **aReturn);\n\n"; +static const char *kNewObjStr = "extern \"C\" NS_DOM nsresult NS_NewScript%s(nsIScriptContext *aContext, nsISupports *aSupports, nsISupports *aParent, void **aReturn);\n\n"; static const char *kMethodDeclMacroStr = "\n#define NS_DECL_IDOM%s \\\n"; static const char *kMethodForwardMacroStr = "\n#define NS_FORWARD_IDOM%s(_to) \\\n"; static const char *kEndifStr = "#endif // nsIDOM%s_h__\n"; @@ -527,7 +527,7 @@ XPCOMGen::GenerateEpilog(IdlInterface &aInterface, PRBool aIsPrimary) } *file << buf; - sprintf(buf, kNewObjStr, iface_name, iface_name); + sprintf(buf, kNewObjStr, iface_name); *file << buf; } diff --git a/mozilla/dom/tools/gentags.pl b/mozilla/dom/tools/gentags.pl new file mode 100644 index 00000000000..15bba7934c4 --- /dev/null +++ b/mozilla/dom/tools/gentags.pl @@ -0,0 +1,297 @@ +#! /usr/local/bin/perl + +# The contents of this file are subject to the Netscape Public License +# Version 1.0 (the "License"); you may not use this file except in +# compliance with the License. You may obtain a copy of the License at +# http://www.mozilla.org/NPL/ +# +# Software distributed under the License is distributed on an "AS IS" +# basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See +# the License for the specific language governing rights and limitations +# under the License. +# +# The Original Code is Mozilla Communicator client code. +# +# The Initial Developer of the Original Code is Netscape Communications +# Corporation. Portions created by Netscape are Copyright (C) 1998 +# Netscape Communications Corporation. All Rights Reserved. + +###################################################################### + +# Table of tag names; it doesn't have to be sorted because code +# below will do it. However, for the sake of ease of additions, keep +# it sorted so that its easy to tell where to add a new tag and that +# the tag hasn't already been added. +$i = 0; +$tags[$i++] = "a"; +$tags[$i++] = "abbr"; +$tags[$i++] = "acronym"; +$tags[$i++] = "address"; +$tags[$i++] = "applet"; +$tags[$i++] = "area"; +$tags[$i++] = "b"; +$tags[$i++] = "base"; +$tags[$i++] = "basefont"; +$tags[$i++] = "bdo"; +$tags[$i++] = "bgsound"; +$tags[$i++] = "big"; +$tags[$i++] = "blink"; +$tags[$i++] = "blockquote"; +$tags[$i++] = "body"; +$tags[$i++] = "br"; +$tags[$i++] = "button"; +$tags[$i++] = "caption"; +$tags[$i++] = "center"; +$tags[$i++] = "cite"; +$tags[$i++] = "code"; +$tags[$i++] = "col"; +$tags[$i++] = "colgroup"; +$tags[$i++] = "dd"; +$tags[$i++] = "del"; +$tags[$i++] = "dfn"; +$tags[$i++] = "dir"; +$tags[$i++] = "div"; +$tags[$i++] = "dl"; +$tags[$i++] = "dt"; +$tags[$i++] = "em"; +$tags[$i++] = "embed"; +$tags[$i++] = "fieldset"; +$tags[$i++] = "font"; +$tags[$i++] = "form"; +$tags[$i++] = "frame"; +$tags[$i++] = "frameset"; +$tags[$i++] = "h1"; +$tags[$i++] = "h2"; +$tags[$i++] = "h3"; +$tags[$i++] = "h4"; +$tags[$i++] = "h5"; +$tags[$i++] = "h6"; +$tags[$i++] = "head"; +$tags[$i++] = "hr"; +$tags[$i++] = "html"; +$tags[$i++] = "i"; +$tags[$i++] = "iframe"; +$tags[$i++] = "ilayer"; +$tags[$i++] = "img"; +$tags[$i++] = "input"; +$tags[$i++] = "ins"; +$tags[$i++] = "isindex"; +$tags[$i++] = "kbd"; +$tags[$i++] = "keygen"; +$tags[$i++] = "label"; +$tags[$i++] = "layer"; +$tags[$i++] = "legend"; +$tags[$i++] = "li"; +$tags[$i++] = "link"; +$tags[$i++] = "listing"; +$tags[$i++] = "map"; +$tags[$i++] = "menu"; +$tags[$i++] = "meta"; +$tags[$i++] = "multicol"; +$tags[$i++] = "nobr"; +$tags[$i++] = "noembed"; +$tags[$i++] = "noframes"; +$tags[$i++] = "nolayer"; +$tags[$i++] = "noscript"; +$tags[$i++] = "object"; +$tags[$i++] = "ol"; +$tags[$i++] = "optgroup"; +$tags[$i++] = "option"; +$tags[$i++] = "p"; +$tags[$i++] = "param"; +$tags[$i++] = "plaintext"; +$tags[$i++] = "pre"; +$tags[$i++] = "q"; +$tags[$i++] = "s"; +$tags[$i++] = "samp"; +$tags[$i++] = "script"; +$tags[$i++] = "select"; +$tags[$i++] = "server"; +$tags[$i++] = "small"; +$tags[$i++] = "sound"; +$tags[$i++] = "spacer"; +$tags[$i++] = "span"; +$tags[$i++] = "strike"; +$tags[$i++] = "strong"; +$tags[$i++] = "style"; +$tags[$i++] = "sub"; +$tags[$i++] = "sup"; +$tags[$i++] = "table"; +$tags[$i++] = "tbody"; +$tags[$i++] = "td"; +$tags[$i++] = "textarea"; +$tags[$i++] = "tfoot"; +$tags[$i++] = "th"; +$tags[$i++] = "thead"; +$tags[$i++] = "title"; +$tags[$i++] = "tr"; +$tags[$i++] = "tt"; +$tags[$i++] = "u"; +$tags[$i++] = "ul"; +$tags[$i++] = "var"; +$tags[$i++] = "wbr"; +$tags[$i++] = "xmp"; + +###################################################################### + +# These are not tags; rather they are extra values to place into the +# tag enumeration after the normal tags. These do not need to be sorted +# and they do not go into the tag table, just into the tag enumeration. +$extra = 0; +$extra_tags[$extra++] = "text"; +$extra_tags[$extra++] = "whitespace"; +$extra_tags[$extra++] = "newline"; +$extra_tags[$extra++] = "comment"; +$extra_tags[$extra++] = "entity"; +$extra_tags[$extra++] = "userdefined"; +$extra_tags[$extra++] = "secret_h1style"; +$extra_tags[$extra++] = "secret_h2style"; +$extra_tags[$extra++] = "secret_h3style"; +$extra_tags[$extra++] = "secret_h4style"; +$extra_tags[$extra++] = "secret_h5style"; +$extra_tags[$extra++] = "secret_h6style"; + +###################################################################### + +# Sort the tag table before using it +@tags = sort @tags; + +$copyright = "/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- + * + * The contents of this file are subject to the Netscape Public License + * Version 1.0 (the \"License\"); you may not use this file except in + * compliance with the License. You may obtain a copy of the License at + * http://www.mozilla.org/NPL/ + * + * Software distributed under the License is distributed on an \"AS IS\" + * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See + * the License for the specific language governing rights and limitations + * under the License. + * + * The Original Code is Mozilla Communicator client code. + * + * The Initial Developer of the Original Code is Netscape Communications + * Corporation. Portions created by Netscape are Copyright (C) 1998 + * Netscape Communications Corporation. All Rights Reserved. + */ + +/* Do not edit - generated by gentags.pl */ +"; + +###################################################################### + +$file_base = @ARGV[0]; + +# Generate the header file first +open(HEADER_FILE, ">$file_base.h"); + +# Print out copyright and do not edit notice +print HEADER_FILE $copyright; +print HEADER_FILE "#ifndef " . $file_base . "_h___\n"; +print HEADER_FILE "#define " . $file_base . "_h___\n"; + +# Print out enum's for the tag symbols +print HEADER_FILE "enum nsDOMHTMLTag {\n"; +print HEADER_FILE " /* this enum must be first and must be zero */\n"; +print HEADER_FILE " DOMHTMLTag_unknown=0,\n\n"; +print HEADER_FILE " /* begin tag enums */\n "; +$width = 2; +print HEADER_FILE $str; +for ($j = 0; $j < $i; $j++) { + $lower = $tags[$j]; + $lower =~ tr/A-Z/a-z/; + $str = "DOMHTMLTag_" . $lower . "=" . ($j + 1); + $str = $str . ", "; + $len = length($str); + if ($width + $len > 78) { + print HEADER_FILE "\n "; + $width = 2; + } + print HEADER_FILE $str; + $width = $width + $len; +} +print HEADER_FILE "\n\n /* The remaining enums are not for tags */\n "; + +# Print out extra enum's that are not in the tag table +$width = 2; +for ($k = 0; $k < $extra; $k++) { + $lower = $extra_tags[$k]; + $lower =~ tr/A-Z/a-z/; + $str = "eHTMLTag_" . $lower . "=" . ($j + $k + 1); + if ($k < $extra - 1) { + $str = $str . ", "; + } + $len = length($str); + if ($width + $len > 78) { + print HEADER_FILE "\n "; + $width = 2; + } + print HEADER_FILE $str; + $width = $width + $len; +} + +print HEADER_FILE "\n};\n#define NS_HTML_TAG_MAX " . $j . "\n\n"; +print HEADER_FILE + "extern NS_DOM nsDOMHTMLTag NS_DOMTagToEnum(const char* aTag);\n"; +print HEADER_FILE + "extern NS_DOM const char* NS_DOMEnumToTag(nsDOMHTMLTag aEnum);\n\n"; +print HEADER_FILE "#endif /* " . $file_base . "_h___ */\n"; +close(HEADER_FILE); + +###################################################################### + +# Generate the source file +open(CPP_FILE, ">$file_base.cpp"); +print CPP_FILE $copyright; +print CPP_FILE "#include \"nsCRT.h\"\n"; +print CPP_FILE "#include \"$file_base.h\"\n\n"; + +# Print out table of tag names +print CPP_FILE "static char* tagTable[] = {\n "; +$width = 2; +for ($j = 0; $j < $i; $j++) { + $upper = $tags[$j]; + $upper =~ tr/a-z/A-Z/; + $str = "\"" . $upper . "\""; + if ($j < $i - 1) { + $str = $str . ", "; + } + $len = length($str); + if ($width + $len > 78) { + print CPP_FILE "\n "; + $width = 2; + } + print CPP_FILE $str; + $width = $width + $len; +} +print CPP_FILE "\n};\n"; + +# Finally, dump out the search routine that takes a char* and finds it +# in the table. +print CPP_FILE " +nsDOMHTMLTag NS_DOMTagToEnum(const char* aTagName) { + int low = 0; + int high = NS_HTML_TAG_MAX - 1; + while (low <= high) { + int middle = (low + high) >> 1; + int result = nsCRT::strcasecmp(aTagName, tagTable[middle]); + if (result == 0) + return (nsDOMHTMLTag) (middle + 1); + if (result < 0) + high = middle - 1; + else + low = middle + 1; + } + return DOMHTMLTag_unknown; +} + +const char* NS_DOMEnumToTag(nsDOMHTMLTag aTagID) { + if ((int(aTagID) <= 0) || (int(aTagID) > NS_HTML_TAG_MAX)) { + return 0; + } + return tagTable[int(aTagID) - 1]; +} + +"; + +close(CPP_FILE); diff --git a/mozilla/layout/base/src/nsContentList.cpp b/mozilla/layout/base/src/nsContentList.cpp index e118ff67128..dcab6a5be31 100644 --- a/mozilla/layout/base/src/nsContentList.cpp +++ b/mozilla/layout/base/src/nsContentList.cpp @@ -217,7 +217,7 @@ nsContentList::GetScriptObject(nsIScriptContext *aContext, void** aScriptObject) nsIScriptGlobalObject *global = aContext->GetGlobalObject(); if (nsnull == mScriptObject) { - res = NS_NewScriptHTMLCollection(aContext, this, global, (void**)&mScriptObject); + res = NS_NewScriptHTMLCollection(aContext, (nsISupports*)(nsIDOMHTMLCollection*)this, global, (void**)&mScriptObject); } *aScriptObject = mScriptObject; diff --git a/mozilla/layout/base/src/nsDocument.cpp b/mozilla/layout/base/src/nsDocument.cpp index a867e55bf20..1e7b9dfcb3c 100644 --- a/mozilla/layout/base/src/nsDocument.cpp +++ b/mozilla/layout/base/src/nsDocument.cpp @@ -570,7 +570,7 @@ nsresult nsDocument::GetScriptObject(nsIScriptContext *aContext, void** aScriptO nsIScriptGlobalObject *global = aContext->GetGlobalObject(); if (nsnull == mScriptObject) { - res = NS_NewScriptDocument(aContext, this, global, (void**)&mScriptObject); + res = NS_NewScriptDocument(aContext, (nsISupports *)(nsIDOMDocument *)this, global, (void**)&mScriptObject); } *aScriptObject = mScriptObject; @@ -1102,6 +1102,13 @@ void nsDocument::Finalize(JSContext *aContext) { } +PRBool +nsDocument::Construct(JSContext *cx, JSObject *obj, uintN argc, + jsval *argv, jsval *rval) +{ + return PR_FALSE; +} + /** * Returns the Selection Object */ diff --git a/mozilla/layout/base/src/nsDocument.h b/mozilla/layout/base/src/nsDocument.h index 0c6e3c4b08f..53dde04835b 100644 --- a/mozilla/layout/base/src/nsDocument.h +++ b/mozilla/layout/base/src/nsDocument.h @@ -270,6 +270,8 @@ public: virtual PRBool Resolve(JSContext *aContext, jsval aID); virtual PRBool Convert(JSContext *aContext, jsval aID); virtual void Finalize(JSContext *aContext); + virtual PRBool Construct(JSContext *cx, JSObject *obj, uintN argc, + jsval *argv, jsval *rval); protected: nsIContent* FindContent(const nsIContent* aStartNode, diff --git a/mozilla/layout/html/base/src/nsDOMAttributes.cpp b/mozilla/layout/html/base/src/nsDOMAttributes.cpp index 4b01ff6bf19..c2da143e7e3 100644 --- a/mozilla/layout/html/base/src/nsDOMAttributes.cpp +++ b/mozilla/layout/html/base/src/nsDOMAttributes.cpp @@ -73,7 +73,7 @@ nsresult nsDOMAttribute::GetScriptObject(nsIScriptContext *aContext, void** aScr { nsresult res = NS_OK; if (nsnull == mScriptObject) { - res = NS_NewScriptAttribute(aContext, this, nsnull, (void **)&mScriptObject); + res = NS_NewScriptAttribute(aContext, (nsISupports *)(nsIDOMAttribute *)this, nsnull, (void **)&mScriptObject); } *aScriptObject = mScriptObject; return res; @@ -287,7 +287,7 @@ nsresult nsDOMAttributeMap::GetScriptObject(nsIScriptContext *aContext, void** a { nsresult res = NS_OK; if (nsnull == mScriptObject) { - res = NS_NewScriptNamedNodeMap(aContext, this, nsnull, (void**)&mScriptObject); + res = NS_NewScriptNamedNodeMap(aContext, (nsISupports *)(nsIDOMNamedNodeMap *)this, nsnull, (void**)&mScriptObject); } *aScriptObject = mScriptObject; return res; diff --git a/mozilla/layout/html/base/src/nsDOMNodeList.cpp b/mozilla/layout/html/base/src/nsDOMNodeList.cpp index 9804d5c6d50..aa1222b3a97 100644 --- a/mozilla/layout/html/base/src/nsDOMNodeList.cpp +++ b/mozilla/layout/html/base/src/nsDOMNodeList.cpp @@ -69,7 +69,7 @@ nsresult nsDOMNodeList::GetScriptObject(nsIScriptContext *aContext, void** aScri { nsresult res = NS_OK; if (nsnull == mScriptObject) { - res = NS_NewScriptNodeList(aContext, this, nsnull, (void**)&mScriptObject); + res = NS_NewScriptNodeList(aContext, (nsISupports *)(nsIDOMNodeList *)this, nsnull, (void**)&mScriptObject); } *aScriptObject = mScriptObject; return res; diff --git a/mozilla/layout/html/base/src/nsHTMLTagContent.cpp b/mozilla/layout/html/base/src/nsHTMLTagContent.cpp index 76cf09a13b8..5072a526f7c 100644 --- a/mozilla/layout/html/base/src/nsHTMLTagContent.cpp +++ b/mozilla/layout/html/base/src/nsHTMLTagContent.cpp @@ -729,7 +729,7 @@ nsresult nsHTMLTagContent::GetScriptObject(nsIScriptContext *aContext, void** aS { nsresult res = NS_OK; if (nsnull == mScriptObject) { - res = NS_NewScriptElement(aContext, this, mParent, (void**)&mScriptObject); + res = NS_NewScriptElement(aContext, (nsISupports *)(nsIDOMHTMLElement *)this, mParent, (void**)&mScriptObject); } *aScriptObject = mScriptObject; return res; @@ -840,6 +840,13 @@ void nsHTMLTagContent::Finalize(JSContext *aContext) { } +PRBool +nsHTMLTagContent::Construct(JSContext *cx, JSObject *obj, uintN argc, + jsval *argv, jsval *rval) +{ + return PR_FALSE; +} + // // Implementation of nsIDOMNode interface // diff --git a/mozilla/layout/html/base/src/nsHTMLTagContent.h b/mozilla/layout/html/base/src/nsHTMLTagContent.h index 35e367ee569..125c19ae3a7 100644 --- a/mozilla/layout/html/base/src/nsHTMLTagContent.h +++ b/mozilla/layout/html/base/src/nsHTMLTagContent.h @@ -124,6 +124,8 @@ public: virtual PRBool Resolve(JSContext *aContext, jsval aID); virtual PRBool Convert(JSContext *aContext, jsval aID); virtual void Finalize(JSContext *aContext); + virtual PRBool Construct(JSContext *cx, JSObject *obj, uintN argc, + jsval *argv, jsval *rval); // nsISupports interface NS_IMETHOD QueryInterface(REFNSIID aIID, void** aInstancePtr); diff --git a/mozilla/layout/html/base/src/nsRootPart.cpp b/mozilla/layout/html/base/src/nsRootPart.cpp index c4372604ff6..6d9ee0a7770 100644 --- a/mozilla/layout/html/base/src/nsRootPart.cpp +++ b/mozilla/layout/html/base/src/nsRootPart.cpp @@ -672,7 +672,7 @@ RootPart::GetScriptObject(nsIScriptContext *aContext, { nsresult res = NS_OK; if (nsnull == mScriptObject) { - res = NS_NewScriptElement(aContext, this, mDocument, (void**)&mScriptObject); + res = NS_NewScriptElement(aContext, (nsISupports *)(nsIDOMHTMLElement *)this, mDocument, (void**)&mScriptObject); } *aScriptObject = mScriptObject; return res; diff --git a/mozilla/layout/html/base/src/nsTextContent.cpp b/mozilla/layout/html/base/src/nsTextContent.cpp index b579a50c8e6..0b08a2e69ea 100644 --- a/mozilla/layout/html/base/src/nsTextContent.cpp +++ b/mozilla/layout/html/base/src/nsTextContent.cpp @@ -1979,7 +1979,7 @@ nsresult Text::GetScriptObject(nsIScriptContext *aContext, void** aScriptObject) { nsresult res = NS_OK; if (nsnull == mScriptObject) { - res = NS_NewScriptText(aContext, this, mParent, (void**)&mScriptObject); + res = NS_NewScriptText(aContext, (nsISupports *)(nsIDOMText *)this, mParent, (void**)&mScriptObject); } *aScriptObject = mScriptObject; return res; diff --git a/mozilla/layout/html/content/src/nsGenericHTMLElement.cpp b/mozilla/layout/html/content/src/nsGenericHTMLElement.cpp index f8875987274..8e9cb12ef1c 100644 --- a/mozilla/layout/html/content/src/nsGenericHTMLElement.cpp +++ b/mozilla/layout/html/content/src/nsGenericHTMLElement.cpp @@ -53,6 +53,9 @@ #include "nsDOMEvent.h" #include "nsIPrivateDOMEvent.h" #include "nsBodyFrame.h" +#include "nsDOMCID.h" +#include "nsIServiceManager.h" +#include "nsIDOMScriptObjectFactory.h" #include "prprf.h" // XXX todo: add in missing out-of-memory checks @@ -260,7 +263,9 @@ DOMAttribute::GetScriptObject(nsIScriptContext *aContext, { nsresult res = NS_OK; if (nsnull == mScriptObject) { - res = NS_NewScriptAttribute(aContext, this, nsnull, + res = NS_NewScriptAttribute(aContext, + (nsISupports *)(nsIDOMAttribute *)this, + nsnull, (void **)&mScriptObject); } *aScriptObject = mScriptObject; @@ -478,7 +483,9 @@ DOMAttributeMap::GetScriptObject(nsIScriptContext *aContext, { nsresult res = NS_OK; if (nsnull == mScriptObject) { - res = NS_NewScriptNamedNodeMap(aContext, this, nsnull, + res = NS_NewScriptNamedNodeMap(aContext, + (nsISupports *)(nsIDOMNamedNodeMap *)this, + nsnull, (void**)&mScriptObject); } *aScriptObject = mScriptObject; @@ -612,6 +619,31 @@ static void ReleaseAttributes(nsIHTMLAttributes*& aAttributes) NS_RELEASE(aAttributes); } +// XXX Currently, the script object factory is global. The way we +// obtain it should, at least, be made thread-safe later. Ideally, +// we'd find a better way. +nsIDOMScriptObjectFactory* nsGenericHTMLElement::gScriptObjectFactory = nsnull; + +static NS_DEFINE_IID(kIDOMScriptObjectFactoryIID, NS_IDOM_SCRIPT_OBJECT_FACTORY_IID); +static NS_DEFINE_IID(kDOMScriptObjectFactoryCID, NS_DOM_SCRIPT_OBJECT_FACTORY_CID); + +nsresult +nsGenericHTMLElement::GetScriptObjectFactory(nsIDOMScriptObjectFactory **aResult) +{ + nsresult result = NS_OK; + + if (nsnull == gScriptObjectFactory) { + result = nsServiceManager::GetService(kDOMScriptObjectFactoryCID, + kIDOMScriptObjectFactoryIID, + (nsISupports **)&gScriptObjectFactory); + if (result != NS_OK) { + return result; + } + } + + *aResult = gScriptObjectFactory; + return result; +} nsGenericHTMLElement::nsGenericHTMLElement() { @@ -1689,10 +1721,17 @@ nsGenericHTMLElement::GetScriptObject(nsIScriptContext* aContext, { nsresult res = NS_OK; if (nsnull == mScriptObject) { - nsIDOMElement* ele = nsnull; - mContent->QueryInterface(kIDOMElementIID, (void**) &ele); - res = NS_NewScriptElement(aContext, ele, mParent, (void**)&mScriptObject); - NS_RELEASE(ele); + nsIDOMScriptObjectFactory *factory; + + res = GetScriptObjectFactory(&factory); + if (NS_OK != res) { + return res; + } + + nsAutoString tag; + mTag->ToString(tag); + res = factory->NewScriptElement(tag, aContext, mContent, + mParent, (void**)&mScriptObject); } *aScriptObject = mScriptObject; return res; diff --git a/mozilla/layout/html/content/src/nsGenericHTMLElement.h b/mozilla/layout/html/content/src/nsGenericHTMLElement.h index b3c43f34824..78e0faf9858 100644 --- a/mozilla/layout/html/content/src/nsGenericHTMLElement.h +++ b/mozilla/layout/html/content/src/nsGenericHTMLElement.h @@ -43,6 +43,7 @@ class nsIHTMLContent; class nsIStyleContext; class nsIStyleRule; class nsISupportsArray; +class nsIDOMScriptObjectFactory; enum nsSetAttrNotify { eSetAttrNotify_None = 0, @@ -51,7 +52,8 @@ enum nsSetAttrNotify { eSetAttrNotify_Restart = 3 }; -struct nsGenericHTMLElement { +class nsGenericHTMLElement { +public: nsGenericHTMLElement(); ~nsGenericHTMLElement(); @@ -242,6 +244,10 @@ struct nsGenericHTMLElement { void MapBackgroundAttributesInto(nsIStyleContext* aContext, nsIPresContext* aPresContext); + static nsresult GetScriptObjectFactory(nsIDOMScriptObjectFactory **aFactory); + + static nsIDOMScriptObjectFactory *gScriptObjectFactory; + // Up pointer to the real content object that we are // supporting. Sometimes there is work that we just can't do // ourselves, so this is needed to ask the real object to do the @@ -258,7 +264,8 @@ struct nsGenericHTMLElement { //---------------------------------------------------------------------- -struct nsGenericHTMLLeafElement : public nsGenericHTMLElement { +class nsGenericHTMLLeafElement : public nsGenericHTMLElement { +public: nsGenericHTMLLeafElement(); ~nsGenericHTMLLeafElement(); @@ -338,7 +345,8 @@ struct nsGenericHTMLLeafElement : public nsGenericHTMLElement { //---------------------------------------------------------------------- -struct nsGenericHTMLContainerElement : public nsGenericHTMLElement { +class nsGenericHTMLContainerElement : public nsGenericHTMLElement { +public: nsGenericHTMLContainerElement(); ~nsGenericHTMLContainerElement(); diff --git a/mozilla/layout/html/document/src/nsHTMLDocument.cpp b/mozilla/layout/html/document/src/nsHTMLDocument.cpp index 42b207dda22..7033042cee1 100644 --- a/mozilla/layout/html/document/src/nsHTMLDocument.cpp +++ b/mozilla/layout/html/document/src/nsHTMLDocument.cpp @@ -1037,7 +1037,7 @@ nsHTMLDocument::GetScriptObject(nsIScriptContext *aContext, void** aScriptObject nsIScriptGlobalObject *global = aContext->GetGlobalObject(); if (nsnull == mScriptObject) { - res = NS_NewScriptHTMLDocument(aContext, this, (nsISupports *)global, (void**)&mScriptObject); + res = NS_NewScriptHTMLDocument(aContext, (nsISupports *)(nsIDOMHTMLDocument *)this, (nsISupports *)global, (void**)&mScriptObject); } *aScriptObject = mScriptObject; diff --git a/mozilla/layout/html/forms/src/nsForm.cpp b/mozilla/layout/html/forms/src/nsForm.cpp index d01451fe068..39ee3b70837 100644 --- a/mozilla/layout/html/forms/src/nsForm.cpp +++ b/mozilla/layout/html/forms/src/nsForm.cpp @@ -1221,7 +1221,7 @@ nsForm::GetScriptObject(nsIScriptContext *aContext, void** aScriptObject) { nsresult res = NS_OK; if (nsnull == mScriptObject) { - res = NS_NewScriptHTMLFormElement(aContext, this, nsnull, (void**)&mScriptObject); + res = NS_NewScriptHTMLFormElement(aContext, (nsISupports *)(nsIDOMHTMLFormElement *)this, nsnull, (void**)&mScriptObject); } *aScriptObject = mScriptObject; return res; @@ -1458,7 +1458,7 @@ nsresult nsFormElementList::GetScriptObject(nsIScriptContext *aContext, void** a { nsresult res = NS_OK; if (nsnull == mScriptObject) { - res = NS_NewScriptHTMLCollection(aContext, this, nsnull, (void**)&mScriptObject); + res = NS_NewScriptHTMLCollection(aContext, (nsISupports *)(nsIDOMHTMLCollection *)this, nsnull, (void**)&mScriptObject); } *aScriptObject = mScriptObject; return res; diff --git a/mozilla/layout/html/forms/src/nsInput.cpp b/mozilla/layout/html/forms/src/nsInput.cpp index 475fc17915f..f145fc5a6c5 100644 --- a/mozilla/layout/html/forms/src/nsInput.cpp +++ b/mozilla/layout/html/forms/src/nsInput.cpp @@ -787,7 +787,7 @@ nsInput::GetScriptObject(nsIScriptContext *aContext, void** aScriptObject) { nsresult res = NS_OK; if (nsnull == mScriptObject) { - res = NS_NewScriptHTMLInputElement(aContext, this, mParent, (void**)&mScriptObject); + res = NS_NewScriptHTMLInputElement(aContext, (nsISupports *)(nsIDOMHTMLInputElement *)this, mParent, (void**)&mScriptObject); } *aScriptObject = mScriptObject; return res; diff --git a/mozilla/webshell/tests/viewer/nsSetupRegistry.cpp b/mozilla/webshell/tests/viewer/nsSetupRegistry.cpp index 295a7221cd4..c470f33d718 100644 --- a/mozilla/webshell/tests/viewer/nsSetupRegistry.cpp +++ b/mozilla/webshell/tests/viewer/nsSetupRegistry.cpp @@ -36,7 +36,7 @@ #include "nsIThrobber.h" #include "nsParserCIID.h" - +#include "nsDOMCID.h" #ifdef XP_PC #define WIDGET_DLL "raptorwidget.dll" @@ -46,6 +46,7 @@ #define PLUGIN_DLL "raptorplugin.dll" #define PREF_DLL "xppref32.dll" #define PARSER_DLL "raptorhtmlpars.dll" +#define DOM_DLL "jsdom.dll" #else #ifdef XP_MAC #include "nsMacRepository.h" @@ -57,6 +58,7 @@ #define PLUGIN_DLL "raptorplugin.so" #define PREF_DLL "libpref.so" #define PARSER_DLL "libraptorhtmlpars.so" +#define DOM_DLL "libjsdom.so" #endif #endif @@ -91,6 +93,7 @@ static NS_DEFINE_IID(kThrobberCID, NS_THROBBER_CID); static NS_DEFINE_IID(kCPluginHostCID, NS_PLUGIN_HOST_CID); static NS_DEFINE_IID(kCParserCID, NS_PARSER_IID); static NS_DEFINE_IID(kLookAndFeelCID, NS_LOOKANDFEEL_CID); +static NS_DEFINE_IID(kCDOMScriptObjectFactory, NS_DOM_SCRIPT_OBJECT_FACTORY_CID); extern "C" void @@ -126,4 +129,5 @@ NS_SetupRegistry() nsRepository::RegisterFactory(kPrefCID, PREF_DLL, PR_FALSE, PR_FALSE); nsRepository::RegisterFactory(kCPluginHostCID, PLUGIN_DLL, PR_FALSE, PR_FALSE); nsRepository::RegisterFactory(kCParserCID, PARSER_DLL, PR_FALSE, PR_FALSE); + nsRepository::RegisterFactory(kCDOMScriptObjectFactory, DOM_DLL, PR_FALSE, PR_FALSE); } diff --git a/mozilla/xpcom/base/IIDS.h b/mozilla/xpcom/base/IIDS.h index f8a5c2be0d9..e47f8614497 100644 --- a/mozilla/xpcom/base/IIDS.h +++ b/mozilla/xpcom/base/IIDS.h @@ -143,7 +143,7 @@ nsIDocumentLoadInfo = { /* a6cf9063-15b3-11d2-932e-00805f8add32 */ 0x11d2, {0x93, 0x2e, 0x00, 0x80, 0x5f, 0x8a, 0xdd, 0x32} }; -INTERFACENAME = { /* a6cf9064-15b3-11d2-932e-00805f8add32 */ +nsIDOMScriptObjectFactory = { /* a6cf9064-15b3-11d2-932e-00805f8add32 */ 0xa6cf9064, 0x15b3, 0x11d2, diff --git a/mozilla/xpcom/src/IIDS.h b/mozilla/xpcom/src/IIDS.h index f8a5c2be0d9..e47f8614497 100644 --- a/mozilla/xpcom/src/IIDS.h +++ b/mozilla/xpcom/src/IIDS.h @@ -143,7 +143,7 @@ nsIDocumentLoadInfo = { /* a6cf9063-15b3-11d2-932e-00805f8add32 */ 0x11d2, {0x93, 0x2e, 0x00, 0x80, 0x5f, 0x8a, 0xdd, 0x32} }; -INTERFACENAME = { /* a6cf9064-15b3-11d2-932e-00805f8add32 */ +nsIDOMScriptObjectFactory = { /* a6cf9064-15b3-11d2-932e-00805f8add32 */ 0xa6cf9064, 0x15b3, 0x11d2,