diff --git a/mozilla/content/xtf/public/Makefile.in b/mozilla/content/xtf/public/Makefile.in index 82022d30c96..9ee33ea2d96 100644 --- a/mozilla/content/xtf/public/Makefile.in +++ b/mozilla/content/xtf/public/Makefile.in @@ -51,25 +51,8 @@ XPIDLSRCS = \ nsIXTFElement.idl \ nsIXTFElementFactory.idl \ nsIXTFElementWrapper.idl \ - nsIXTFGenericElement.idl \ - nsIXTFGenericElementWrapper.idl \ nsIXTFPrivate.idl \ - nsIXTFVisual.idl \ - nsIXTFXMLVisual.idl \ - nsIXTFXMLVisualWrapper.idl \ - nsIXTFXULVisual.idl \ - nsIXTFXULVisualWrapper.idl \ - nsIXTFBindableElement.idl \ - nsIXTFBindableElementWrapper.idl \ - nsIXTFStyledElementWrapper.idl \ $(NULL) -ifdef MOZ_SVG -XPIDLSRCS += \ - nsIXTFSVGVisual.idl \ - nsIXTFSVGVisualWrapper.idl \ - $(NULL) -endif - include $(topsrcdir)/config/rules.mk diff --git a/mozilla/content/xtf/public/nsIXTFElement.idl b/mozilla/content/xtf/public/nsIXTFElement.idl index 89cc6c460e1..e61e63b0ece 100644 --- a/mozilla/content/xtf/public/nsIXTFElement.idl +++ b/mozilla/content/xtf/public/nsIXTFElement.idl @@ -21,6 +21,7 @@ * * Contributor(s): * Alex Fritze (original author) + * Olli Pettay * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or @@ -42,41 +43,21 @@ interface nsIDOMDocument; interface nsIDOMElement; interface nsIDOMNode; interface nsIDOMEvent; +interface nsIXTFElementWrapper; -[scriptable, uuid(a8b607fd-24b6-4a8c-9a89-d9b24f8e2592)] +[scriptable, uuid(9987c448-5a9d-4df5-a217-86ef6fedc366)] interface nsIXTFElement : nsISupports { + // onCreated will be called before any notifications are sent to + // the xtf element. + // + // @param wrapper is a weak proxy to the wrapping element + // (i.e. holding a reference to this will not create a cycle). + void onCreated(in nsIXTFElementWrapper wrapper); + // called when the wrapper object is being destroyed. void onDestroyed(); - // Constants for attribute elementType: - - // Elements of type GENERIC_ELEMENT are required to implement the - // nsIXTFGenericElement interface in addition to nsIXTFElement: - const unsigned long ELEMENT_TYPE_GENERIC_ELEMENT = 0; - - // Elements of type SVG_VISUAL are required to implement the - // nsIXTFSVGVisual interface in addition to nsIXTFElement: - const unsigned long ELEMENT_TYPE_SVG_VISUAL = 1; - - // Elements of type XML_VISUAL are required to implement the - // nsIXTFXMLVisual interface in addition to nsIXTFElement: - const unsigned long ELEMENT_TYPE_XML_VISUAL = 2; - - // Elements of type XUL_VISUAL are required to implement the - // nsIXTFXULVisual interface in addition to nsIXTFElement: - const unsigned long ELEMENT_TYPE_XUL_VISUAL = 3; - - // Elements of type BINDABLE are required to implement the - // nsIXTFBindableElement interface in addition to nsIXTFElement: - const unsigned long ELEMENT_TYPE_BINDABLE = 4; - - // elementType identifies the type of wrapper that will be built for - // a given xtf element. It must remain constant for the entire - // lifetime of the xtf element (i.e. before any onCreated()-calls - // until after onDestroyed()-calls). - readonly attribute unsigned long elementType; - // If isAttributeHandler is set to 'true', the xtf element indicates // that it wants to manage its own attributes. In this case it needs // to implement the nsIXTFAttributeHandler interface in addition to @@ -90,6 +71,7 @@ interface nsIXTFElement : nsISupports // our wrapper element is used from JS (other interfaces need to be // explicitly QI'ed for), and b) All these interfaces are callable // from unpriviliged script. + // @note 'Normal' DOM interfaces are always automatically scriptable. void getScriptingInterfaces(out unsigned long count, [array, size_is(count), retval] out nsIIDPtr array); diff --git a/mozilla/content/xtf/public/nsIXTFElementWrapper.idl b/mozilla/content/xtf/public/nsIXTFElementWrapper.idl index 12018426357..357051c8c22 100644 --- a/mozilla/content/xtf/public/nsIXTFElementWrapper.idl +++ b/mozilla/content/xtf/public/nsIXTFElementWrapper.idl @@ -22,6 +22,7 @@ * Contributor(s): * Alex Fritze (original author) * Allan Beaufour + * Olli Pettay * * Alternatively, the contents of this file may be used under the terms of * either the GNU General Public License Version 2 or later (the "GPL"), or @@ -43,7 +44,7 @@ interface nsIAtom; interface nsIDOMElement; interface nsIDOMDocument; -[scriptable, uuid(444d0276-3302-4d35-a74e-25c4e9c483c9)] +[scriptable, uuid(0ad87068-c6fd-4122-a515-ffe8c4773b10)] interface nsIXTFElementWrapper : nsISupports { readonly attribute nsIDOMElement elementNode; @@ -51,7 +52,7 @@ interface nsIXTFElementWrapper : nsISupports /** * Events can be unmasked by setting the corresponding bit as given - * by the NOTIFY_* constants in nsIXTFElement and nsIXTFVisual: + * by the NOTIFY_* constants in nsIXTFElement: */ attribute unsigned long notificationMask; @@ -60,5 +61,12 @@ interface nsIXTFElementWrapper : nsISupports * @see nsIContent::IntrinsicState(). */ void setIntrinsicState(in long newState); + + /** + * This sets the name of the class attribute. + * Should be called only during ::onCreated. + * Note! nsIXTFAttributeHandler can't be used to handle class attribute. + */ + void setClassAttributeName(in nsIAtom name); }; diff --git a/mozilla/content/xtf/src/Makefile.in b/mozilla/content/xtf/src/Makefile.in index 8d8c37a0758..f0d6dee83be 100644 --- a/mozilla/content/xtf/src/Makefile.in +++ b/mozilla/content/xtf/src/Makefile.in @@ -63,22 +63,11 @@ REQUIRES = xpcom \ CPPSRCS = \ nsXMLContentBuilder.cpp \ nsXTFElementWrapper.cpp \ - nsXTFGenericElementWrapper.cpp \ nsXTFInterfaceAggregator.cpp \ nsXTFService.cpp \ - nsXTFVisualWrapper.cpp \ nsXTFWeakTearoff.cpp \ - nsXTFXMLVisualWrapper.cpp \ - nsXTFXULVisualWrapper.cpp \ - nsXTFBindableElementWrapper.cpp \ $(NULL) -ifdef MOZ_SVG -CPPSRCS += \ - nsXTFSVGVisualWrapper.cpp \ - $(NULL) -endif - include $(topsrcdir)/config/config.mk # we don't want the shared lib, but we want to force the creation of a static lib. diff --git a/mozilla/content/xtf/src/nsXTFElementWrapper.cpp b/mozilla/content/xtf/src/nsXTFElementWrapper.cpp index aaccc015677..b1d3b1528c9 100644 --- a/mozilla/content/xtf/src/nsXTFElementWrapper.cpp +++ b/mozilla/content/xtf/src/nsXTFElementWrapper.cpp @@ -57,9 +57,12 @@ #include "nsEventDispatcher.h" #include "nsIProgrammingLanguage.h" #include "nsIXPConnect.h" +#include "nsXTFWeakTearoff.h" -nsXTFElementWrapper::nsXTFElementWrapper(nsINodeInfo* aNodeInfo) +nsXTFElementWrapper::nsXTFElementWrapper(nsINodeInfo* aNodeInfo, + nsIXTFElement* aXTFElement) : nsXTFElementWrapperBase(aNodeInfo), + mXTFElement(aXTFElement), mNotificationMask(0), mIntrinsicState(0), mTmpAttrName(nsLayoutAtoms::_asterix) // XXX this is a hack, but names @@ -67,9 +70,26 @@ nsXTFElementWrapper::nsXTFElementWrapper(nsINodeInfo* aNodeInfo) { } +nsXTFElementWrapper::~nsXTFElementWrapper() +{ + mXTFElement->OnDestroyed(); + mXTFElement = nsnull; +} + nsresult nsXTFElementWrapper::Init() { + // pass a weak wrapper (non base object ref-counted), so that + // our mXTFElement can safely addref/release. + nsISupports* weakWrapper = nsnull; + nsresult rv = NS_NewXTFWeakTearoff(NS_GET_IID(nsIXTFElementWrapper), + (nsIXTFElementWrapper*)this, + &weakWrapper); + NS_ENSURE_SUCCESS(rv, rv); + + mXTFElement->OnCreated(NS_STATIC_CAST(nsIXTFElementWrapper*, weakWrapper)); + weakWrapper->Release(); + PRBool innerHandlesAttribs = PR_FALSE; GetXTFElement()->GetIsAttributeHandler(&innerHandlesAttribs); if (innerHandlesAttribs) @@ -93,11 +113,6 @@ nsXTFElementWrapper::QueryInterface(REFNSIID aIID, void** aInstancePtr) NS_ADDREF_THIS(); return NS_OK; } - else if (aIID.Equals(NS_GET_IID(nsIXTFElementWrapperPrivate))) { - *aInstancePtr = NS_STATIC_CAST(nsIXTFElementWrapperPrivate*, this); - NS_ADDREF_THIS(); - return NS_OK; - } else if(aIID.Equals(NS_GET_IID(nsIXTFElementWrapper))) { *aInstancePtr = NS_STATIC_CAST(nsIXTFElementWrapper*, this); NS_ADDREF_THIS(); @@ -600,9 +615,67 @@ nsXTFElementWrapper::HasAttribute(const nsAString& aName, PRBool* aReturn) /* void getInterfaces (out PRUint32 count, [array, size_is (count), retval] out nsIIDPtr array); */ NS_IMETHODIMP -nsXTFElementWrapper::GetInterfaces(PRUint32 *count, nsIID * **array) +nsXTFElementWrapper::GetInterfaces(PRUint32* aCount, nsIID*** aArray) { - return GetXTFElement()->GetScriptingInterfaces(count, array); + *aArray = nsnull; + *aCount = 0; + PRUint32 baseCount = 0; + nsIID** baseArray = nsnull; + PRUint32 xtfCount = 0; + nsIID** xtfArray = nsnull; + + nsCOMPtr ci = + nsContentUtils::GetClassInfoInstance(eDOMClassInfo_Element_id); + nsCOMPtr baseCi = do_QueryInterface(ci); + if (baseCi) { + baseCi->GetInterfaces(&baseCount, &baseArray); + } + + GetXTFElement()->GetScriptingInterfaces(&xtfCount, &xtfArray); + if (!xtfCount) { + *aCount = baseCount; + *aArray = baseArray; + return NS_OK; + } else if (!baseCount) { + *aCount = xtfCount; + *aArray = xtfArray; + return NS_OK; + } + + PRUint32 count = baseCount + xtfCount; + nsIID** iids = NS_STATIC_CAST(nsIID**, + nsMemory::Alloc(count * sizeof(nsIID*))); + NS_ENSURE_TRUE(iids, NS_ERROR_OUT_OF_MEMORY); + + PRUint32 i = 0; + for (; i < baseCount; ++i) { + iids[i] = NS_STATIC_CAST(nsIID*, + nsMemory::Clone(baseArray[i], sizeof(nsIID))); + if (!iids[i]) { + NS_FREE_XPCOM_ALLOCATED_POINTER_ARRAY(baseCount, baseArray); + NS_FREE_XPCOM_ALLOCATED_POINTER_ARRAY(xtfCount, xtfArray); + NS_FREE_XPCOM_ALLOCATED_POINTER_ARRAY(i, iids); + return NS_ERROR_OUT_OF_MEMORY; + } + } + + for (; i < count; ++i) { + iids[i] = NS_STATIC_CAST(nsIID*, + nsMemory::Clone(xtfArray[i - baseCount], sizeof(nsIID))); + if (!iids[i]) { + NS_FREE_XPCOM_ALLOCATED_POINTER_ARRAY(baseCount, baseArray); + NS_FREE_XPCOM_ALLOCATED_POINTER_ARRAY(xtfCount, xtfArray); + NS_FREE_XPCOM_ALLOCATED_POINTER_ARRAY(i, iids); + return NS_ERROR_OUT_OF_MEMORY; + } + } + + NS_FREE_XPCOM_ALLOCATED_POINTER_ARRAY(baseCount, baseArray); + NS_FREE_XPCOM_ALLOCATED_POINTER_ARRAY(xtfCount, xtfArray); + *aArray = iids; + *aCount = count; + + return NS_OK; } /* nsISupports getHelperForLanguage (in PRUint32 language); */ @@ -782,21 +855,14 @@ nsXTFElementWrapper::SetIntrinsicState(PRInt32 aNewState) return NS_OK; } -// nsXTFStyleableElementWrapper - -nsXTFStyledElementWrapper::nsXTFStyledElementWrapper(nsINodeInfo* aNodeInfo) -: nsXTFElementWrapper(aNodeInfo) -{ -} - nsIAtom * -nsXTFStyledElementWrapper::GetClassAttributeName() const +nsXTFElementWrapper::GetClassAttributeName() const { return mClassAttributeName; } const nsAttrValue* -nsXTFStyledElementWrapper::GetClasses() const +nsXTFElementWrapper::GetClasses() const { const nsAttrValue* val = nsnull; nsIAtom* clazzAttr = GetClassAttributeName(); @@ -816,7 +882,7 @@ nsXTFStyledElementWrapper::GetClasses() const } nsresult -nsXTFStyledElementWrapper::SetClassAttributeName(nsIAtom* aName) +nsXTFElementWrapper::SetClassAttributeName(nsIAtom* aName) { // The class attribute name can be set only once if (mClassAttributeName || !aName) @@ -825,3 +891,28 @@ nsXTFStyledElementWrapper::SetClassAttributeName(nsIAtom* aName) mClassAttributeName = aName; return NS_OK; } + +nsresult +NS_NewXTFElementWrapper(nsIXTFElement* aXTFElement, + nsINodeInfo* aNodeInfo, + nsIContent** aResult) +{ + *aResult = nsnull; + NS_ENSURE_ARG(aXTFElement); + + nsXTFElementWrapper* result = new nsXTFElementWrapper(aNodeInfo, aXTFElement); + if (!result) { + return NS_ERROR_OUT_OF_MEMORY; + } + + NS_ADDREF(result); + + nsresult rv = result->Init(); + if (NS_FAILED(rv)) { + NS_RELEASE(result); + return rv; + } + + *aResult = result; + return NS_OK; +} diff --git a/mozilla/content/xtf/src/nsXTFElementWrapper.h b/mozilla/content/xtf/src/nsXTFElementWrapper.h index c23ce2687ec..d5411232b66 100644 --- a/mozilla/content/xtf/src/nsXTFElementWrapper.h +++ b/mozilla/content/xtf/src/nsXTFElementWrapper.h @@ -40,11 +40,9 @@ #define __NS_XTFELEMENTWRAPPER_H__ #include "nsIXTFElementWrapper.h" -#include "nsIXTFElementWrapperPrivate.h" #include "nsXMLElement.h" #include "nsIXTFAttributeHandler.h" #include "nsIXTFElement.h" -#include "nsIXTFStyledElementWrapper.h" typedef nsXMLElement nsXTFElementWrapperBase; @@ -56,14 +54,13 @@ typedef nsXMLElement nsXTFElementWrapperBase; class nsXTFElementWrapper : public nsXTFElementWrapperBase, public nsIXTFElementWrapper, - public nsIXTFElementWrapperPrivate, public nsIClassInfo { -protected: - nsXTFElementWrapper(nsINodeInfo* aNodeInfo); - nsresult Init(); - public: + nsXTFElementWrapper(nsINodeInfo* aNodeInfo, nsIXTFElement* aXTFElement); + virtual ~nsXTFElementWrapper(); + nsresult Init(); + NS_DECLARE_STATIC_IID_ACCESSOR(NS_XTFELEMENTWRAPPER_IID) // nsISupports interface @@ -71,10 +68,6 @@ public: // nsIXTFElementWrapper NS_DECL_NSIXTFELEMENTWRAPPER - - // nsIXTFElementWrapperPrivate - // to be implemented by subclass - // virtual PRUint32 GetElementType() = 0; // nsIContent specializations: virtual nsresult BindToTree(nsIDocument* aDocument, nsIContent* aParent, @@ -112,7 +105,10 @@ public: virtual void BeginAddingChildren(); virtual void DoneAddingChildren(PRBool aHaveNotified); - + + virtual nsIAtom *GetClassAttributeName() const; + virtual const nsAttrValue* GetClasses() const; + // nsIDOMElement specializations: NS_IMETHOD GetAttribute(const nsAString& aName, nsAString& aReturn); @@ -131,14 +127,18 @@ public: nsresult Clone(nsINodeInfo *aNodeInfo, nsINode **aResult) const; protected: - // to be implemented by subclasses: - virtual nsIXTFElement *GetXTFElement() const = 0; + virtual nsIXTFElement* GetXTFElement() const + { + return mXTFElement; + }; // implementation helpers: PRBool QueryInterfaceInner(REFNSIID aIID, void** result); PRBool HandledByInner(nsIAtom* attr) const; - + + nsCOMPtr mXTFElement; + PRUint32 mNotificationMask; nsCOMPtr mAttributeHandler; @@ -150,22 +150,14 @@ protected: // Temporary owner used by GetAttrNameAt nsAttrName mTmpAttrName; + + nsCOMPtr mClassAttributeName; }; NS_DEFINE_STATIC_IID_ACCESSOR(nsXTFElementWrapper, NS_XTFELEMENTWRAPPER_IID) -class nsXTFStyledElementWrapper : public nsXTFElementWrapper -{ -public: - nsXTFStyledElementWrapper(nsINodeInfo* aNodeInfo); - - // for nsIContent - virtual nsIAtom *GetClassAttributeName() const; - virtual const nsAttrValue* GetClasses() const; - - nsresult SetClassAttributeName(nsIAtom* aName); -protected: - nsCOMPtr mClassAttributeName; -}; +nsresult +NS_NewXTFElementWrapper(nsIXTFElement* aXTFElement, nsINodeInfo* aNodeInfo, + nsIContent** aResult); #endif // __NS_XTFELEMENTWRAPPER_H__ diff --git a/mozilla/content/xtf/src/nsXTFService.cpp b/mozilla/content/xtf/src/nsXTFService.cpp index 550b1ef4e59..4e9b962189b 100644 --- a/mozilla/content/xtf/src/nsXTFService.cpp +++ b/mozilla/content/xtf/src/nsXTFService.cpp @@ -41,22 +41,11 @@ #include "nsIServiceManager.h" #include "nsIXTFElement.h" #include "nsIXTFElementFactory.h" -#include "nsIXTFGenericElement.h" #include "nsIXTFService.h" -#include "nsIXTFXMLVisual.h" -#include "nsIXTFXULVisual.h" #include "nsInterfaceHashtable.h" #include "nsString.h" -#include "nsXTFGenericElementWrapper.h" -#include "nsXTFXMLVisualWrapper.h" -#include "nsXTFXULVisualWrapper.h" -#include "nsIXTFBindableElement.h" -#include "nsXTFBindableElementWrapper.h" +#include "nsXTFElementWrapper.h" -#ifdef MOZ_SVG -#include "nsXTFSVGVisualWrapper.h" -#include "nsIXTFSVGVisual.h" -#endif //////////////////////////////////////////////////////////////////////// // nsXTFService class @@ -128,7 +117,7 @@ nsXTFService::CreateElement(nsIContent** aResult, nsINodeInfo* aNodeInfo) factory = do_GetService(xtf_contract_id.get()); if (factory) { #ifdef DEBUG - printf("We've got an XTF factory.\n"); + printf("We've got an XTF factory: %s \n", xtf_contract_id.get()); #endif // Put into hash: mFactoryHash.Put(aNodeInfo->NamespaceID(), factory); @@ -143,44 +132,7 @@ nsXTFService::CreateElement(nsIContent** aResult, nsINodeInfo* aNodeInfo) factory->CreateElement(tagName, getter_AddRefs(elem)); if (!elem) return NS_ERROR_FAILURE; - // We've got an xtf element. Create an appropriate wrapper for it: - PRUint32 elementType; - elem->GetElementType(&elementType); - switch (elementType) { - case nsIXTFElement::ELEMENT_TYPE_GENERIC_ELEMENT: - { - nsCOMPtr elem2 = do_QueryInterface(elem); - return NS_NewXTFGenericElementWrapper(elem2, aNodeInfo, aResult); - } - case nsIXTFElement::ELEMENT_TYPE_BINDABLE: - { - nsCOMPtr elem2 = do_QueryInterface(elem); - return NS_NewXTFBindableElementWrapper(elem2, aNodeInfo, aResult); - } - case nsIXTFElement::ELEMENT_TYPE_SVG_VISUAL: - { -#ifdef MOZ_SVG - nsCOMPtr elem2 = do_QueryInterface(elem); - return NS_NewXTFSVGVisualWrapper(elem2, aNodeInfo, aResult); -#else - NS_ERROR("xtf svg visuals are only supported in mozilla builds with native svg support"); - break; -#endif - } - case nsIXTFElement::ELEMENT_TYPE_XML_VISUAL: - { - nsCOMPtr elem2 = do_QueryInterface(elem); - return NS_NewXTFXMLVisualWrapper(elem2, aNodeInfo, aResult); - } - case nsIXTFElement::ELEMENT_TYPE_XUL_VISUAL: - { - nsCOMPtr elem2 = do_QueryInterface(elem); - return NS_NewXTFXULVisualWrapper(elem2, aNodeInfo, aResult); - } - default: - NS_ERROR("unknown xtf element type"); - break; - } - return NS_ERROR_FAILURE; + // We've got an xtf element. Create a wrapper for it: + return NS_NewXTFElementWrapper(elem, aNodeInfo, aResult); } diff --git a/mozilla/extensions/xforms/nsXFormsActionElement.cpp b/mozilla/extensions/xforms/nsXFormsActionElement.cpp index 711c4b21559..c2d3244ddaf 100644 --- a/mozilla/extensions/xforms/nsXFormsActionElement.cpp +++ b/mozilla/extensions/xforms/nsXFormsActionElement.cpp @@ -42,7 +42,7 @@ #include "nsIDOMDocument.h" #include "nsIDOMEvent.h" #include "nsIDOMElement.h" -#include "nsIXTFBindableElementWrapper.h" +#include "nsIXTFElementWrapper.h" #define DEFERRED_REBUILD 0x01 #define DEFERRED_RECALCULATE 0x02 @@ -53,19 +53,19 @@ nsXFormsActionElement::nsXFormsActionElement() : mElement(nsnull) { } -NS_IMPL_ADDREF_INHERITED(nsXFormsActionElement, nsXFormsBindableStub) -NS_IMPL_RELEASE_INHERITED(nsXFormsActionElement, nsXFormsBindableStub) +NS_IMPL_ADDREF_INHERITED(nsXFormsActionElement, nsXFormsStubElement) +NS_IMPL_RELEASE_INHERITED(nsXFormsActionElement, nsXFormsStubElement) NS_INTERFACE_MAP_BEGIN(nsXFormsActionElement) NS_INTERFACE_MAP_ENTRY(nsIXFormsActionModuleElement) NS_INTERFACE_MAP_ENTRY(nsIXFormsActionElement) NS_INTERFACE_MAP_ENTRY(nsIDOMEventListener) -NS_INTERFACE_MAP_END_INHERITING(nsXFormsBindableStub) +NS_INTERFACE_MAP_END_INHERITING(nsXFormsStubElement) NS_IMETHODIMP -nsXFormsActionElement::OnCreated(nsIXTFBindableElementWrapper* aWrapper) +nsXFormsActionElement::OnCreated(nsIXTFElementWrapper* aWrapper) { - nsresult rv = nsXFormsBindableStub::OnCreated(aWrapper); + nsresult rv = nsXFormsStubElement::OnCreated(aWrapper); NS_ENSURE_SUCCESS(rv, rv); // It's ok to keep a weak pointer to mElement. mElement will have an diff --git a/mozilla/extensions/xforms/nsXFormsActionElement.h b/mozilla/extensions/xforms/nsXFormsActionElement.h index ee497165661..2ebca37dce3 100644 --- a/mozilla/extensions/xforms/nsXFormsActionElement.h +++ b/mozilla/extensions/xforms/nsXFormsActionElement.h @@ -44,9 +44,9 @@ #include "nsDataHashtable.h" #include "nsXFormsStubElement.h" -class nsIXTFBindableElementWrapper; +class nsIXTFElementWrapper; -class nsXFormsActionElement : public nsXFormsBindableStub, +class nsXFormsActionElement : public nsXFormsStubElement, public nsIXFormsActionElement, public nsIXFormsActionModuleElement, public nsIDOMEventListener @@ -57,7 +57,7 @@ public: NS_DECL_NSIDOMEVENTLISTENER NS_DECL_NSIXFORMSACTIONELEMENT NS_DECL_NSIXFORMSACTIONMODULEELEMENT - NS_IMETHOD OnCreated(nsIXTFBindableElementWrapper* aWrapper); + NS_IMETHOD OnCreated(nsIXTFElementWrapper* aWrapper); NS_IMETHOD OnDestroyed(); private: nsIDOMElement* mElement; diff --git a/mozilla/extensions/xforms/nsXFormsActionModuleBase.cpp b/mozilla/extensions/xforms/nsXFormsActionModuleBase.cpp index c2e5bb7744c..95ebebb6585 100644 --- a/mozilla/extensions/xforms/nsXFormsActionModuleBase.cpp +++ b/mozilla/extensions/xforms/nsXFormsActionModuleBase.cpp @@ -45,7 +45,7 @@ #include "nsString.h" #include "nsIDOMElement.h" #include "nsIDOMNodeList.h" -#include "nsIXTFGenericElementWrapper.h" +#include "nsIXTFElementWrapper.h" #include "nsIDOMDocumentEvent.h" #include "nsIDOMEventTarget.h" @@ -63,7 +63,7 @@ NS_IMPL_ISUPPORTS_INHERITED2(nsXFormsActionModuleBase, nsIDOMEventListener) NS_IMETHODIMP -nsXFormsActionModuleBase::OnCreated(nsIXTFGenericElementWrapper *aWrapper) +nsXFormsActionModuleBase::OnCreated(nsIXTFElementWrapper *aWrapper) { // It's ok to keep a weak pointer to mElement. mElement will have an // owning reference to this object, so as long as we null out mElement in diff --git a/mozilla/extensions/xforms/nsXFormsActionModuleBase.h b/mozilla/extensions/xforms/nsXFormsActionModuleBase.h index 2d431fc8faa..66dd8e95c78 100644 --- a/mozilla/extensions/xforms/nsXFormsActionModuleBase.h +++ b/mozilla/extensions/xforms/nsXFormsActionModuleBase.h @@ -54,8 +54,8 @@ public: nsXFormsActionModuleBase(); virtual ~nsXFormsActionModuleBase(); NS_DECL_ISUPPORTS_INHERITED - NS_DECL_NSIXTFGENERICELEMENT NS_DECL_NSIDOMEVENTLISTENER + NS_IMETHOD OnCreated(nsIXTFElementWrapper *aWrapper); NS_IMETHOD OnDestroyed(); protected: nsIDOMElement* mElement; diff --git a/mozilla/extensions/xforms/nsXFormsCaseElement.cpp b/mozilla/extensions/xforms/nsXFormsCaseElement.cpp index 31c3fea3cf3..50424c39965 100644 --- a/mozilla/extensions/xforms/nsXFormsCaseElement.cpp +++ b/mozilla/extensions/xforms/nsXFormsCaseElement.cpp @@ -45,20 +45,20 @@ #include "nsCOMPtr.h" #include "nsIDOMElement.h" #include "nsString.h" -#include "nsIXTFBindableElementWrapper.h" +#include "nsIXTFElementWrapper.h" /** * Implementation of the XForms case element. */ -class nsXFormsCaseElement : public nsXFormsBindableStub, +class nsXFormsCaseElement : public nsXFormsStubElement, public nsIXFormsCaseElement { public: NS_DECL_ISUPPORTS_INHERITED NS_DECL_NSIXFORMSCASEELEMENT - NS_IMETHOD OnCreated(nsIXTFBindableElementWrapper *aWrapper); + NS_IMETHOD OnCreated(nsIXTFElementWrapper *aWrapper); NS_IMETHOD OnDestroyed(); NS_IMETHOD DoneAddingChildren(); @@ -74,13 +74,13 @@ protected: }; NS_IMPL_ISUPPORTS_INHERITED1(nsXFormsCaseElement, - nsXFormsBindableStub, + nsXFormsStubElement, nsIXFormsCaseElement) NS_IMETHODIMP -nsXFormsCaseElement::OnCreated(nsIXTFBindableElementWrapper *aWrapper) +nsXFormsCaseElement::OnCreated(nsIXTFElementWrapper *aWrapper) { - nsresult rv = nsXFormsBindableStub::OnCreated(aWrapper); + nsresult rv = nsXFormsStubElement::OnCreated(aWrapper); NS_ENSURE_SUCCESS(rv, rv); aWrapper->SetNotificationMask(nsIXTFElement::NOTIFY_DONE_ADDING_CHILDREN); diff --git a/mozilla/extensions/xforms/nsXFormsChoicesElement.cpp b/mozilla/extensions/xforms/nsXFormsChoicesElement.cpp index 523ef464a63..587812aa751 100644 --- a/mozilla/extensions/xforms/nsXFormsChoicesElement.cpp +++ b/mozilla/extensions/xforms/nsXFormsChoicesElement.cpp @@ -41,13 +41,13 @@ #include "nsIDOMHTMLOptGroupElement.h" #include "nsString.h" #include "nsCOMPtr.h" -#include "nsIXTFBindableElementWrapper.h" +#include "nsIXTFElementWrapper.h" #include "nsIDOMDocument.h" #include "nsIDOMNodeList.h" #include "nsIXFormsControl.h" #include "nsXFormsUtils.h" -class nsXFormsChoicesElement : public nsXFormsBindableStub, +class nsXFormsChoicesElement : public nsXFormsStubElement, public nsIXFormsSelectChild { public: @@ -55,7 +55,7 @@ public: NS_DECL_ISUPPORTS_INHERITED - NS_IMETHOD OnCreated(nsIXTFBindableElementWrapper *aWrapper); + NS_IMETHOD OnCreated(nsIXTFElementWrapper *aWrapper); // nsIXTFElement overrides NS_IMETHOD ParentChanged(nsIDOMElement *aNewParent); @@ -77,13 +77,13 @@ private: }; NS_IMPL_ISUPPORTS_INHERITED1(nsXFormsChoicesElement, - nsXFormsBindableStub, + nsXFormsStubElement, nsIXFormsSelectChild) NS_IMETHODIMP -nsXFormsChoicesElement::OnCreated(nsIXTFBindableElementWrapper *aWrapper) +nsXFormsChoicesElement::OnCreated(nsIXTFElementWrapper *aWrapper) { - nsresult rv = nsXFormsBindableStub::OnCreated(aWrapper); + nsresult rv = nsXFormsStubElement::OnCreated(aWrapper); NS_ENSURE_SUCCESS(rv, rv); aWrapper->SetNotificationMask(nsIXTFElement::NOTIFY_PARENT_CHANGED | diff --git a/mozilla/extensions/xforms/nsXFormsContextContainer.cpp b/mozilla/extensions/xforms/nsXFormsContextContainer.cpp index 16df180a271..ad378e6caf5 100644 --- a/mozilla/extensions/xforms/nsXFormsContextContainer.cpp +++ b/mozilla/extensions/xforms/nsXFormsContextContainer.cpp @@ -36,7 +36,7 @@ * * ***** END LICENSE BLOCK ***** */ -#include "nsIXTFBindableElementWrapper.h" +#include "nsIXTFElementWrapper.h" #include "nsCOMPtr.h" #include "nsAutoPtr.h" @@ -91,7 +91,7 @@ protected: * @see http://www.w3.org/TR/xforms/sliceF.html#id2645142 * @see http://bugzilla.mozilla.org/show_bug.cgi?id=271724 */ -class nsXFormsContextContainer : public nsXFormsBindableControlStub, +class nsXFormsContextContainer : public nsXFormsControlStub, public nsIXFormsRepeatItemElement { protected: @@ -158,7 +158,7 @@ nsXFormsFocusListener::HandleEvent(nsIDOMEvent* aEvent) } NS_IMPL_ISUPPORTS_INHERITED1(nsXFormsContextContainer, - nsXFormsBindableControlStub, + nsXFormsControlStub, nsIXFormsRepeatItemElement) nsresult @@ -296,10 +296,10 @@ nsXFormsContextContainer::GetContext(nsAString &aModelID, PRInt32 *aContextPosition, PRInt32 *aContextSize) { - nsresult rv = nsXFormsBindableControlStub::GetContext(aModelID, - aContextNode, - aContextPosition, - aContextSize); + nsresult rv = nsXFormsControlStub::GetContext(aModelID, + aContextNode, + aContextPosition, + aContextSize); NS_ENSURE_SUCCESS(rv, rv); *aContextPosition = mContextPosition; diff --git a/mozilla/extensions/xforms/nsXFormsControlStub.cpp b/mozilla/extensions/xforms/nsXFormsControlStub.cpp index 8ad2ac5af2b..a4c44736bfc 100644 --- a/mozilla/extensions/xforms/nsXFormsControlStub.cpp +++ b/mozilla/extensions/xforms/nsXFormsControlStub.cpp @@ -105,14 +105,14 @@ nsXFormsHintHelpListener::HandleEvent(nsIDOMEvent* aEvent) } NS_IMETHODIMP -nsXFormsControlStubBase::GetBoundNode(nsIDOMNode **aBoundNode) +nsXFormsControlStub::GetBoundNode(nsIDOMNode **aBoundNode) { NS_IF_ADDREF(*aBoundNode = mBoundNode); return NS_OK; } NS_IMETHODIMP -nsXFormsControlStubBase::GetDependencies(nsCOMArray **aDependencies) +nsXFormsControlStub::GetDependencies(nsCOMArray **aDependencies) { if (aDependencies) *aDependencies = &mDependencies; @@ -120,14 +120,14 @@ nsXFormsControlStubBase::GetDependencies(nsCOMArray **aDependencies) } NS_IMETHODIMP -nsXFormsControlStubBase::GetElement(nsIDOMElement **aElement) +nsXFormsControlStub::GetElement(nsIDOMElement **aElement) { NS_IF_ADDREF(*aElement = mElement); return NS_OK; } void -nsXFormsControlStubBase::RemoveIndexListeners() +nsXFormsControlStub::RemoveIndexListeners() { if (!mIndexesUsed.Count()) return; @@ -141,9 +141,9 @@ nsXFormsControlStubBase::RemoveIndexListeners() } NS_IMETHODIMP -nsXFormsControlStubBase::ResetBoundNode(const nsString &aBindAttribute, - PRUint16 aResultType, - PRBool *aContextChanged) +nsXFormsControlStub::ResetBoundNode(const nsString &aBindAttribute, + PRUint16 aResultType, + PRBool *aContextChanged) { NS_ENSURE_ARG(aContextChanged); @@ -213,7 +213,7 @@ nsXFormsControlStubBase::ResetBoundNode(const nsString &aBindAttribute, } NS_IMETHODIMP -nsXFormsControlStubBase::Bind(PRBool* aContextChanged) +nsXFormsControlStub::Bind(PRBool* aContextChanged) { return ResetBoundNode(NS_LITERAL_STRING("ref"), nsIDOMXPathResult::FIRST_ORDERED_NODE_TYPE, @@ -221,7 +221,7 @@ nsXFormsControlStubBase::Bind(PRBool* aContextChanged) } NS_IMETHODIMP -nsXFormsControlStubBase::Refresh() +nsXFormsControlStub::Refresh() { // XXX: In theory refresh should never be called when there is no model, // but that's definately not the case now. @@ -230,28 +230,28 @@ nsXFormsControlStubBase::Refresh() } NS_IMETHODIMP -nsXFormsControlStubBase::TryFocus(PRBool* aOK) +nsXFormsControlStub::TryFocus(PRBool* aOK) { *aOK = PR_FALSE; return NS_OK; } NS_IMETHODIMP -nsXFormsControlStubBase::IsEventTarget(PRBool *aOK) +nsXFormsControlStub::IsEventTarget(PRBool *aOK) { *aOK = PR_TRUE; return NS_OK; } NS_IMETHODIMP -nsXFormsControlStubBase::GetUsesModelBinding(PRBool *aRes) +nsXFormsControlStub::GetUsesModelBinding(PRBool *aRes) { *aRes = mUsesModelBinding; return NS_OK; } NS_IMETHODIMP -nsXFormsControlStubBase::GetOnDeferredBindList(PRBool *aOnList) +nsXFormsControlStub::GetOnDeferredBindList(PRBool *aOnList) { NS_ENSURE_ARG_POINTER(aOnList); *aOnList = mOnDeferredBindList; @@ -259,14 +259,14 @@ nsXFormsControlStubBase::GetOnDeferredBindList(PRBool *aOnList) } NS_IMETHODIMP -nsXFormsControlStubBase::SetOnDeferredBindList(PRBool aPutOnList) +nsXFormsControlStub::SetOnDeferredBindList(PRBool aPutOnList) { mOnDeferredBindList = aPutOnList; return NS_OK; } NS_IMETHODIMP -nsXFormsControlStubBase::GetDefaultIntrinsicState(PRInt32 *aState) +nsXFormsControlStub::GetDefaultIntrinsicState(PRInt32 *aState) { NS_ENSURE_ARG_POINTER(aState); *aState = kDefaultIntrinsicState; @@ -274,7 +274,7 @@ nsXFormsControlStubBase::GetDefaultIntrinsicState(PRInt32 *aState) } NS_IMETHODIMP -nsXFormsControlStubBase::GetDisabledIntrinsicState(PRInt32 *aState) +nsXFormsControlStub::GetDisabledIntrinsicState(PRInt32 *aState) { NS_ENSURE_ARG_POINTER(aState); *aState = kDisabledIntrinsicState; @@ -282,8 +282,8 @@ nsXFormsControlStubBase::GetDisabledIntrinsicState(PRInt32 *aState) } nsresult -nsXFormsControlStubBase::MaybeAddToModel(nsIModelElementPrivate *aOldModel, - nsIXFormsControl *aParent) +nsXFormsControlStub::MaybeAddToModel(nsIModelElementPrivate *aOldModel, + nsIXFormsControl *aParent) { // XXX: just doing pointer comparison would be nice.... PRBool sameModel = PR_FALSE; @@ -314,10 +314,10 @@ nsXFormsControlStubBase::MaybeAddToModel(nsIModelElementPrivate *aOldModel, nsresult -nsXFormsControlStubBase::ProcessNodeBinding(const nsString &aBindingAttr, - PRUint16 aResultType, - nsIDOMXPathResult **aResult, - nsIModelElementPrivate **aModel) +nsXFormsControlStub::ProcessNodeBinding(const nsString &aBindingAttr, + PRUint16 aResultType, + nsIDOMXPathResult **aResult, + nsIModelElementPrivate **aModel) { nsStringArray indexesUsed; @@ -395,7 +395,7 @@ nsXFormsControlStubBase::ProcessNodeBinding(const nsString &aBindingAtt } NS_IMETHODIMP -nsXFormsControlStubBase::BindToModel(PRBool aSetBoundNode) +nsXFormsControlStub::BindToModel(PRBool aSetBoundNode) { nsCOMPtr oldModel(mModel); @@ -412,7 +412,7 @@ nsXFormsControlStubBase::BindToModel(PRBool aSetBoundNode) } void -nsXFormsControlStubBase::ResetHelpAndHint(PRBool aInitialize) +nsXFormsControlStub::ResetHelpAndHint(PRBool aInitialize) { nsCOMPtr targ(do_QueryInterface(mElement)); if (!targ) @@ -447,7 +447,7 @@ nsXFormsControlStubBase::ResetHelpAndHint(PRBool aInitialize) } PRBool -nsXFormsControlStubBase::GetRelevantState() +nsXFormsControlStub::GetRelevantState() { PRBool res = PR_FALSE; nsCOMPtr content(do_QueryInterface(mElement)); @@ -457,9 +457,9 @@ nsXFormsControlStubBase::GetRelevantState() return res; } -nsresult -nsXFormsControlStubBase::HandleDefault(nsIDOMEvent *aEvent, - PRBool *aHandled) +NS_IMETHODIMP +nsXFormsControlStub::HandleDefault(nsIDOMEvent *aEvent, + PRBool *aHandled) { NS_ENSURE_ARG(aHandled); *aHandled = PR_FALSE; @@ -565,8 +565,8 @@ public: ~ControlDebug() { for (PRInt32 i = 0; i < sControlList->Count(); ++i) { - nsXFormsControlStubBase* control = - NS_STATIC_CAST(nsXFormsControlStubBase*, sControlList->ElementAt(i)); + nsXFormsControlStub* control = + NS_STATIC_CAST(nsXFormsControlStub*, sControlList->ElementAt(i)); if (control) { printf("Possible leak, \n", control->Name()); } @@ -579,9 +579,10 @@ public: static ControlDebug tester = ControlDebug(); #endif -nsresult -nsXFormsControlStubBase::Create(nsIXTFElementWrapper *aWrapper) +NS_IMETHODIMP +nsXFormsControlStub::OnCreated(nsIXTFElementWrapper *aWrapper) { + nsXFormsStubElement::OnCreated(aWrapper); aWrapper->SetNotificationMask(kStandardNotificationMask); // It's ok to keep a weak pointer to mElement. mElement will have an @@ -599,8 +600,8 @@ nsXFormsControlStubBase::Create(nsIXTFElementWrapper *aWrapper) return NS_OK; } -nsresult -nsXFormsControlStubBase::OnDestroyed() +NS_IMETHODIMP +nsXFormsControlStub::OnDestroyed() { RemoveIndexListeners(); mDependencies.Clear(); @@ -619,7 +620,7 @@ nsXFormsControlStubBase::OnDestroyed() } nsresult -nsXFormsControlStubBase::ForceModelDetach(PRBool aRebind) +nsXFormsControlStub::ForceModelDetach(PRBool aRebind) { if (mModel) { // Remove from model, so Bind() will be forced to reattach @@ -637,15 +638,15 @@ nsXFormsControlStubBase::ForceModelDetach(PRBool aRebind) return rv == NS_OK_XFORMS_DEFERRED ? NS_OK : Refresh(); } -nsresult -nsXFormsControlStubBase::WillChangeDocument(nsIDOMDocument *aNewDocument) +NS_IMETHODIMP +nsXFormsControlStub::WillChangeDocument(nsIDOMDocument *aNewDocument) { ResetHelpAndHint(PR_FALSE); return NS_OK; } -nsresult -nsXFormsControlStubBase::DocumentChanged(nsIDOMDocument *aNewDocument) +NS_IMETHODIMP +nsXFormsControlStub::DocumentChanged(nsIDOMDocument *aNewDocument) { if (aNewDocument) { ResetHelpAndHint(PR_TRUE); @@ -665,8 +666,8 @@ nsXFormsControlStubBase::DocumentChanged(nsIDOMDocument *aNewDocument) return ForceModelDetach(mHasParent && aNewDocument); } -nsresult -nsXFormsControlStubBase::ParentChanged(nsIDOMElement *aNewParent) +NS_IMETHODIMP +nsXFormsControlStub::ParentChanged(nsIDOMElement *aNewParent) { mHasParent = aNewParent != nsnull; // We need to re-evaluate our instance data binding when our parent changes, @@ -674,29 +675,29 @@ nsXFormsControlStubBase::ParentChanged(nsIDOMElement *aNewParent) return ForceModelDetach(mHasParent); } -nsresult -nsXFormsControlStubBase::WillSetAttribute(nsIAtom *aName, const nsAString &aValue) +NS_IMETHODIMP +nsXFormsControlStub::WillSetAttribute(nsIAtom *aName, const nsAString &aValue) { BeforeSetAttribute(aName, aValue); return NS_OK; } -nsresult -nsXFormsControlStubBase::AttributeSet(nsIAtom *aName, const nsAString &aValue) +NS_IMETHODIMP +nsXFormsControlStub::AttributeSet(nsIAtom *aName, const nsAString &aValue) { AfterSetAttribute(aName); return NS_OK; } -nsresult -nsXFormsControlStubBase::WillRemoveAttribute(nsIAtom *aName) +NS_IMETHODIMP +nsXFormsControlStub::WillRemoveAttribute(nsIAtom *aName) { BeforeSetAttribute(aName, EmptyString()); return NS_OK; } -nsresult -nsXFormsControlStubBase::AttributeRemoved(nsIAtom *aName) +NS_IMETHODIMP +nsXFormsControlStub::AttributeRemoved(nsIAtom *aName) { AfterSetAttribute(aName); return NS_OK; @@ -705,18 +706,18 @@ nsXFormsControlStubBase::AttributeRemoved(nsIAtom *aName) // nsIXFormsContextControl NS_IMETHODIMP -nsXFormsControlStubBase::SetContext(nsIDOMNode *aContextNode, - PRInt32 aContextPosition, - PRInt32 aContextSize) +nsXFormsControlStub::SetContext(nsIDOMNode *aContextNode, + PRInt32 aContextPosition, + PRInt32 aContextSize) { return NS_ERROR_NOT_IMPLEMENTED; } NS_IMETHODIMP -nsXFormsControlStubBase::GetContext(nsAString &aModelID, - nsIDOMNode **aContextNode, - PRInt32 *aContextPosition, - PRInt32 *aContextSize) +nsXFormsControlStub::GetContext(nsAString &aModelID, + nsIDOMNode **aContextNode, + PRInt32 *aContextPosition, + PRInt32 *aContextSize) { NS_ENSURE_ARG(aContextSize); NS_ENSURE_ARG(aContextPosition); @@ -753,7 +754,7 @@ nsXFormsControlStubBase::GetContext(nsAString &aModelID, } void -nsXFormsControlStubBase::AddRemoveSNBAttr(nsIAtom *aName, const nsAString &aValue) +nsXFormsControlStub::AddRemoveSNBAttr(nsIAtom *aName, const nsAString &aValue) { nsAutoString attrStr, attrValue; aName->ToString(attrStr); @@ -772,7 +773,7 @@ nsXFormsControlStubBase::AddRemoveSNBAttr(nsIAtom *aName, const nsAString &aValu } PRBool -nsXFormsControlStubBase::IsBindingAttribute(const nsIAtom *aAttr) const +nsXFormsControlStub::IsBindingAttribute(const nsIAtom *aAttr) const { if (aAttr == nsXFormsAtoms::bind || aAttr == nsXFormsAtoms::ref || @@ -784,7 +785,7 @@ nsXFormsControlStubBase::IsBindingAttribute(const nsIAtom *aAttr) const } void -nsXFormsControlStubBase::AfterSetAttribute(nsIAtom *aName) +nsXFormsControlStub::AfterSetAttribute(nsIAtom *aName) { if (IsBindingAttribute(aName)) { PRBool dummy; @@ -797,8 +798,8 @@ nsXFormsControlStubBase::AfterSetAttribute(nsIAtom *aName) } void -nsXFormsControlStubBase::BeforeSetAttribute(nsIAtom *aName, - const nsAString &aValue) +nsXFormsControlStub::BeforeSetAttribute(nsIAtom *aName, + const nsAString &aValue) { if (IsBindingAttribute(aName)) { AddRemoveSNBAttr(aName, aValue); @@ -806,7 +807,7 @@ nsXFormsControlStubBase::BeforeSetAttribute(nsIAtom *aName, } nsresult -nsXFormsControlStubBase::GetBoundBuiltinType(PRUint16 *aBuiltinType) +nsXFormsControlStub::GetBoundBuiltinType(PRUint16 *aBuiltinType) { NS_ENSURE_ARG_POINTER(aBuiltinType); *aBuiltinType = 0; @@ -822,8 +823,8 @@ nsXFormsControlStubBase::GetBoundBuiltinType(PRUint16 *aBuiltinType) } -NS_IMPL_ISUPPORTS_INHERITED3(nsXFormsBindableControlStub, - nsXFormsBindableStub, +NS_IMPL_ISUPPORTS_INHERITED3(nsXFormsControlStub, + nsXFormsStubElement, nsIXFormsContextControl, nsIXFormsControl, nsIXFormsControlBase) diff --git a/mozilla/extensions/xforms/nsXFormsControlStub.h b/mozilla/extensions/xforms/nsXFormsControlStub.h index c800dafeec9..7a8e6034b11 100644 --- a/mozilla/extensions/xforms/nsXFormsControlStub.h +++ b/mozilla/extensions/xforms/nsXFormsControlStub.h @@ -54,7 +54,7 @@ #include "nsIXFormsRepeatElement.h" #include "nsXFormsStubElement.h" #include "nsXFormsUtils.h" -#include "nsIXTFBindableElementWrapper.h" +#include "nsIXTFElementWrapper.h" #include "nsIXFormsControlBase.h" class nsIDOMEvent; @@ -64,7 +64,8 @@ class nsIDOMXPathResult; * Common stub for all XForms controls that inherit from nsIXFormsControl and * is bound to an instance node. */ -class nsXFormsControlStubBase : public nsIXFormsControl +class nsXFormsControlStub : public nsXFormsStubElement, + public nsIXFormsControl { public: @@ -77,6 +78,8 @@ public: */ const PRUint32 kElementFlags; + NS_DECL_ISUPPORTS_INHERITED + // nsIXFormsControl NS_IMETHOD GetBoundNode(nsIDOMNode **aBoundNode); NS_IMETHOD BindToModel(PRBool aSetBoundNode = PR_FALSE); @@ -95,18 +98,18 @@ public: NS_IMETHOD GetDefaultIntrinsicState(PRInt32 *aRes); NS_IMETHOD GetDisabledIntrinsicState(PRInt32 *aRes); - nsresult Create(nsIXTFElementWrapper *aWrapper); // for nsIXTFElement - nsresult HandleDefault(nsIDOMEvent *aEvent, + NS_IMETHOD OnCreated(nsIXTFElementWrapper *aWrapper); + NS_IMETHOD HandleDefault(nsIDOMEvent *aEvent, PRBool *aHandled); - nsresult OnDestroyed(); - nsresult WillChangeDocument(nsIDOMDocument *aNewDocument); - nsresult DocumentChanged(nsIDOMDocument *aNewDocument); - nsresult ParentChanged(nsIDOMElement *aNewParent); - nsresult WillSetAttribute(nsIAtom *aName, const nsAString &aValue); - nsresult AttributeSet(nsIAtom *aName, const nsAString &aValue); - nsresult WillRemoveAttribute(nsIAtom *aName); - nsresult AttributeRemoved(nsIAtom *aName); + NS_IMETHOD OnDestroyed(); + NS_IMETHOD WillChangeDocument(nsIDOMDocument *aNewDocument); + NS_IMETHOD DocumentChanged(nsIDOMDocument *aNewDocument); + NS_IMETHOD ParentChanged(nsIDOMElement *aNewParent); + NS_IMETHOD WillSetAttribute(nsIAtom *aName, const nsAString &aValue); + NS_IMETHOD AttributeSet(nsIAtom *aName, const nsAString &aValue); + NS_IMETHOD WillRemoveAttribute(nsIAtom *aName); + NS_IMETHOD AttributeRemoved(nsIAtom *aName); /** * This function manages the mBindAttrsCount value. mBindAttrsCount will @@ -135,7 +138,7 @@ public: /** Constructor */ - nsXFormsControlStubBase() : + nsXFormsControlStub() : kStandardNotificationMask(nsIXTFElement::NOTIFY_WILL_SET_ATTRIBUTE | nsIXTFElement::NOTIFY_ATTRIBUTE_SET | nsIXTFElement::NOTIFY_WILL_REMOVE_ATTRIBUTE | @@ -289,69 +292,4 @@ protected: nsresult GetBoundBuiltinType(PRUint16 *aBuiltinType); }; -/** - * nsXFormsBindableControlStub inherits from nsXFormsBindableStub - */ -class nsXFormsBindableControlStub : public nsXFormsControlStubBase, - public nsXFormsBindableStub -{ -public: - NS_DECL_ISUPPORTS_INHERITED - // nsIXTFBindableElement overrides - /** This sets the notification mask and initializes mElement */ - NS_IMETHOD OnCreated(nsIXTFBindableElementWrapper *aWrapper) - { - nsresult rv = nsXFormsBindableStub::OnCreated(aWrapper); - return NS_SUCCEEDED(rv) ? nsXFormsControlStubBase::Create(aWrapper) : rv; - } - - // nsIXTFElement overrides - NS_IMETHOD HandleDefault(nsIDOMEvent *aEvent, - PRBool *aHandled) - { - return nsXFormsControlStubBase::HandleDefault(aEvent, aHandled); - } - - NS_IMETHOD OnDestroyed() { - return nsXFormsControlStubBase::OnDestroyed(); - } - - NS_IMETHOD WillChangeDocument(nsIDOMDocument *aNewDocument) - { - return nsXFormsControlStubBase::WillChangeDocument(aNewDocument); - } - - NS_IMETHOD DocumentChanged(nsIDOMDocument *aNewDocument) - { - return nsXFormsControlStubBase::DocumentChanged(aNewDocument); - } - - NS_IMETHOD ParentChanged(nsIDOMElement *aNewParent) - { - return nsXFormsControlStubBase::ParentChanged(aNewParent); - } - - NS_IMETHOD WillSetAttribute(nsIAtom *aName, const nsAString &aValue) - { - return nsXFormsControlStubBase::WillSetAttribute(aName, aValue); - } - - NS_IMETHOD AttributeSet(nsIAtom *aName, const nsAString &aValue) - { - return nsXFormsControlStubBase::AttributeSet(aName, aValue); - } - - NS_IMETHOD WillRemoveAttribute(nsIAtom *aName) - { - return nsXFormsControlStubBase::WillRemoveAttribute(aName); - } - - NS_IMETHOD AttributeRemoved(nsIAtom *aName) - { - return nsXFormsControlStubBase::AttributeRemoved(aName); - } - - /** Constructor */ - nsXFormsBindableControlStub() : nsXFormsControlStubBase() {}; -}; #endif diff --git a/mozilla/extensions/xforms/nsXFormsCopyElement.cpp b/mozilla/extensions/xforms/nsXFormsCopyElement.cpp index f139932d075..e389e4a5dcf 100644 --- a/mozilla/extensions/xforms/nsXFormsCopyElement.cpp +++ b/mozilla/extensions/xforms/nsXFormsCopyElement.cpp @@ -38,7 +38,7 @@ #include "nsIXFormsCopyElement.h" #include "nsXFormsStubElement.h" -#include "nsIXTFGenericElementWrapper.h" +#include "nsIXTFElementWrapper.h" #include "nsXFormsUtils.h" #include "nsIDOMElement.h" #include "nsString.h" @@ -60,10 +60,8 @@ public: NS_DECL_ISUPPORTS_INHERITED - // nsIXTFGenericElement overrides - NS_IMETHOD OnCreated(nsIXTFGenericElementWrapper *aWrapper); - // nsIXTFElement overrides + NS_IMETHOD OnCreated(nsIXTFElementWrapper *aWrapper); NS_IMETHOD ParentChanged(nsIDOMElement *aNewParent); NS_IMETHOD DocumentChanged(nsIDOMDocument *aNewParent); @@ -79,7 +77,7 @@ NS_IMPL_ISUPPORTS_INHERITED1(nsXFormsCopyElement, nsIXFormsCopyElement) NS_IMETHODIMP -nsXFormsCopyElement::OnCreated(nsIXTFGenericElementWrapper *aWrapper) +nsXFormsCopyElement::OnCreated(nsIXTFElementWrapper *aWrapper) { aWrapper->SetNotificationMask(nsIXTFElement::NOTIFY_PARENT_CHANGED | nsIXTFElement::NOTIFY_DOCUMENT_CHANGED); diff --git a/mozilla/extensions/xforms/nsXFormsDelegateStub.cpp b/mozilla/extensions/xforms/nsXFormsDelegateStub.cpp index f33faa33161..9d2bcf09fd6 100644 --- a/mozilla/extensions/xforms/nsXFormsDelegateStub.cpp +++ b/mozilla/extensions/xforms/nsXFormsDelegateStub.cpp @@ -56,7 +56,7 @@ #include "nsXFormsModelElement.h" NS_IMPL_ISUPPORTS_INHERITED2(nsXFormsDelegateStub, - nsXFormsBindableControlStub, + nsXFormsControlStub, nsIDelegateInternal, nsIXFormsDelegate) @@ -65,20 +65,20 @@ NS_IMETHODIMP nsXFormsDelegateStub::WillChangeDocument(nsIDOMDocument *aNewDocument) { mRepeatState = eType_Unknown; - return nsXFormsBindableControlStub::WillChangeDocument(aNewDocument); + return nsXFormsControlStub::WillChangeDocument(aNewDocument); } NS_IMETHODIMP nsXFormsDelegateStub::WillChangeParent(nsIDOMElement *aNewParent) { mRepeatState = eType_Unknown; - return nsXFormsBindableControlStub::WillChangeParent(aNewParent); + return nsXFormsControlStub::WillChangeParent(aNewParent); } NS_IMETHODIMP -nsXFormsDelegateStub::OnCreated(nsIXTFBindableElementWrapper *aWrapper) +nsXFormsDelegateStub::OnCreated(nsIXTFElementWrapper *aWrapper) { - nsresult rv = nsXFormsBindableControlStub::OnCreated(aWrapper); + nsresult rv = nsXFormsControlStub::OnCreated(aWrapper); NS_ENSURE_SUCCESS(rv, rv); aWrapper->SetNotificationMask(kStandardNotificationMask | nsIXTFElement::NOTIFY_WILL_CHANGE_PARENT); @@ -92,7 +92,7 @@ nsXFormsDelegateStub::OnDestroyed() if (mAccessor) { mAccessor->Destroy(); } - return nsXFormsBindableControlStub::OnDestroyed(); + return nsXFormsControlStub::OnDestroyed(); } // nsIXFormsControl @@ -109,7 +109,7 @@ nsXFormsDelegateStub::Refresh() return NS_OK_XFORMS_NOREFRESH; } - nsresult rv = nsXFormsBindableControlStub::Refresh(); + nsresult rv = nsXFormsControlStub::Refresh(); NS_ENSURE_SUCCESS(rv, rv); SetMozTypeAttribute(); diff --git a/mozilla/extensions/xforms/nsXFormsDelegateStub.h b/mozilla/extensions/xforms/nsXFormsDelegateStub.h index 88b7913eb7e..f67a089195c 100644 --- a/mozilla/extensions/xforms/nsXFormsDelegateStub.h +++ b/mozilla/extensions/xforms/nsXFormsDelegateStub.h @@ -72,7 +72,7 @@ enum nsRestrictionFlag { /** * Stub implementation of the nsIXFormsDelegate interface. */ -class nsXFormsDelegateStub : public nsXFormsBindableControlStub, +class nsXFormsDelegateStub : public nsXFormsControlStub, public nsIDelegateInternal { public: @@ -80,7 +80,7 @@ public: NS_DECL_NSIXFORMSDELEGATE NS_DECL_NSIDELEGATEINTERNAL - NS_IMETHOD OnCreated(nsIXTFBindableElementWrapper *aWrapper); + NS_IMETHOD OnCreated(nsIXTFElementWrapper *aWrapper); NS_IMETHOD OnDestroyed(); NS_IMETHOD WillChangeParent(nsIDOMElement *aNewParent); NS_IMETHOD WillChangeDocument(nsIDOMDocument *aNewDocument); diff --git a/mozilla/extensions/xforms/nsXFormsInstanceElement.cpp b/mozilla/extensions/xforms/nsXFormsInstanceElement.cpp index 6d490e2223c..992c7689495 100644 --- a/mozilla/extensions/xforms/nsXFormsInstanceElement.cpp +++ b/mozilla/extensions/xforms/nsXFormsInstanceElement.cpp @@ -46,7 +46,7 @@ #include "nsString.h" #include "nsIDOMEventReceiver.h" #include "nsIDOMDOMImplementation.h" -#include "nsIXTFGenericElementWrapper.h" +#include "nsIXTFElementWrapper.h" #include "nsXFormsUtils.h" #include "nsNetUtil.h" @@ -136,7 +136,7 @@ nsXFormsInstanceElement::AttributeRemoved(nsIAtom *aName) } NS_IMETHODIMP -nsXFormsInstanceElement::OnCreated(nsIXTFGenericElementWrapper *aWrapper) +nsXFormsInstanceElement::OnCreated(nsIXTFElementWrapper *aWrapper) { aWrapper->SetNotificationMask(nsIXTFElement::NOTIFY_ATTRIBUTE_SET | nsIXTFElement::NOTIFY_ATTRIBUTE_REMOVED | diff --git a/mozilla/extensions/xforms/nsXFormsInstanceElement.h b/mozilla/extensions/xforms/nsXFormsInstanceElement.h index d8ebd21239f..2f5a92bec3e 100644 --- a/mozilla/extensions/xforms/nsXFormsInstanceElement.h +++ b/mozilla/extensions/xforms/nsXFormsInstanceElement.h @@ -73,13 +73,13 @@ public: NS_DECL_NSICHANNELEVENTSINK NS_DECL_NSIINTERFACEREQUESTOR - // nsIXTFGenericElement overrides + // nsIXTFElement overrides NS_IMETHOD OnDestroyed(); NS_IMETHOD AttributeSet(nsIAtom *aName, const nsAString &aNewValue); NS_IMETHOD AttributeRemoved(nsIAtom *aName); NS_IMETHOD WillChangeParent(nsIDOMElement *aNewParent); NS_IMETHOD ParentChanged(nsIDOMElement *aNewParent); - NS_IMETHOD OnCreated(nsIXTFGenericElementWrapper *aWrapper); + NS_IMETHOD OnCreated(nsIXTFElementWrapper *aWrapper); nsXFormsInstanceElement() NS_HIDDEN; diff --git a/mozilla/extensions/xforms/nsXFormsItemElement.cpp b/mozilla/extensions/xforms/nsXFormsItemElement.cpp index 88220e07439..e3038ca1716 100644 --- a/mozilla/extensions/xforms/nsXFormsItemElement.cpp +++ b/mozilla/extensions/xforms/nsXFormsItemElement.cpp @@ -47,7 +47,7 @@ #include "nsIXFormsValueElement.h" #include "nsVoidArray.h" #include "nsIDOMText.h" -#include "nsIXTFBindableElementWrapper.h" +#include "nsIXTFElementWrapper.h" #include "nsIXFormsContextControl.h" #include "nsIModelElementPrivate.h" #include "nsIXFormsItemElement.h" @@ -66,7 +66,7 @@ * select element. */ -class nsXFormsItemElement : public nsXFormsBindableStub, +class nsXFormsItemElement : public nsXFormsStubElement, public nsIXFormsSelectChild, public nsIXFormsItemElement { @@ -79,7 +79,7 @@ public: NS_DECL_ISUPPORTS_INHERITED NS_DECL_NSIXFORMSITEMELEMENT - NS_IMETHOD OnCreated(nsIXTFBindableElementWrapper *aWrapper); + NS_IMETHOD OnCreated(nsIXTFElementWrapper *aWrapper); // nsIXTFElement overrides NS_IMETHOD ParentChanged(nsIDOMElement *aNewParent); @@ -105,14 +105,14 @@ private: }; NS_IMPL_ISUPPORTS_INHERITED2(nsXFormsItemElement, - nsXFormsBindableStub, + nsXFormsStubElement, nsIXFormsSelectChild, nsIXFormsItemElement) NS_IMETHODIMP -nsXFormsItemElement::OnCreated(nsIXTFBindableElementWrapper *aWrapper) +nsXFormsItemElement::OnCreated(nsIXTFElementWrapper *aWrapper) { - nsresult rv = nsXFormsBindableStub::OnCreated(aWrapper); + nsresult rv = nsXFormsStubElement::OnCreated(aWrapper); NS_ENSURE_SUCCESS(rv, rv); aWrapper->SetNotificationMask(nsIXTFElement::NOTIFY_PARENT_CHANGED | diff --git a/mozilla/extensions/xforms/nsXFormsItemSetElement.cpp b/mozilla/extensions/xforms/nsXFormsItemSetElement.cpp index e3e00bc580d..9e33b46a307 100644 --- a/mozilla/extensions/xforms/nsXFormsItemSetElement.cpp +++ b/mozilla/extensions/xforms/nsXFormsItemSetElement.cpp @@ -41,7 +41,7 @@ #include "nsIDOMHTMLOptGroupElement.h" #include "nsString.h" #include "nsCOMPtr.h" -#include "nsIXTFBindableElementWrapper.h" +#include "nsIXTFElementWrapper.h" #include "nsIDOMNodeList.h" #include "nsIDocument.h" #include "nsXFormsUtils.h" @@ -59,7 +59,7 @@ class nsXFormsItemSetElement : public nsXFormsDelegateStub, public: NS_DECL_ISUPPORTS_INHERITED - NS_IMETHOD OnCreated(nsIXTFBindableElementWrapper *aWrapper); + NS_IMETHOD OnCreated(nsIXTFElementWrapper *aWrapper); // nsIXTFElement overrides NS_IMETHOD ParentChanged(nsIDOMElement *aNewParent); @@ -82,7 +82,7 @@ NS_IMPL_ISUPPORTS_INHERITED1(nsXFormsItemSetElement, nsIXFormsSelectChild) NS_IMETHODIMP -nsXFormsItemSetElement::OnCreated(nsIXTFBindableElementWrapper *aWrapper) +nsXFormsItemSetElement::OnCreated(nsIXTFElementWrapper *aWrapper) { nsresult rv = nsXFormsDelegateStub::OnCreated(aWrapper); NS_ENSURE_SUCCESS(rv, rv); diff --git a/mozilla/extensions/xforms/nsXFormsLabelElement.cpp b/mozilla/extensions/xforms/nsXFormsLabelElement.cpp index 7ef4c7006c4..6ce82385552 100644 --- a/mozilla/extensions/xforms/nsXFormsLabelElement.cpp +++ b/mozilla/extensions/xforms/nsXFormsLabelElement.cpp @@ -75,7 +75,7 @@ public: NS_IMETHOD IsEventTarget(PRBool *aOK); NS_IMETHOD Refresh(); - NS_IMETHOD OnCreated(nsIXTFBindableElementWrapper *aWrapper); + NS_IMETHOD OnCreated(nsIXTFElementWrapper *aWrapper); NS_IMETHOD OnDestroyed(); // nsIXTFElement overrides @@ -105,7 +105,7 @@ NS_IMPL_ISUPPORTS_INHERITED3(nsXFormsLabelElement, nsIInterfaceRequestor) NS_IMETHODIMP -nsXFormsLabelElement::OnCreated(nsIXTFBindableElementWrapper *aWrapper) +nsXFormsLabelElement::OnCreated(nsIXTFElementWrapper *aWrapper) { nsresult rv = nsXFormsDelegateStub::OnCreated(aWrapper); NS_ENSURE_SUCCESS(rv, rv); diff --git a/mozilla/extensions/xforms/nsXFormsMessageElement.cpp b/mozilla/extensions/xforms/nsXFormsMessageElement.cpp index bc18935546a..195e211fbb1 100644 --- a/mozilla/extensions/xforms/nsXFormsMessageElement.cpp +++ b/mozilla/extensions/xforms/nsXFormsMessageElement.cpp @@ -115,7 +115,7 @@ public: NS_IMETHOD GetValue(nsAString& aValue); // nsIXTFElement overrides - NS_IMETHOD OnCreated(nsIXTFBindableElementWrapper *aWrapper); + NS_IMETHOD OnCreated(nsIXTFElementWrapper *aWrapper); NS_IMETHOD WillChangeDocument(nsIDOMDocument *aNewDocument); NS_IMETHOD OnDestroyed(); NS_IMETHOD ParentChanged(nsIDOMElement *aNewParent); @@ -219,7 +219,7 @@ NS_INTERFACE_MAP_END_INHERITING(nsXFormsDelegateStub) // nsIXTFElement NS_IMETHODIMP -nsXFormsMessageElement::OnCreated(nsIXTFBindableElementWrapper *aWrapper) +nsXFormsMessageElement::OnCreated(nsIXTFElementWrapper *aWrapper) { nsresult rv = nsXFormsDelegateStub::OnCreated(aWrapper); NS_ENSURE_SUCCESS(rv, rv); diff --git a/mozilla/extensions/xforms/nsXFormsModelElement.cpp b/mozilla/extensions/xforms/nsXFormsModelElement.cpp index 2c43c071fc0..88073f7bb7c 100644 --- a/mozilla/extensions/xforms/nsXFormsModelElement.cpp +++ b/mozilla/extensions/xforms/nsXFormsModelElement.cpp @@ -40,7 +40,7 @@ * ***** END LICENSE BLOCK ***** */ #include "nsXFormsModelElement.h" -#include "nsIXTFGenericElementWrapper.h" +#include "nsIXTFElementWrapper.h" #include "nsMemory.h" #include "nsIDOMElement.h" #include "nsIDOM3Node.h" @@ -511,9 +511,6 @@ nsXFormsControlListItem::end() //------------------------------------------------------------------------------ static const nsIID sScriptingIIDs[] = { - NS_IDOMELEMENT_IID, - NS_IDOMEVENTTARGET_IID, - NS_IDOM3NODE_IID, NS_IXFORMSMODELELEMENT_IID, NS_IXFORMSNSMODELELEMENT_IID }; @@ -985,7 +982,7 @@ nsXFormsModelElement::ConstructDone() } NS_IMETHODIMP -nsXFormsModelElement::OnCreated(nsIXTFGenericElementWrapper *aWrapper) +nsXFormsModelElement::OnCreated(nsIXTFElementWrapper *aWrapper) { aWrapper->SetNotificationMask(nsIXTFElement::NOTIFY_WILL_CHANGE_DOCUMENT | nsIXTFElement::NOTIFY_DOCUMENT_CHANGED | diff --git a/mozilla/extensions/xforms/nsXFormsModelElement.h b/mozilla/extensions/xforms/nsXFormsModelElement.h index 11cbf1fe9be..e0e5ff9f678 100644 --- a/mozilla/extensions/xforms/nsXFormsModelElement.h +++ b/mozilla/extensions/xforms/nsXFormsModelElement.h @@ -250,14 +250,14 @@ public: NS_DECL_NSIDOMEVENTLISTENER NS_DECL_NSIXFORMSCONTEXTCONTROL - // nsIXTFGenericElement overrides + // nsIXTFElement overrides NS_IMETHOD OnDestroyed(); NS_IMETHOD GetScriptingInterfaces(PRUint32 *aCount, nsIID ***aArray); NS_IMETHOD WillChangeDocument(nsIDOMDocument *aNewDocument); NS_IMETHOD DocumentChanged(nsIDOMDocument *aNewDocument); NS_IMETHOD DoneAddingChildren(); NS_IMETHOD HandleDefault(nsIDOMEvent *aEvent, PRBool *aHandled); - NS_IMETHOD OnCreated(nsIXTFGenericElementWrapper *aWrapper); + NS_IMETHOD OnCreated(nsIXTFElementWrapper *aWrapper); // nsIXFormsControlBase overrides NS_IMETHOD Bind(PRBool *aContextChanged) { diff --git a/mozilla/extensions/xforms/nsXFormsRepeatElement.cpp b/mozilla/extensions/xforms/nsXFormsRepeatElement.cpp index a6e871f3260..ddd88d52a0c 100644 --- a/mozilla/extensions/xforms/nsXFormsRepeatElement.cpp +++ b/mozilla/extensions/xforms/nsXFormsRepeatElement.cpp @@ -341,8 +341,8 @@ protected: public: NS_DECL_ISUPPORTS_INHERITED - // nsIXTFBindableElement overrides - NS_IMETHOD OnCreated(nsIXTFBindableElementWrapper *aWrapper); + // nsIXTFElement overrides + NS_IMETHOD OnCreated(nsIXTFElementWrapper *aWrapper); // nsIXTFElement overrides NS_IMETHOD OnDestroyed(); @@ -380,7 +380,7 @@ NS_IMPL_ISUPPORTS_INHERITED1(nsXFormsRepeatElement, // nsIXTFBindableElement NS_IMETHODIMP -nsXFormsRepeatElement::OnCreated(nsIXTFBindableElementWrapper *aWrapper) +nsXFormsRepeatElement::OnCreated(nsIXTFElementWrapper *aWrapper) { #ifdef DEBUG_XF_REPEAT printf("nsXFormsRepeatElement::OnCreated()\n"); diff --git a/mozilla/extensions/xforms/nsXFormsSelect1Element.cpp b/mozilla/extensions/xforms/nsXFormsSelect1Element.cpp index 60a26907e58..70f0328d793 100644 --- a/mozilla/extensions/xforms/nsXFormsSelect1Element.cpp +++ b/mozilla/extensions/xforms/nsXFormsSelect1Element.cpp @@ -63,7 +63,7 @@ class nsXFormsSelect1Element : public nsXFormsDelegateStub public: NS_DECL_ISUPPORTS_INHERITED - NS_IMETHOD OnCreated(nsIXTFBindableElementWrapper *aWrapper); + NS_IMETHOD OnCreated(nsIXTFElementWrapper *aWrapper); // nsIXTFElement overrides NS_IMETHOD ChildInserted(nsIDOMNode *aChild, PRUint32 aIndex); @@ -91,7 +91,7 @@ NS_IMPL_ISUPPORTS_INHERITED0(nsXFormsSelect1Element, nsXFormsDelegateStub) NS_IMETHODIMP -nsXFormsSelect1Element::OnCreated(nsIXTFBindableElementWrapper *aWrapper) +nsXFormsSelect1Element::OnCreated(nsIXTFElementWrapper *aWrapper) { mAddingChildren = PR_FALSE; nsresult rv = nsXFormsDelegateStub::OnCreated(aWrapper); diff --git a/mozilla/extensions/xforms/nsXFormsSelectElement.cpp b/mozilla/extensions/xforms/nsXFormsSelectElement.cpp index 4ec52a3d05d..dec6d4a610f 100644 --- a/mozilla/extensions/xforms/nsXFormsSelectElement.cpp +++ b/mozilla/extensions/xforms/nsXFormsSelectElement.cpp @@ -60,7 +60,7 @@ class nsXFormsSelectElement : public nsXFormsDelegateStub public: NS_DECL_ISUPPORTS_INHERITED - NS_IMETHOD OnCreated(nsIXTFBindableElementWrapper *aWrapper); + NS_IMETHOD OnCreated(nsIXTFElementWrapper *aWrapper); // nsIXTFElement overrides NS_IMETHOD ChildInserted(nsIDOMNode *aChild, PRUint32 aIndex); @@ -84,7 +84,7 @@ NS_IMPL_ISUPPORTS_INHERITED0(nsXFormsSelectElement, nsXFormsDelegateStub) NS_IMETHODIMP -nsXFormsSelectElement::OnCreated(nsIXTFBindableElementWrapper *aWrapper) +nsXFormsSelectElement::OnCreated(nsIXTFElementWrapper *aWrapper) { nsresult rv = nsXFormsDelegateStub::OnCreated(aWrapper); NS_ENSURE_SUCCESS(rv, rv); diff --git a/mozilla/extensions/xforms/nsXFormsStubElement.cpp b/mozilla/extensions/xforms/nsXFormsStubElement.cpp index eb31b082cb0..1d85edf7030 100644 --- a/mozilla/extensions/xforms/nsXFormsStubElement.cpp +++ b/mozilla/extensions/xforms/nsXFormsStubElement.cpp @@ -43,17 +43,11 @@ #include "nsMemory.h" #include "nsXFormsUtils.h" #include "nsXFormsAtoms.h" -#include "nsIXTFBindableElementWrapper.h" - -static const nsIID sScriptingIIDs[] = { - NS_IDOMELEMENT_IID, - NS_IDOMEVENTTARGET_IID, - NS_IDOM3NODE_IID -}; +#include "nsIXTFElementWrapper.h" // nsXFormsStubElement implementation -NS_IMPL_ISUPPORTS2(nsXFormsStubElement, nsIXTFElement, nsIXTFGenericElement) +NS_IMPL_ISUPPORTS1(nsXFormsStubElement, nsIXTFElement) NS_IMETHODIMP nsXFormsStubElement::OnDestroyed() @@ -61,13 +55,6 @@ nsXFormsStubElement::OnDestroyed() return NS_OK; } -NS_IMETHODIMP -nsXFormsStubElement::GetElementType(PRUint32 *aElementType) -{ - *aElementType = nsIXTFElement::ELEMENT_TYPE_GENERIC_ELEMENT; - return NS_OK; -} - NS_IMETHODIMP nsXFormsStubElement::GetIsAttributeHandler(PRBool *aIsAttributeHandler) { @@ -78,9 +65,11 @@ nsXFormsStubElement::GetIsAttributeHandler(PRBool *aIsAttributeHandler) NS_IMETHODIMP nsXFormsStubElement::GetScriptingInterfaces(PRUint32 *aCount, nsIID ***aArray) { - return nsXFormsUtils::CloneScriptingInterfaces(sScriptingIIDs, - NS_ARRAY_LENGTH(sScriptingIIDs), - aCount, aArray); + NS_ENSURE_ARG_POINTER(aCount); + NS_ENSURE_ARG_POINTER(aArray); + *aCount = 0; + *aArray = nsnull; + return NS_OK; } NS_IMETHODIMP @@ -188,9 +177,9 @@ nsXFormsStubElement::HandleDefault(nsIDOMEvent *aEvent, PRBool *aHandled) } NS_IMETHODIMP -nsXFormsStubElement::OnCreated(nsIXTFGenericElementWrapper *aWrapper) +nsXFormsStubElement::OnCreated(nsIXTFElementWrapper *aWrapper) { - return NS_OK; + return aWrapper->SetClassAttributeName(nsXFormsAtoms::clazz); } NS_IMETHODIMP @@ -210,160 +199,3 @@ NS_NewXFormsStubElement(nsIXTFElement **aResult) return NS_OK; } -// nsXFormsBindableStub implementation - -NS_IMPL_ISUPPORTS2(nsXFormsBindableStub, nsIXTFElement, nsIXTFBindableElement) - -NS_IMETHODIMP -nsXFormsBindableStub::OnDestroyed() -{ - return NS_OK; -} - -NS_IMETHODIMP -nsXFormsBindableStub::GetElementType(PRUint32 *aElementType) -{ - *aElementType = nsIXTFElement::ELEMENT_TYPE_BINDABLE; - return NS_OK; -} - -NS_IMETHODIMP -nsXFormsBindableStub::GetIsAttributeHandler(PRBool *aIsAttributeHandler) -{ - *aIsAttributeHandler = PR_FALSE; - return NS_OK; -} - -NS_IMETHODIMP -nsXFormsBindableStub::GetScriptingInterfaces(PRUint32 *aCount, nsIID ***aArray) -{ - return NS_OK; -} - -NS_IMETHODIMP -nsXFormsBindableStub::WillChangeDocument(nsIDOMDocument *aNewDocument) -{ - return NS_OK; -} - -NS_IMETHODIMP -nsXFormsBindableStub::DocumentChanged(nsIDOMDocument *aNewDocument) -{ - return NS_OK; -} - -NS_IMETHODIMP -nsXFormsBindableStub::WillChangeParent(nsIDOMElement *aNewParent) -{ - return NS_OK; -} - -NS_IMETHODIMP -nsXFormsBindableStub::ParentChanged(nsIDOMElement *aNewParent) -{ - return NS_OK; -} - -NS_IMETHODIMP -nsXFormsBindableStub::WillInsertChild(nsIDOMNode *aChild, PRUint32 aIndex) -{ - return NS_OK; -} - -NS_IMETHODIMP -nsXFormsBindableStub::ChildInserted(nsIDOMNode *aChild, PRUint32 aIndex) -{ - return NS_OK; -} - -NS_IMETHODIMP -nsXFormsBindableStub::WillAppendChild(nsIDOMNode *aChild) -{ - return NS_OK; -} - -NS_IMETHODIMP -nsXFormsBindableStub::ChildAppended(nsIDOMNode *aChild) -{ - return NS_OK; -} - -NS_IMETHODIMP -nsXFormsBindableStub::WillRemoveChild(PRUint32 aIndex) -{ - return NS_OK; -} - -NS_IMETHODIMP -nsXFormsBindableStub::ChildRemoved(PRUint32 aIndex) -{ - return NS_OK; -} - -NS_IMETHODIMP -nsXFormsBindableStub::WillSetAttribute(nsIAtom *aName, - const nsAString &aNewValue) -{ - return NS_OK; -} - -NS_IMETHODIMP -nsXFormsBindableStub::AttributeSet(nsIAtom *aName, const nsAString &aNewValue) -{ - return NS_OK; -} - -NS_IMETHODIMP -nsXFormsBindableStub::WillRemoveAttribute(nsIAtom *aName) -{ - return NS_OK; -} - -NS_IMETHODIMP -nsXFormsBindableStub::AttributeRemoved(nsIAtom *aName) -{ - return NS_OK; -} - -NS_IMETHODIMP -nsXFormsBindableStub::BeginAddingChildren() -{ - return NS_OK; -} - -NS_IMETHODIMP -nsXFormsBindableStub::DoneAddingChildren() -{ - return NS_OK; -} - -NS_IMETHODIMP -nsXFormsBindableStub::HandleDefault(nsIDOMEvent *aEvent, PRBool *aHandled) -{ - *aHandled = PR_FALSE; - return NS_OK; -} - -NS_IMETHODIMP -nsXFormsBindableStub::OnCreated(nsIXTFBindableElementWrapper *aWrapper) -{ - NS_ENSURE_ARG(aWrapper); - return aWrapper->SetClassAttributeName(nsXFormsAtoms::clazz); -} - -NS_IMETHODIMP -nsXFormsBindableStub::CloneState(nsIDOMElement *aElement) -{ - return NS_OK; -} - -nsresult -NS_NewXFormsBindableStub(nsIXTFElement **aResult) -{ - *aResult = new nsXFormsBindableStub(); - if (!*aResult) - return NS_ERROR_OUT_OF_MEMORY; - - NS_ADDREF(*aResult); - return NS_OK; -} diff --git a/mozilla/extensions/xforms/nsXFormsStubElement.h b/mozilla/extensions/xforms/nsXFormsStubElement.h index 73db9b8c325..5e5d633472e 100644 --- a/mozilla/extensions/xforms/nsXFormsStubElement.h +++ b/mozilla/extensions/xforms/nsXFormsStubElement.h @@ -39,18 +39,13 @@ #ifndef nsXFormsStubElement_h_ #define nsXFormsStubElement_h_ -#include "nsIXTFGenericElement.h" -#include "nsIXTFBindableElement.h" +#include "nsIXTFElement.h" #include "nsIXFormsControlBase.h" /** - * An implementation of a generic non-UI XForms element. - * - * This is the implementation for e.g. bind so that the id attribute works - * correctly for these nodes. It is also a base class for all XForms - * nsIXTFGenericElement implementations. + * An implementation of a generic XForms element. */ -class nsXFormsStubElement : public nsIXTFGenericElement +class nsXFormsStubElement : public nsIXTFElement { protected: // We need a virtual destructor so that when a subclass does @@ -61,35 +56,9 @@ protected: public: NS_DECL_ISUPPORTS NS_DECL_NSIXTFELEMENT - NS_DECL_NSIXTFGENERICELEMENT -}; - -/** - * An implementation of an XForms bindable control. - * - * This is a base class for UI controls that use nsIXTFBindableElement. - * Note: a pointer to the anonymous content root is _not_ provided as part - * of this base class because different implementations want to store - * different types of interface pointers. - */ -class nsXFormsBindableStub : public nsIXTFBindableElement -{ -protected: - // We need a virtual destructor so that when a subclass does - // NS_IMPL_ISUPPORTS_INHERITED, our Release() implementation calls the - // derived class destructor. - virtual ~nsXFormsBindableStub() {} - -public: - NS_DECL_ISUPPORTS - NS_DECL_NSIXTFELEMENT - NS_DECL_NSIXTFBINDABLEELEMENT }; /* Factory methods */ NS_HIDDEN_(nsresult) NS_NewXFormsStubElement(nsIXTFElement **aResult); - -NS_HIDDEN_(nsresult) -NS_NewXFormsBindableStub(nsIXTFElement **aResult); #endif diff --git a/mozilla/extensions/xforms/nsXFormsSubmissionElement.cpp b/mozilla/extensions/xforms/nsXFormsSubmissionElement.cpp index c6a92bf092b..c6517608ac2 100644 --- a/mozilla/extensions/xforms/nsXFormsSubmissionElement.cpp +++ b/mozilla/extensions/xforms/nsXFormsSubmissionElement.cpp @@ -49,7 +49,7 @@ #include "nsXFormsSubmissionElement.h" #include "nsXFormsAtoms.h" #include "nsIInstanceElementPrivate.h" -#include "nsIXTFGenericElementWrapper.h" +#include "nsIXTFElementWrapper.h" #include "nsIDOMDocument.h" #include "nsIDOMElement.h" #include "nsIDOMText.h" @@ -319,10 +319,10 @@ nsXFormsSubmissionElement::SetActivator(nsIXFormsSubmitElement* aActivator) return NS_OK; } -// nsIXTFGenericElement +// nsIXTFElement NS_IMETHODIMP -nsXFormsSubmissionElement::OnCreated(nsIXTFGenericElementWrapper *aWrapper) +nsXFormsSubmissionElement::OnCreated(nsIXTFElementWrapper *aWrapper) { aWrapper->SetNotificationMask(nsIXTFElement::NOTIFY_HANDLE_DEFAULT); diff --git a/mozilla/extensions/xforms/nsXFormsSubmissionElement.h b/mozilla/extensions/xforms/nsXFormsSubmissionElement.h index cf8f5e1cc1e..7f29949d3ad 100644 --- a/mozilla/extensions/xforms/nsXFormsSubmissionElement.h +++ b/mozilla/extensions/xforms/nsXFormsSubmissionElement.h @@ -88,10 +88,10 @@ public: mFormat(0) {} - // nsIXTFGenericElement overrides + // nsIXTFElement overrides NS_IMETHOD OnDestroyed(); NS_IMETHOD HandleDefault(nsIDOMEvent *aEvent, PRBool *aHandled); - NS_IMETHOD OnCreated(nsIXTFGenericElementWrapper *aWrapper); + NS_IMETHOD OnCreated(nsIXTFElementWrapper *aWrapper); NS_HIDDEN_(already_AddRefed) GetModel(); diff --git a/mozilla/extensions/xforms/nsXFormsSwitchElement.cpp b/mozilla/extensions/xforms/nsXFormsSwitchElement.cpp index 9157437b3a5..6171c507fd3 100644 --- a/mozilla/extensions/xforms/nsXFormsSwitchElement.cpp +++ b/mozilla/extensions/xforms/nsXFormsSwitchElement.cpp @@ -69,7 +69,7 @@ public: NS_DECL_ISUPPORTS_INHERITED NS_DECL_NSIXFORMSSWITCHELEMENT - NS_IMETHOD OnCreated(nsIXTFBindableElementWrapper *aWrapper); + NS_IMETHOD OnCreated(nsIXTFElementWrapper *aWrapper); NS_IMETHOD ChildInserted(nsIDOMNode *aChild, PRUint32 aIndex); NS_IMETHOD ChildAppended(nsIDOMNode *aChild); NS_IMETHOD WillRemoveChild(PRUint32 aIndex); @@ -118,7 +118,7 @@ NS_IMPL_ISUPPORTS_INHERITED1(nsXFormsSwitchElement, nsIXFormsSwitchElement) NS_IMETHODIMP -nsXFormsSwitchElement::OnCreated(nsIXTFBindableElementWrapper *aWrapper) +nsXFormsSwitchElement::OnCreated(nsIXTFElementWrapper *aWrapper) { nsresult rv = nsXFormsDelegateStub::OnCreated(aWrapper); NS_ENSURE_SUCCESS(rv, rv); diff --git a/mozilla/extensions/xforms/nsXFormsValueElement.cpp b/mozilla/extensions/xforms/nsXFormsValueElement.cpp index 2e8095c7d83..c8c725eab34 100644 --- a/mozilla/extensions/xforms/nsXFormsValueElement.cpp +++ b/mozilla/extensions/xforms/nsXFormsValueElement.cpp @@ -38,7 +38,7 @@ #include "nsIXFormsValueElement.h" #include "nsXFormsStubElement.h" -#include "nsIXTFGenericElementWrapper.h" +#include "nsIXTFElementWrapper.h" #include "nsIDOM3Node.h" #include "nsXFormsUtils.h" #include "nsIDOMElement.h" @@ -59,8 +59,8 @@ public: NS_DECL_ISUPPORTS_INHERITED - // nsIXTFGenericElement overrides - NS_IMETHOD OnCreated(nsIXTFGenericElementWrapper *aWrapper); + // nsIXTFElement overrides + NS_IMETHOD OnCreated(nsIXTFElementWrapper *aWrapper); // nsIXFormsValueElement NS_DECL_NSIXFORMSVALUEELEMENT @@ -74,7 +74,7 @@ NS_IMPL_ISUPPORTS_INHERITED1(nsXFormsValueElement, nsIXFormsValueElement) NS_IMETHODIMP -nsXFormsValueElement::OnCreated(nsIXTFGenericElementWrapper *aWrapper) +nsXFormsValueElement::OnCreated(nsIXTFElementWrapper *aWrapper) { nsCOMPtr node; aWrapper->GetElementNode(getter_AddRefs(node)); diff --git a/mozilla/layout/Makefile.in b/mozilla/layout/Makefile.in index 2b3a7048dd3..c5b40274e6e 100644 --- a/mozilla/layout/Makefile.in +++ b/mozilla/layout/Makefile.in @@ -61,10 +61,6 @@ ifdef MOZ_MATHML DIRS += mathml endif -ifdef MOZ_XTF -DIRS += xtf -endif - ifdef MOZ_SVG DIRS += svg endif diff --git a/mozilla/layout/base/nsCSSFrameConstructor.cpp b/mozilla/layout/base/nsCSSFrameConstructor.cpp index 722755826af..55df5b6c2be 100644 --- a/mozilla/layout/base/nsCSSFrameConstructor.cpp +++ b/mozilla/layout/base/nsCSSFrameConstructor.cpp @@ -151,20 +151,6 @@ #include "nsMathMLParts.h" #endif -#ifdef MOZ_XTF -#include "nsIXTFElement.h" -#include "nsIXTFElementWrapperPrivate.h" -#include "nsIXTFVisualWrapperPrivate.h" -nsIFrame* -NS_NewXTFXULDisplayFrame(nsIPresShell*, nsStyleContext* aContext); -nsIFrame* -NS_NewXTFXMLDisplayFrame(nsIPresShell*, nsStyleContext* aContext, PRBool isBlock); -#ifdef MOZ_SVG -nsIFrame* -NS_NewXTFSVGDisplayFrame(nsIPresShell*, nsIContent*, nsStyleContext* aContext); -#endif -#endif - nsIFrame* NS_NewHTMLCanvasFrame (nsIPresShell* aPresShell, nsStyleContext* aContext); @@ -1077,25 +1063,6 @@ private: friend class nsFrameConstructorState; }; -// Structure for saving the existing state when pushing/popping insertion -// points for nsIAnonymousContentCreator. The destructor restores the state -// to its previous state. See documentation of these members in -// nsFrameConstructorState. -class nsFrameConstructorInsertionState { -public: - nsFrameConstructorInsertionState(); - ~nsFrameConstructorInsertionState(); - -private: - nsIFrame* mAnonymousCreator; - nsIContent* mInsertionContent; - PRBool mCreatorIsBlock; - - nsFrameConstructorState* mState; - - friend class nsFrameConstructorState; -}; - // Structure used for maintaining state information during the // frame construction process class nsFrameConstructorState { @@ -1113,13 +1080,6 @@ public: nsCOMPtr mFrameState; nsPseudoFrames mPseudoFrames; - // The nsIAnonymousContentCreator we're currently constructing children for. - nsIFrame *mAnonymousCreator; - // The insertion point node for mAnonymousCreator. - nsIContent *mInsertionContent; - // Whether the parent is a block (see ProcessChildren's aParentIsBlock) - PRBool mCreatorIsBlock; - #ifdef MOZ_XUL // The root box, if any. nsIRootBox* mRootBox; @@ -1199,15 +1159,8 @@ public: PRBool aCanBeFloated = PR_TRUE, PRBool aIsOutOfFlowPopup = PR_FALSE); - // Push an nsIAnonymousContentCreator and its insertion node - void PushAnonymousContentCreator(nsIFrame *aCreator, - nsIContent *aContent, - PRBool aIsBlock, - nsFrameConstructorInsertionState &aSaveState); - protected: friend class nsFrameConstructorSaveState; - friend class nsFrameConstructorInsertionState; /** * ProcessFrameInsertions takes the frames in aFrameItems and adds them as @@ -1231,10 +1184,7 @@ nsFrameConstructorState::nsFrameConstructorState(nsIPresShell* aPresShe mFirstLetterStyle(PR_FALSE), mFirstLineStyle(PR_FALSE), mFrameState(aHistoryState), - mPseudoFrames(), - mAnonymousCreator(nsnull), - mInsertionContent(nsnull), - mCreatorIsBlock(PR_FALSE) + mPseudoFrames() #ifdef MOZ_XUL , mRootBox(nsIRootBox::GetRootBox(aPresShell)) #endif @@ -1253,10 +1203,7 @@ nsFrameConstructorState::nsFrameConstructorState(nsIPresShell* aPresShell, mFloatedItems(aFloatContainingBlock), mFirstLetterStyle(PR_FALSE), mFirstLineStyle(PR_FALSE), - mPseudoFrames(), - mAnonymousCreator(nsnull), - mInsertionContent(nsnull), - mCreatorIsBlock(PR_FALSE) + mPseudoFrames() #ifdef MOZ_XUL , mRootBox(nsIRootBox::GetRootBox(aPresShell)) #endif @@ -1457,23 +1404,6 @@ nsFrameConstructorState::AddChild(nsIFrame* aNewFrame, return NS_OK; } -void -nsFrameConstructorState::PushAnonymousContentCreator(nsIFrame *aCreator, - nsIContent *aContent, - PRBool aIsBlock, - nsFrameConstructorInsertionState &aSaveState) -{ - NS_ASSERTION(aCreator || !aContent, "Must have a frame if there is an insertion node"); - aSaveState.mAnonymousCreator = mAnonymousCreator; - aSaveState.mInsertionContent = mInsertionContent; - aSaveState.mCreatorIsBlock = mCreatorIsBlock; - aSaveState.mState = this; - - mAnonymousCreator = aCreator; - mInsertionContent = aContent; - mCreatorIsBlock = aIsBlock; -} - void nsFrameConstructorState::ProcessFrameInsertions(nsAbsoluteItems& aFrameItems, nsIAtom* aChildListName) @@ -1579,38 +1509,6 @@ nsFrameConstructorSaveState::~nsFrameConstructorSaveState() } } -nsFrameConstructorInsertionState::nsFrameConstructorInsertionState() - : mAnonymousCreator(nsnull), - mInsertionContent(nsnull), - mCreatorIsBlock(PR_FALSE), - mState(nsnull) -{ -} - -nsFrameConstructorInsertionState::~nsFrameConstructorInsertionState() -{ - // Restore the state - if (mState) { - mState->mAnonymousCreator = mAnonymousCreator; - mState->mInsertionContent = mInsertionContent; - mState->mCreatorIsBlock = mCreatorIsBlock; - } -} - -// Putting this up here to help inlining work on compilers that won't inline -// definitions that are after the call site. -inline nsresult -nsCSSFrameConstructor::CreateInsertionPointChildren(nsFrameConstructorState &aState, - nsIFrame *aNewFrame, - nsIContent *aContent, - PRBool aUseInsertionFrame) -{ - if (aState.mInsertionContent == aContent) - return CreateInsertionPointChildren(aState, aNewFrame, aUseInsertionFrame); - - return NS_OK; -} - static PRBool IsBorderCollapse(nsIFrame* aFrame) { @@ -5902,11 +5800,6 @@ nsCSSFrameConstructor::ConstructHTMLFrame(nsFrameConstructorState& aState, } } - if (newFrame && !newFrame->IsLeaf()) { - rv = CreateInsertionPointChildren(aState, newFrame, aContent); - NS_ENSURE_SUCCESS(rv, rv); - } - if (addToHashTable) { // Add a mapping from content object to primary frame. Note that for // floated and positioned frames this is the out-of-flow frame and not @@ -5947,9 +5840,8 @@ nsCSSFrameConstructor::CreateAnonymousFrames(nsIAtom* aTag, ) return NS_OK; - return CreateAnonymousFrames(aState, aParent, mDocument, aNewFrame, PR_FALSE, - aAppendToExisting, aChildItems, - nsnull, nsnull, PR_FALSE); + return CreateAnonymousFrames(aState, aParent, mDocument, aNewFrame, + aAppendToExisting, aChildItems); } // after the node has been constructed and initialized create any @@ -5959,24 +5851,14 @@ nsCSSFrameConstructor::CreateAnonymousFrames(nsFrameConstructorState& aState, nsIContent* aParent, nsIDocument* aDocument, nsIFrame* aParentFrame, - PRBool aForceBindingParent, PRBool aAppendToExisting, - nsFrameItems& aChildItems, - nsIFrame* aAnonymousCreator, - nsIContent* aInsertionNode, - PRBool aAnonymousParentIsBlock) + nsFrameItems& aChildItems) { nsCOMPtr creator(do_QueryInterface(aParentFrame)); if (!creator) return NS_OK; - nsFrameConstructorInsertionState saveState; - aState.PushAnonymousContentCreator(aAnonymousCreator, - aInsertionNode, - aAnonymousParentIsBlock, - saveState); - nsCOMPtr anonymousItems; NS_NewISupportsArray(getter_AddRefs(anonymousItems)); @@ -6042,11 +5924,6 @@ nsCSSFrameConstructor::CreateAnonymousFrames(nsFrameConstructorState& aState, } else #endif -#ifdef MOZ_XTF - if (aForceBindingParent) - bindingParent = aParent; - else -#endif #ifdef MOZ_SVG // least-surprise CSS binding until we do the SVG specified // cascading rules for - bug 265894 @@ -6598,11 +6475,6 @@ nsCSSFrameConstructor::ConstructXULFrame(nsFrameConstructorState& aState, // addToHashTable: - if (newFrame && !newFrame->IsLeaf()) { - rv = CreateInsertionPointChildren(aState, newFrame, aContent); - NS_ENSURE_SUCCESS(rv, rv); - } - if (topFrame) { // the top frame is always what we map the content to. This is the frame that contains a pointer // to the content node. @@ -6668,8 +6540,8 @@ nsCSSFrameConstructor::BeginBuildingScrollFrame(nsFrameConstructorState& aState, // if there are any anonymous children for the scroll frame, create // frames for them. - CreateAnonymousFrames(aState, aContent, mDocument, gfxScrollFrame, PR_FALSE, - PR_FALSE, anonymousItems, nsnull, nsnull, PR_FALSE); + CreateAnonymousFrames(aState, aContent, mDocument, gfxScrollFrame, + PR_FALSE, anonymousItems); parentFrame = gfxScrollFrame; aNewFrame = gfxScrollFrame; @@ -7086,16 +6958,12 @@ nsCSSFrameConstructor::ConstructFrameByDisplayType(nsFrameConstructorState& aSta "Cases where AddChild() can fail must handle it themselves"); } - if (newFrame) { - rv = CreateInsertionPointChildren(aState, newFrame, aContent); - NS_ENSURE_SUCCESS(rv, rv); - - if (addToHashTable) { - // Add a mapping from content object to primary frame. Note that for - // floated and positioned frames this is the out-of-flow frame and not - // the placeholder frame - if (!primaryFrameSet) - aState.mFrameManager->SetPrimaryFrameFor(aContent, newFrame); + if (newFrame && addToHashTable) { + // Add a mapping from content object to primary frame. Note that for + // floated and positioned frames this is the out-of-flow frame and not + // the placeholder frame + if (!primaryFrameSet) { + aState.mFrameManager->SetPrimaryFrameFor(aContent, newFrame); } } @@ -7370,11 +7238,6 @@ nsCSSFrameConstructor::ConstructMathMLFrame(nsFrameConstructorState& aState, // Set the frame's initial child list newFrame->SetInitialChildList(nsnull, childItems.childList); - - - if (!newFrame->IsLeaf()) { - rv = CreateInsertionPointChildren(aState, newFrame, aContent); - } return rv; } @@ -7384,118 +7247,6 @@ nsCSSFrameConstructor::ConstructMathMLFrame(nsFrameConstructorState& aState, } #endif // MOZ_MATHML -// XTF -#ifdef MOZ_XTF -nsresult -nsCSSFrameConstructor::ConstructXTFFrame(nsFrameConstructorState& aState, - nsIContent* aContent, - nsIFrame* aParentFrame, - nsIAtom* aTag, - PRInt32 aNameSpaceID, - nsStyleContext* aStyleContext, - nsFrameItems& aFrameItems, - PRBool aHasPseudoParent) -{ -#ifdef DEBUG -// printf("nsCSSFrameConstructor::ConstructXTFFrame\n"); -#endif - nsresult rv = NS_OK; - PRBool forceView = PR_FALSE; - PRBool isBlock = PR_FALSE; - - // XXXbz somewhere here we should process pseudo frames if !aHasPseudoParent - - //NS_ASSERTION(aTag != nsnull, "null XTF tag"); - //if (aTag == nsnull) - // return NS_OK; - - // Initialize the new frame - nsIFrame* newFrame = nsnull; - - // See if the element is absolute or fixed positioned - const nsStyleDisplay* disp = aStyleContext->GetStyleDisplay(); - - nsCOMPtr xtfElem = do_QueryInterface(aContent); - NS_ASSERTION(xtfElem, "huh? no xtf element?"); - switch(xtfElem->GetElementType()) { - case nsIXTFElement::ELEMENT_TYPE_SVG_VISUAL: -#ifdef MOZ_SVG - newFrame = NS_NewXTFSVGDisplayFrame(mPresShell, aContent, aStyleContext); -#else - NS_ERROR("xtf svg visuals are only supported in mozilla builds with native svg"); -#endif - break; - case nsIXTFElement::ELEMENT_TYPE_XML_VISUAL: - { - PRBool isBlock = (NS_STYLE_DISPLAY_BLOCK == disp->mDisplay); - newFrame = NS_NewXTFXMLDisplayFrame(mPresShell, aStyleContext, isBlock); - } - break; - case nsIXTFElement::ELEMENT_TYPE_XUL_VISUAL: - newFrame = NS_NewXTFXULDisplayFrame(mPresShell, aStyleContext); - break; - case nsIXTFElement::ELEMENT_TYPE_GENERIC_ELEMENT: - NS_ERROR("huh? ELEMENT_TYPE_GENERIC_ELEMENT should have been flagged by caller"); - break; - default: - NS_ERROR("unknown xtf frame!"); - return NS_OK; - } - - // If we succeeded in creating a frame then initialize it, process its - // children (if requested), and set the initial child list - if (newFrame) { - InitAndRestoreFrame(aState, aContent, - aState.GetGeometricParent(disp, aParentFrame), - nsnull, newFrame); - - nsHTMLContainerFrame::CreateViewForFrame(newFrame, aParentFrame, forceView); - rv = aState.AddChild(newFrame, aFrameItems, disp, aContent, aStyleContext, - aParentFrame); - if (NS_FAILED(rv)) { - return rv; - } - - // Get the content node in the anonymous content tree where the explicit - // children should be inserted. - - nsCOMPtr insertionNode = newFrame->GetContentInsertionNode(); - - // Create anonymous frames before processing children, so that - // explicit child content can be appended to the correct anonymous - // frame. Call version of CreateAnonymousFrames that doesn't check - // tag: - - nsCOMPtr visual = do_QueryInterface(xtfElem); - NS_ASSERTION(visual, - "xtf wrapper not implementing nsIXTFVisualWrapperPrivate"); - - nsFrameItems childItems; - - // Since we've set the insertion frame, our children will automatically - // be constructed once |insertionNode| has had its frame created. - // Call version of CreateAnonymousFrames that doesn't check tag: - - CreateAnonymousFrames(aState, aContent, mDocument, newFrame, - visual->ApplyDocumentStyleSheets(), - PR_FALSE, childItems, - newFrame, insertionNode, isBlock); - - // Set the frame's initial child list - newFrame->SetInitialChildList(nsnull, childItems.childList); - - // Note: we don't worry about insertionFrame here because we know - // that XTF elements always insert into the primary frame of their - // insertion content. - return CreateInsertionPointChildren(aState, newFrame, aContent, PR_FALSE); - } - else { - return NS_ERROR_OUT_OF_MEMORY; - } -} -#endif // MOZ_XTF - - // SVG #ifdef MOZ_SVG nsresult @@ -7911,10 +7662,6 @@ nsCSSFrameConstructor::ConstructSVGFrame(nsFrameConstructorState& aState, // Set the frame's initial child list newFrame->SetInitialChildList(nsnull, childItems.childList); - - if (NS_SUCCEEDED(rv) && !newFrame->IsLeaf()) - rv = CreateInsertionPointChildren(aState, newFrame, aContent); - return rv; } else { @@ -8169,27 +7916,6 @@ nsCSSFrameConstructor::ConstructFrameInternal( nsFrameConstructorState& aState, } #endif -// XTF -#ifdef MOZ_XTF - if (aNameSpaceID > kNameSpaceID_LastBuiltin && - NS_SUCCEEDED(rv) && - (!frameItems->childList || lastChild == frameItems->lastChild)) { - nsCOMPtr xtfElem = do_QueryInterface(aContent); - if (xtfElem) { - if (xtfElem->GetElementType() == nsIXTFElement::ELEMENT_TYPE_GENERIC_ELEMENT) { - // we don't build frames for generic elements, only for visuals - // XXXbz this is bogus, really. These kids should just have - // display:none, so they don't mess with pseudo-state! - aState.mFrameManager->SetUndisplayedContent(aContent, styleContext); - return NS_OK; - } else if (xtfElem->GetElementType() != nsIXTFElement::ELEMENT_TYPE_BINDABLE) - rv = ConstructXTFFrame(aState, aContent, adjParentFrame, aTag, - aNameSpaceID, styleContext, *frameItems, - pseudoParent); - } - } -#endif - if (NS_SUCCEEDED(rv) && (!frameItems->childList || lastChild == frameItems->lastChild)) { // When there is no explicit frame to create, assume it's a @@ -13512,25 +13238,3 @@ NS_IMETHODIMP nsCSSFrameConstructor::RestyleEvent::Run() { return NS_OK; } -nsresult -nsCSSFrameConstructor::CreateInsertionPointChildren(nsFrameConstructorState &aState, - nsIFrame *aNewFrame, - PRBool aUseInsertionFrame) -{ - nsIContent *creatorContent = aState.mAnonymousCreator->GetContent(); - nsFrameItems insertionItems; - - nsIFrame *insertionFrame = - aUseInsertionFrame ? aNewFrame->GetContentInsertionFrame() : aNewFrame; - - nsresult rv = ProcessChildren(aState, creatorContent, insertionFrame, - PR_TRUE, insertionItems, - aState.mCreatorIsBlock); - - if (NS_SUCCEEDED(rv) && insertionItems.childList) { - rv = AppendFrames(aState, creatorContent, insertionFrame, - insertionItems.childList, nsnull); - } - - return rv; -} diff --git a/mozilla/layout/base/nsCSSFrameConstructor.h b/mozilla/layout/base/nsCSSFrameConstructor.h index 10bb6c960af..9e8cfda7da3 100644 --- a/mozilla/layout/base/nsCSSFrameConstructor.h +++ b/mozilla/layout/base/nsCSSFrameConstructor.h @@ -579,12 +579,8 @@ private: nsIContent* aParent, nsIDocument* aDocument, nsIFrame* aNewFrame, - PRBool aForceBindingParent, PRBool aAppendToExisting, - nsFrameItems& aChildItems, - nsIFrame* aAnonymousCreator, - nsIContent* aInsertionNode, - PRBool aAnonymousParentIsBlock); + nsFrameItems& aChildItems); //MathML Mod - RBS #ifdef MOZ_MATHML @@ -984,17 +980,6 @@ private: mCounterManager.RecalcAll(); } - inline NS_HIDDEN_(nsresult) - CreateInsertionPointChildren(nsFrameConstructorState &aState, - nsIFrame *aNewFrame, - nsIContent *aContent, - PRBool aUseInsertionFrame = PR_TRUE); - - NS_HIDDEN_(nsresult) - CreateInsertionPointChildren(nsFrameConstructorState &aState, - nsIFrame *aNewFrame, - PRBool aUseInsertionFrame); - public: struct RestyleData; friend struct RestyleData; diff --git a/mozilla/layout/build/Makefile.in b/mozilla/layout/build/Makefile.in index f643c022ed8..b751f662807 100644 --- a/mozilla/layout/build/Makefile.in +++ b/mozilla/layout/build/Makefile.in @@ -179,7 +179,6 @@ endif ifdef MOZ_XTF SHARED_LIBRARY_LIBS += \ $(DEPTH)/content/xtf/src/$(LIB_PREFIX)gkcontentxtf_s.$(LIB_SUFFIX) \ - ../xtf/src/$(LIB_PREFIX)gkxtfbase_s.$(LIB_SUFFIX) \ $(NULL) endif diff --git a/mozilla/layout/generic/nsIFrame.h b/mozilla/layout/generic/nsIFrame.h index c69a8fb31d8..e2adf0fec31 100644 --- a/mozilla/layout/generic/nsIFrame.h +++ b/mozilla/layout/generic/nsIFrame.h @@ -100,10 +100,10 @@ struct nsMargin; typedef class nsIFrame nsIBox; // IID for the nsIFrame interface -// {3fbdc59d-fdb1-49ed-8f17-d783dafab4f2} +// {0a099557-d85a-4bb1-8932-65717f245564} #define NS_IFRAME_IID \ -{ 0x3fbdc59d, 0xfdb1, 0x49ed, \ - { 0x8f, 0x17, 0xd7, 0x83, 0xda, 0xfa, 0xb4, 0xf2 } }; +{ 0x0a099557, 0xd85a, 0x4bb1, \ + { 0x89, 0x32, 0x65, 0x71, 0x7f, 0x24, 0x55, 0x64 } }; /** * Indication of how the frame can be split. This is used when doing runaround @@ -521,15 +521,6 @@ public: */ virtual nsIFrame* GetContentInsertionFrame() { return this; } - /** - * Get the child content node whose frame should be used as the parent for - * the frames of child elements. A frame can implement this method, instead - * of GetContentInsertionFrame, if its insertion point corresponds to a - * content node, and the frame for that node is not constructed immediately - * when the frame is initialized. - */ - virtual already_AddRefed GetContentInsertionNode() { return nsnull; } - /** * Get the offsets of the frame. most will be 0,0 *