diff --git a/mozilla/content/base/src/nsDocument.cpp b/mozilla/content/base/src/nsDocument.cpp index df43df5ea01..2d802a55332 100644 --- a/mozilla/content/base/src/nsDocument.cpp +++ b/mozilla/content/base/src/nsDocument.cpp @@ -1111,13 +1111,6 @@ 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 bcb6dd37517..93cd09823c8 100644 --- a/mozilla/content/base/src/nsDocument.h +++ b/mozilla/content/base/src/nsDocument.h @@ -260,8 +260,6 @@ 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 1a92e48dacd..9db31d5748d 100644 --- a/mozilla/content/html/content/src/nsGenericHTMLElement.cpp +++ b/mozilla/content/html/content/src/nsGenericHTMLElement.cpp @@ -1712,6 +1712,9 @@ nsGenericHTMLElement::SetAttr(nsIAtom* aAttribute, case eSetAttrNotify_None: break; case eSetAttrNotify_Reflow: + if (nsnull != mDocument) { + mDocument->ContentChanged(mContent, nsnull); + } break; case eSetAttrNotify_Render: RenderFrame(); @@ -2115,13 +2118,6 @@ nsGenericHTMLElement::Finalize(JSContext *aContext) { } -PRBool -nsGenericHTMLElement::Construct(JSContext *cx, JSObject *obj, - uintN argc, jsval *argv, jsval *rval) -{ - return PR_TRUE; -} - //---------------------------------------------------------------------- // nsISupports implementation diff --git a/mozilla/content/html/content/src/nsGenericHTMLElement.h b/mozilla/content/html/content/src/nsGenericHTMLElement.h index 712e6a34f35..954b1a291a9 100644 --- a/mozilla/content/html/content/src/nsGenericHTMLElement.h +++ b/mozilla/content/html/content/src/nsGenericHTMLElement.h @@ -162,8 +162,6 @@ 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); // Implementation for nsISupports NS_DECL_ISUPPORTS diff --git a/mozilla/content/html/content/src/nsHTMLImageElement.cpp b/mozilla/content/html/content/src/nsHTMLImageElement.cpp index fe639a91b71..5f46f3f4246 100644 --- a/mozilla/content/html/content/src/nsHTMLImageElement.cpp +++ b/mozilla/content/html/content/src/nsHTMLImageElement.cpp @@ -27,6 +27,7 @@ #include "nsStyleConsts.h" #include "nsIPresContext.h" #include "nsIHTMLAttributes.h" +#include "nsIJSScriptObject.h" // XXX nav attrs: suppress @@ -35,7 +36,8 @@ static NS_DEFINE_IID(kIDOMHTMLImageElementIID, NS_IDOMHTMLIMAGEELEMENT_IID); class nsHTMLImageElement : public nsIDOMHTMLImageElement, public nsIScriptObjectOwner, public nsIDOMEventReceiver, - public nsIHTMLContent + public nsIHTMLContent, + public nsIJSScriptObject { public: nsHTMLImageElement(nsIAtom* aTag); @@ -93,6 +95,16 @@ public: // nsIHTMLContent NS_IMPL_IHTMLCONTENT_USING_GENERIC(mInner) + // nsIJSScriptObject + virtual PRBool AddProperty(JSContext *aContext, jsval aID, jsval *aVp); + virtual PRBool DeleteProperty(JSContext *aContext, jsval aID, jsval *aVp); + virtual PRBool GetProperty(JSContext *aContext, jsval aID, jsval *aVp); + virtual PRBool SetProperty(JSContext *aContext, jsval aID, jsval *aVp); + virtual PRBool EnumerateProperty(JSContext *aContext); + virtual PRBool Resolve(JSContext *aContext, jsval aID); + virtual PRBool Convert(JSContext *aContext, jsval aID); + virtual void Finalize(JSContext *aContext); + protected: nsGenericHTMLLeafElement mInner; }; @@ -128,6 +140,12 @@ NS_IMPL_RELEASE(nsHTMLImageElement) nsresult nsHTMLImageElement::QueryInterface(REFNSIID aIID, void** aInstancePtr) { + if (aIID.Equals(kIJSScriptObjectIID)) { + nsIJSScriptObject* tmp = this; + *aInstancePtr = (void*) tmp; + AddRef(); + return NS_OK; + } NS_IMPL_HTML_CONTENT_QUERY_INTERFACE(aIID, aInstancePtr, this) if (aIID.Equals(kIDOMHTMLImageElementIID)) { nsIDOMHTMLImageElement* tmp = this; @@ -158,7 +176,7 @@ NS_IMPL_STRING_ATTR(nsHTMLImageElement, Height, height, eSetAttrNotify_Reflow) NS_IMPL_STRING_ATTR(nsHTMLImageElement, Hspace, hspace, eSetAttrNotify_Reflow) NS_IMPL_BOOL_ATTR(nsHTMLImageElement, IsMap, ismap, eSetAttrNotify_None) NS_IMPL_STRING_ATTR(nsHTMLImageElement, LongDesc, longdesc, eSetAttrNotify_None) -NS_IMPL_STRING_ATTR(nsHTMLImageElement, Src, src, eSetAttrNotify_Render) +NS_IMPL_STRING_ATTR(nsHTMLImageElement, Src, src, eSetAttrNotify_Reflow) NS_IMPL_STRING_ATTR(nsHTMLImageElement, UseMap, usemap, eSetAttrNotify_None) NS_IMPL_STRING_ATTR(nsHTMLImageElement, Vspace, vspace, eSetAttrNotify_Reflow) NS_IMPL_STRING_ATTR(nsHTMLImageElement, Width, width, eSetAttrNotify_Reflow) @@ -268,3 +286,52 @@ nsHTMLImageElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +PRBool +nsHTMLImageElement::AddProperty(JSContext *aContext, jsval aID, jsval *aVp) +{ + return mInner.AddProperty(aContext, aID, aVp); +} + +PRBool +nsHTMLImageElement::DeleteProperty(JSContext *aContext, jsval aID, jsval *aVp) +{ + return mInner.DeleteProperty(aContext, aID, aVp); +} + +PRBool +nsHTMLImageElement::GetProperty(JSContext *aContext, jsval aID, jsval *aVp) +{ + return mInner.GetProperty(aContext, aID, aVp); +} + +PRBool +nsHTMLImageElement::SetProperty(JSContext *aContext, jsval aID, jsval *aVp) +{ + return mInner.SetProperty(aContext, aID, aVp); +} + +PRBool +nsHTMLImageElement::EnumerateProperty(JSContext *aContext) +{ + return mInner.EnumerateProperty(aContext); +} + +PRBool +nsHTMLImageElement::Resolve(JSContext *aContext, jsval aID) +{ + return mInner.Resolve(aContext, aID); +} + +PRBool +nsHTMLImageElement::Convert(JSContext *aContext, jsval aID) +{ + return mInner.Convert(aContext, aID); +} + +void +nsHTMLImageElement::Finalize(JSContext *aContext) +{ + mInner.Finalize(aContext); +} + diff --git a/mozilla/layout/base/src/nsDocument.cpp b/mozilla/layout/base/src/nsDocument.cpp index df43df5ea01..2d802a55332 100644 --- a/mozilla/layout/base/src/nsDocument.cpp +++ b/mozilla/layout/base/src/nsDocument.cpp @@ -1111,13 +1111,6 @@ 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 bcb6dd37517..93cd09823c8 100644 --- a/mozilla/layout/base/src/nsDocument.h +++ b/mozilla/layout/base/src/nsDocument.h @@ -260,8 +260,6 @@ 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/content/src/nsGenericHTMLElement.cpp b/mozilla/layout/html/content/src/nsGenericHTMLElement.cpp index 1a92e48dacd..9db31d5748d 100644 --- a/mozilla/layout/html/content/src/nsGenericHTMLElement.cpp +++ b/mozilla/layout/html/content/src/nsGenericHTMLElement.cpp @@ -1712,6 +1712,9 @@ nsGenericHTMLElement::SetAttr(nsIAtom* aAttribute, case eSetAttrNotify_None: break; case eSetAttrNotify_Reflow: + if (nsnull != mDocument) { + mDocument->ContentChanged(mContent, nsnull); + } break; case eSetAttrNotify_Render: RenderFrame(); @@ -2115,13 +2118,6 @@ nsGenericHTMLElement::Finalize(JSContext *aContext) { } -PRBool -nsGenericHTMLElement::Construct(JSContext *cx, JSObject *obj, - uintN argc, jsval *argv, jsval *rval) -{ - return PR_TRUE; -} - //---------------------------------------------------------------------- // nsISupports implementation diff --git a/mozilla/layout/html/content/src/nsGenericHTMLElement.h b/mozilla/layout/html/content/src/nsGenericHTMLElement.h index 712e6a34f35..954b1a291a9 100644 --- a/mozilla/layout/html/content/src/nsGenericHTMLElement.h +++ b/mozilla/layout/html/content/src/nsGenericHTMLElement.h @@ -162,8 +162,6 @@ 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); // Implementation for nsISupports NS_DECL_ISUPPORTS diff --git a/mozilla/layout/html/content/src/nsHTMLImageElement.cpp b/mozilla/layout/html/content/src/nsHTMLImageElement.cpp index fe639a91b71..5f46f3f4246 100644 --- a/mozilla/layout/html/content/src/nsHTMLImageElement.cpp +++ b/mozilla/layout/html/content/src/nsHTMLImageElement.cpp @@ -27,6 +27,7 @@ #include "nsStyleConsts.h" #include "nsIPresContext.h" #include "nsIHTMLAttributes.h" +#include "nsIJSScriptObject.h" // XXX nav attrs: suppress @@ -35,7 +36,8 @@ static NS_DEFINE_IID(kIDOMHTMLImageElementIID, NS_IDOMHTMLIMAGEELEMENT_IID); class nsHTMLImageElement : public nsIDOMHTMLImageElement, public nsIScriptObjectOwner, public nsIDOMEventReceiver, - public nsIHTMLContent + public nsIHTMLContent, + public nsIJSScriptObject { public: nsHTMLImageElement(nsIAtom* aTag); @@ -93,6 +95,16 @@ public: // nsIHTMLContent NS_IMPL_IHTMLCONTENT_USING_GENERIC(mInner) + // nsIJSScriptObject + virtual PRBool AddProperty(JSContext *aContext, jsval aID, jsval *aVp); + virtual PRBool DeleteProperty(JSContext *aContext, jsval aID, jsval *aVp); + virtual PRBool GetProperty(JSContext *aContext, jsval aID, jsval *aVp); + virtual PRBool SetProperty(JSContext *aContext, jsval aID, jsval *aVp); + virtual PRBool EnumerateProperty(JSContext *aContext); + virtual PRBool Resolve(JSContext *aContext, jsval aID); + virtual PRBool Convert(JSContext *aContext, jsval aID); + virtual void Finalize(JSContext *aContext); + protected: nsGenericHTMLLeafElement mInner; }; @@ -128,6 +140,12 @@ NS_IMPL_RELEASE(nsHTMLImageElement) nsresult nsHTMLImageElement::QueryInterface(REFNSIID aIID, void** aInstancePtr) { + if (aIID.Equals(kIJSScriptObjectIID)) { + nsIJSScriptObject* tmp = this; + *aInstancePtr = (void*) tmp; + AddRef(); + return NS_OK; + } NS_IMPL_HTML_CONTENT_QUERY_INTERFACE(aIID, aInstancePtr, this) if (aIID.Equals(kIDOMHTMLImageElementIID)) { nsIDOMHTMLImageElement* tmp = this; @@ -158,7 +176,7 @@ NS_IMPL_STRING_ATTR(nsHTMLImageElement, Height, height, eSetAttrNotify_Reflow) NS_IMPL_STRING_ATTR(nsHTMLImageElement, Hspace, hspace, eSetAttrNotify_Reflow) NS_IMPL_BOOL_ATTR(nsHTMLImageElement, IsMap, ismap, eSetAttrNotify_None) NS_IMPL_STRING_ATTR(nsHTMLImageElement, LongDesc, longdesc, eSetAttrNotify_None) -NS_IMPL_STRING_ATTR(nsHTMLImageElement, Src, src, eSetAttrNotify_Render) +NS_IMPL_STRING_ATTR(nsHTMLImageElement, Src, src, eSetAttrNotify_Reflow) NS_IMPL_STRING_ATTR(nsHTMLImageElement, UseMap, usemap, eSetAttrNotify_None) NS_IMPL_STRING_ATTR(nsHTMLImageElement, Vspace, vspace, eSetAttrNotify_Reflow) NS_IMPL_STRING_ATTR(nsHTMLImageElement, Width, width, eSetAttrNotify_Reflow) @@ -268,3 +286,52 @@ nsHTMLImageElement::HandleDOMEvent(nsIPresContext& aPresContext, return mInner.HandleDOMEvent(aPresContext, aEvent, aDOMEvent, aFlags, aEventStatus); } + +PRBool +nsHTMLImageElement::AddProperty(JSContext *aContext, jsval aID, jsval *aVp) +{ + return mInner.AddProperty(aContext, aID, aVp); +} + +PRBool +nsHTMLImageElement::DeleteProperty(JSContext *aContext, jsval aID, jsval *aVp) +{ + return mInner.DeleteProperty(aContext, aID, aVp); +} + +PRBool +nsHTMLImageElement::GetProperty(JSContext *aContext, jsval aID, jsval *aVp) +{ + return mInner.GetProperty(aContext, aID, aVp); +} + +PRBool +nsHTMLImageElement::SetProperty(JSContext *aContext, jsval aID, jsval *aVp) +{ + return mInner.SetProperty(aContext, aID, aVp); +} + +PRBool +nsHTMLImageElement::EnumerateProperty(JSContext *aContext) +{ + return mInner.EnumerateProperty(aContext); +} + +PRBool +nsHTMLImageElement::Resolve(JSContext *aContext, jsval aID) +{ + return mInner.Resolve(aContext, aID); +} + +PRBool +nsHTMLImageElement::Convert(JSContext *aContext, jsval aID) +{ + return mInner.Convert(aContext, aID); +} + +void +nsHTMLImageElement::Finalize(JSContext *aContext) +{ + mInner.Finalize(aContext); +} +