mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-10 03:45:46 +00:00
Fix for bug 23066. Added getter/setter for image.lowsrc for compatibility - the DOM defines image.lowSrc (note the case difference). r=pollmann
This commit is contained in:
parent
29f5443a16
commit
3cc928f744
@ -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__
|
||||
|
@ -27,4 +27,5 @@
|
||||
{ 0x93, 0x2e, 0x00, 0x80, 0x5f, 0x8a, 0xdd, 0x32 } } */
|
||||
|
||||
void Image();
|
||||
attribute DOMString lowsrc;
|
||||
};
|
||||
|
@ -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,
|
||||
|
@ -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", \
|
||||
|
@ -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}
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user