diff --git a/mozilla/dom/public/html/nsIDOMImage.h b/mozilla/dom/public/html/nsIDOMImage.h
index 6e09e86e389..82b848e43f8 100644
--- a/mozilla/dom/public/html/nsIDOMImage.h
+++ b/mozilla/dom/public/html/nsIDOMImage.h
@@ -36,14 +36,21 @@
class nsIDOMImage : public nsISupports {
public:
static const nsIID& GetIID() { static nsIID iid = NS_IDOMIMAGE_IID; return iid; }
+
+ NS_IMETHOD GetLowsrc(nsString& aLowsrc)=0;
+ NS_IMETHOD SetLowsrc(const nsString& aLowsrc)=0;
};
#define NS_DECL_IDOMIMAGE \
+ NS_IMETHOD GetLowsrc(nsString& aLowsrc); \
+ NS_IMETHOD SetLowsrc(const nsString& aLowsrc); \
#define NS_FORWARD_IDOMIMAGE(_to) \
+ NS_IMETHOD GetLowsrc(nsString& aLowsrc) { return _to GetLowsrc(aLowsrc); } \
+ NS_IMETHOD SetLowsrc(const nsString& aLowsrc) { return _to SetLowsrc(aLowsrc); } \
#endif // nsIDOMImage_h__
diff --git a/mozilla/dom/public/idl/html/HTMLImageElement.idl b/mozilla/dom/public/idl/html/HTMLImageElement.idl
index ff506fe335e..ce168e436ad 100644
--- a/mozilla/dom/public/idl/html/HTMLImageElement.idl
+++ b/mozilla/dom/public/idl/html/HTMLImageElement.idl
@@ -27,4 +27,5 @@
{ 0x93, 0x2e, 0x00, 0x80, 0x5f, 0x8a, 0xdd, 0x32 } } */
void Image();
+ attribute DOMString lowsrc;
};
diff --git a/mozilla/dom/public/nsDOMPropEnums.h b/mozilla/dom/public/nsDOMPropEnums.h
index 8a77f99ec54..bb860d3c2a2 100644
--- a/mozilla/dom/public/nsDOMPropEnums.h
+++ b/mozilla/dom/public/nsDOMPropEnums.h
@@ -599,6 +599,7 @@ enum nsDOMProp {
NS_DOM_PROP_HTMLTITLEELEMENT_TEXT,
NS_DOM_PROP_HTMLULISTELEMENT_COMPACT,
NS_DOM_PROP_HTMLULISTELEMENT_TYPE,
+ NS_DOM_PROP_IMAGE_LOWSRC,
NS_DOM_PROP_KEYEVENT_ALTKEY,
NS_DOM_PROP_KEYEVENT_CHARCODE,
NS_DOM_PROP_KEYEVENT_CTRLKEY,
diff --git a/mozilla/dom/public/nsDOMPropNames.h b/mozilla/dom/public/nsDOMPropNames.h
index 2d0b64def83..5eef396f7a8 100644
--- a/mozilla/dom/public/nsDOMPropNames.h
+++ b/mozilla/dom/public/nsDOMPropNames.h
@@ -320,7 +320,6 @@
"htmldocument.close", \
"htmldocument.cookie", \
"htmldocument.domain", \
- "htmldocument.formname", \
"htmldocument.forms", \
"htmldocument.getelementbyid", \
"htmldocument.getelementsbyname", \
@@ -599,6 +598,7 @@
"htmltitleelement.text", \
"htmlulistelement.compact", \
"htmlulistelement.type", \
+ "image.lowsrc", \
"keyevent.altkey", \
"keyevent.charcode", \
"keyevent.ctrlkey", \
diff --git a/mozilla/dom/src/html/nsJSHTMLImageElement.cpp b/mozilla/dom/src/html/nsJSHTMLImageElement.cpp
index d8c0c563014..009d02bc29f 100644
--- a/mozilla/dom/src/html/nsJSHTMLImageElement.cpp
+++ b/mozilla/dom/src/html/nsJSHTMLImageElement.cpp
@@ -63,7 +63,8 @@ enum HTMLImageElement_slots {
HTMLIMAGEELEMENT_LONGDESC = -9,
HTMLIMAGEELEMENT_USEMAP = -10,
HTMLIMAGEELEMENT_VSPACE = -11,
- HTMLIMAGEELEMENT_WIDTH = -12
+ HTMLIMAGEELEMENT_WIDTH = -12,
+ IMAGE_LOWSRC = -13
};
/***********************************************************************/
@@ -304,6 +305,32 @@ GetHTMLImageElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
}
break;
}
+ case IMAGE_LOWSRC:
+ {
+ PRBool ok = PR_FALSE;
+ secMan->CheckScriptAccess(cx, obj, NS_DOM_PROP_IMAGE_LOWSRC, PR_FALSE, &ok);
+ if (!ok) {
+ return nsJSUtils::nsReportError(cx, obj, NS_ERROR_DOM_SECURITY_ERR);
+ }
+ nsAutoString prop;
+ nsIDOMImage* b;
+ if (NS_OK == a->QueryInterface(kIImageIID, (void **)&b)) {
+ nsresult result = NS_OK;
+ result = b->GetLowsrc(prop);
+ if(NS_SUCCEEDED(result)) {
+ nsJSUtils::nsConvertStringToJSVal(prop, cx, vp);
+ NS_RELEASE(b);
+ }
+ else {
+ NS_RELEASE(b);
+ return nsJSUtils::nsReportError(cx, obj, result);
+ }
+ }
+ else {
+ return nsJSUtils::nsReportError(cx, obj, NS_ERROR_DOM_WRONG_TYPE_ERR);
+ }
+ break;
+ }
default:
return nsJSUtils::nsCallJSScriptObjectGetProperty(a, cx, obj, id, vp);
}
@@ -507,6 +534,28 @@ SetHTMLImageElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
break;
}
+ case IMAGE_LOWSRC:
+ {
+ PRBool ok = PR_FALSE;
+ secMan->CheckScriptAccess(cx, obj, NS_DOM_PROP_IMAGE_LOWSRC, PR_TRUE, &ok);
+ if (!ok) {
+ return nsJSUtils::nsReportError(cx, obj, NS_ERROR_DOM_SECURITY_ERR);
+ }
+ nsAutoString prop;
+ nsJSUtils::nsConvertJSValToString(prop, cx, *vp);
+
+ nsIDOMImage *b;
+ if (NS_OK == a->QueryInterface(kIImageIID, (void **)&b)) {
+ b->SetLowsrc(prop);
+ NS_RELEASE(b);
+ }
+ else {
+
+ return nsJSUtils::nsReportError(cx, obj, NS_ERROR_DOM_WRONG_TYPE_ERR);
+ }
+
+ break;
+ }
default:
return nsJSUtils::nsCallJSScriptObjectSetProperty(a, cx, obj, id, vp);
}
@@ -584,6 +633,7 @@ static JSPropertySpec HTMLImageElementProperties[] =
{"useMap", HTMLIMAGEELEMENT_USEMAP, JSPROP_ENUMERATE},
{"vspace", HTMLIMAGEELEMENT_VSPACE, JSPROP_ENUMERATE},
{"width", HTMLIMAGEELEMENT_WIDTH, JSPROP_ENUMERATE},
+ {"lowsrc", IMAGE_LOWSRC, JSPROP_ENUMERATE},
{0}
};