Fix for bug #32587.
git-svn-id: svn://10.0.0.236/trunk@63522 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
@@ -945,6 +945,7 @@ enum nsDOMProp {
|
||||
NS_DOM_PROP_XULMENULISTELEMENT_CROP,
|
||||
NS_DOM_PROP_XULMENULISTELEMENT_DATA,
|
||||
NS_DOM_PROP_XULMENULISTELEMENT_DISABLED,
|
||||
NS_DOM_PROP_XULMENULISTELEMENT_SELECTEDINDEX,
|
||||
NS_DOM_PROP_XULMENULISTELEMENT_SELECTEDITEM,
|
||||
NS_DOM_PROP_XULMENULISTELEMENT_SRC,
|
||||
NS_DOM_PROP_XULMENULISTELEMENT_VALUE,
|
||||
|
||||
@@ -944,6 +944,7 @@
|
||||
"xulmenulistelement.crop", \
|
||||
"xulmenulistelement.data", \
|
||||
"xulmenulistelement.disabled", \
|
||||
"xulmenulistelement.selectedindex", \
|
||||
"xulmenulistelement.selecteditem", \
|
||||
"xulmenulistelement.src", \
|
||||
"xulmenulistelement.value", \
|
||||
|
||||
@@ -74,7 +74,7 @@ GetXULCommandDispatcherProperty(JSContext *cx, JSObject *obj, jsval id, jsval *v
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
@@ -157,7 +157,7 @@ SetXULCommandDispatcherProperty(JSContext *cx, JSObject *obj, jsval id, jsval *v
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
|
||||
@@ -76,7 +76,7 @@ GetXULDocumentProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
@@ -161,7 +161,7 @@ SetXULDocumentProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
|
||||
@@ -80,7 +80,7 @@ GetXULElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
@@ -189,7 +189,7 @@ SetXULElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
|
||||
@@ -70,7 +70,7 @@ GetXULTreeElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
@@ -155,7 +155,7 @@ SetXULTreeElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
|
||||
@@ -4,6 +4,7 @@ interface XULMenuListElement : XULElement {
|
||||
attribute DOMString value;
|
||||
attribute DOMString data;
|
||||
attribute Element selectedItem;
|
||||
attribute int selectedIndex;
|
||||
attribute DOMString crop;
|
||||
attribute boolean disabled;
|
||||
attribute DOMString src;
|
||||
|
||||
@@ -48,6 +48,9 @@ public:
|
||||
NS_IMETHOD GetSelectedItem(nsIDOMElement** aSelectedItem)=0;
|
||||
NS_IMETHOD SetSelectedItem(nsIDOMElement* aSelectedItem)=0;
|
||||
|
||||
NS_IMETHOD GetSelectedIndex(PRInt32* aSelectedIndex)=0;
|
||||
NS_IMETHOD SetSelectedIndex(PRInt32 aSelectedIndex)=0;
|
||||
|
||||
NS_IMETHOD GetCrop(nsString& aCrop)=0;
|
||||
NS_IMETHOD SetCrop(const nsString& aCrop)=0;
|
||||
|
||||
@@ -66,6 +69,8 @@ public:
|
||||
NS_IMETHOD SetData(const nsString& aData); \
|
||||
NS_IMETHOD GetSelectedItem(nsIDOMElement** aSelectedItem); \
|
||||
NS_IMETHOD SetSelectedItem(nsIDOMElement* aSelectedItem); \
|
||||
NS_IMETHOD GetSelectedIndex(PRInt32* aSelectedIndex); \
|
||||
NS_IMETHOD SetSelectedIndex(PRInt32 aSelectedIndex); \
|
||||
NS_IMETHOD GetCrop(nsString& aCrop); \
|
||||
NS_IMETHOD SetCrop(const nsString& aCrop); \
|
||||
NS_IMETHOD GetDisabled(PRBool* aDisabled); \
|
||||
@@ -82,6 +87,8 @@ public:
|
||||
NS_IMETHOD SetData(const nsString& aData) { return _to SetData(aData); } \
|
||||
NS_IMETHOD GetSelectedItem(nsIDOMElement** aSelectedItem) { return _to GetSelectedItem(aSelectedItem); } \
|
||||
NS_IMETHOD SetSelectedItem(nsIDOMElement* aSelectedItem) { return _to SetSelectedItem(aSelectedItem); } \
|
||||
NS_IMETHOD GetSelectedIndex(PRInt32* aSelectedIndex) { return _to GetSelectedIndex(aSelectedIndex); } \
|
||||
NS_IMETHOD SetSelectedIndex(PRInt32 aSelectedIndex) { return _to SetSelectedIndex(aSelectedIndex); } \
|
||||
NS_IMETHOD GetCrop(nsString& aCrop) { return _to GetCrop(aCrop); } \
|
||||
NS_IMETHOD SetCrop(const nsString& aCrop) { return _to SetCrop(aCrop); } \
|
||||
NS_IMETHOD GetDisabled(PRBool* aDisabled) { return _to GetDisabled(aDisabled); } \
|
||||
|
||||
@@ -65,7 +65,7 @@ GetXULBrowserElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
@@ -111,7 +111,7 @@ SetXULBrowserElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
|
||||
@@ -69,7 +69,7 @@ GetXULCheckboxElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
@@ -186,7 +186,7 @@ SetXULCheckboxElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
|
||||
@@ -74,7 +74,7 @@ GetXULCommandDispatcherProperty(JSContext *cx, JSObject *obj, jsval id, jsval *v
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
@@ -157,7 +157,7 @@ SetXULCommandDispatcherProperty(JSContext *cx, JSObject *obj, jsval id, jsval *v
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
|
||||
@@ -76,7 +76,7 @@ GetXULDocumentProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
@@ -161,7 +161,7 @@ SetXULDocumentProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
|
||||
@@ -65,7 +65,7 @@ GetXULEditorElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
@@ -111,7 +111,7 @@ SetXULEditorElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
|
||||
@@ -80,7 +80,7 @@ GetXULElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
@@ -189,7 +189,7 @@ SetXULElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
|
||||
@@ -65,7 +65,7 @@ GetXULIFrameElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
@@ -111,7 +111,7 @@ SetXULIFrameElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
|
||||
@@ -51,9 +51,10 @@ enum XULMenuListElement_slots {
|
||||
XULMENULISTELEMENT_VALUE = -1,
|
||||
XULMENULISTELEMENT_DATA = -2,
|
||||
XULMENULISTELEMENT_SELECTEDITEM = -3,
|
||||
XULMENULISTELEMENT_CROP = -4,
|
||||
XULMENULISTELEMENT_DISABLED = -5,
|
||||
XULMENULISTELEMENT_SRC = -6
|
||||
XULMENULISTELEMENT_SELECTEDINDEX = -4,
|
||||
XULMENULISTELEMENT_CROP = -5,
|
||||
XULMENULISTELEMENT_DISABLED = -6,
|
||||
XULMENULISTELEMENT_SRC = -7
|
||||
};
|
||||
|
||||
/***********************************************************************/
|
||||
@@ -70,7 +71,7 @@ GetXULMenuListElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
@@ -113,6 +114,18 @@ GetXULMenuListElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
}
|
||||
break;
|
||||
}
|
||||
case XULMENULISTELEMENT_SELECTEDINDEX:
|
||||
{
|
||||
rv = secMan->CheckScriptAccess(cx, obj, NS_DOM_PROP_XULMENULISTELEMENT_SELECTEDINDEX, PR_FALSE);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
PRInt32 prop;
|
||||
rv = a->GetSelectedIndex(&prop);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
*vp = INT_TO_JSVAL(prop);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
case XULMENULISTELEMENT_CROP:
|
||||
{
|
||||
rv = secMan->CheckScriptAccess(cx, obj, NS_DOM_PROP_XULMENULISTELEMENT_CROP, PR_FALSE);
|
||||
@@ -176,7 +189,7 @@ SetXULMenuListElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
@@ -222,6 +235,24 @@ SetXULMenuListElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
}
|
||||
break;
|
||||
}
|
||||
case XULMENULISTELEMENT_SELECTEDINDEX:
|
||||
{
|
||||
rv = secMan->CheckScriptAccess(cx, obj, NS_DOM_PROP_XULMENULISTELEMENT_SELECTEDINDEX, PR_TRUE);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
PRInt32 prop;
|
||||
int32 temp;
|
||||
if (JSVAL_IS_NUMBER(*vp) && JS_ValueToInt32(cx, *vp, &temp)) {
|
||||
prop = (PRInt32)temp;
|
||||
}
|
||||
else {
|
||||
rv = NS_ERROR_DOM_NOT_NUMBER_ERR;
|
||||
}
|
||||
|
||||
rv = a->SetSelectedIndex(prop);
|
||||
|
||||
}
|
||||
break;
|
||||
}
|
||||
case XULMENULISTELEMENT_CROP:
|
||||
{
|
||||
rv = secMan->CheckScriptAccess(cx, obj, NS_DOM_PROP_XULMENULISTELEMENT_CROP, PR_TRUE);
|
||||
@@ -332,6 +363,7 @@ static JSPropertySpec XULMenuListElementProperties[] =
|
||||
{"value", XULMENULISTELEMENT_VALUE, JSPROP_ENUMERATE},
|
||||
{"data", XULMENULISTELEMENT_DATA, JSPROP_ENUMERATE},
|
||||
{"selectedItem", XULMENULISTELEMENT_SELECTEDITEM, JSPROP_ENUMERATE},
|
||||
{"selectedIndex", XULMENULISTELEMENT_SELECTEDINDEX, JSPROP_ENUMERATE},
|
||||
{"crop", XULMENULISTELEMENT_CROP, JSPROP_ENUMERATE},
|
||||
{"disabled", XULMENULISTELEMENT_DISABLED, JSPROP_ENUMERATE},
|
||||
{"src", XULMENULISTELEMENT_SRC, JSPROP_ENUMERATE},
|
||||
|
||||
@@ -59,7 +59,7 @@ GetXULPopupElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
@@ -93,7 +93,7 @@ SetXULPopupElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
|
||||
@@ -69,7 +69,7 @@ GetXULRadioElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
@@ -186,7 +186,7 @@ SetXULRadioElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
|
||||
@@ -65,29 +65,22 @@ GetXULRadioGroupElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *v
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsresult rv;
|
||||
NS_WITH_SERVICE(nsIScriptSecurityManager, secMan,
|
||||
NS_SCRIPTSECURITYMANAGER_PROGID, &rv);
|
||||
if (NS_FAILED(rv)) {
|
||||
return nsJSUtils::nsReportError(cx, obj, NS_ERROR_DOM_SECMAN_ERR);
|
||||
}
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
return PR_FALSE;
|
||||
switch(JSVAL_TO_INT(id)) {
|
||||
case XULRADIOGROUPELEMENT_SELECTEDITEM:
|
||||
{
|
||||
rv = secMan->CheckScriptAccess(cx, obj, NS_DOM_PROP_XULRADIOGROUPELEMENT_SELECTEDITEM, PR_FALSE);
|
||||
if (NS_FAILED(rv)) {
|
||||
return nsJSUtils::nsReportError(cx, obj, rv);
|
||||
}
|
||||
nsIDOMXULRadioElement* prop;
|
||||
nsresult result = NS_OK;
|
||||
result = a->GetSelectedItem(&prop);
|
||||
if (NS_SUCCEEDED(result)) {
|
||||
// get the js object
|
||||
nsJSUtils::nsConvertObjectToJSVal((nsISupports *)prop, cx, obj, vp);
|
||||
}
|
||||
else {
|
||||
return nsJSUtils::nsReportError(cx, obj, result);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
nsIDOMXULRadioElement* prop;
|
||||
rv = a->GetSelectedItem(&prop);
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
// get the js object
|
||||
nsJSUtils::nsConvertObjectToJSVal((nsISupports *)prop, cx, obj, vp);
|
||||
}
|
||||
}
|
||||
break;
|
||||
}
|
||||
@@ -99,6 +92,8 @@ GetXULRadioGroupElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *v
|
||||
return nsJSUtils::nsCallJSScriptObjectGetProperty(a, cx, obj, id, vp);
|
||||
}
|
||||
|
||||
if (NS_FAILED(rv))
|
||||
return nsJSUtils::nsReportError(cx, obj, rv);
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
@@ -116,29 +111,26 @@ SetXULRadioGroupElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *v
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsresult rv;
|
||||
NS_WITH_SERVICE(nsIScriptSecurityManager, secMan,
|
||||
NS_SCRIPTSECURITYMANAGER_PROGID, &rv);
|
||||
if (NS_FAILED(rv)) {
|
||||
return nsJSUtils::nsReportError(cx, obj, NS_ERROR_DOM_SECMAN_ERR);
|
||||
}
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
return PR_FALSE;
|
||||
switch(JSVAL_TO_INT(id)) {
|
||||
case XULRADIOGROUPELEMENT_SELECTEDITEM:
|
||||
{
|
||||
rv = secMan->CheckScriptAccess(cx, obj, NS_DOM_PROP_XULRADIOGROUPELEMENT_SELECTEDITEM, PR_TRUE);
|
||||
if (NS_FAILED(rv)) {
|
||||
return nsJSUtils::nsReportError(cx, obj, rv);
|
||||
}
|
||||
nsIDOMXULRadioElement* prop;
|
||||
if (PR_FALSE == nsJSUtils::nsConvertJSValToObject((nsISupports **)&prop,
|
||||
kIXULRadioElementIID, "XULRadioElement",
|
||||
cx, *vp)) {
|
||||
return nsJSUtils::nsReportError(cx, obj, NS_ERROR_DOM_NOT_OBJECT_ERR);
|
||||
}
|
||||
if (NS_SUCCEEDED(rv)) {
|
||||
nsIDOMXULRadioElement* prop;
|
||||
if (PR_FALSE == nsJSUtils::nsConvertJSValToObject((nsISupports **)&prop,
|
||||
kIXULRadioElementIID, "XULRadioElement",
|
||||
cx, *vp)) {
|
||||
rv = NS_ERROR_DOM_NOT_OBJECT_ERR;
|
||||
}
|
||||
|
||||
a->SetSelectedItem(prop);
|
||||
NS_IF_RELEASE(prop);
|
||||
rv = a->SetSelectedItem(prop);
|
||||
NS_IF_RELEASE(prop);
|
||||
}
|
||||
break;
|
||||
}
|
||||
default:
|
||||
@@ -149,6 +141,8 @@ SetXULRadioGroupElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *v
|
||||
return nsJSUtils::nsCallJSScriptObjectSetProperty(a, cx, obj, id, vp);
|
||||
}
|
||||
|
||||
if (NS_FAILED(rv))
|
||||
return nsJSUtils::nsReportError(cx, obj, rv);
|
||||
return PR_TRUE;
|
||||
}
|
||||
|
||||
|
||||
@@ -68,7 +68,7 @@ GetXULTitledButtonElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
@@ -173,7 +173,7 @@ SetXULTitledButtonElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
|
||||
@@ -70,7 +70,7 @@ GetXULTreeElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
@@ -155,7 +155,7 @@ SetXULTreeElementProperty(JSContext *cx, JSObject *obj, jsval id, jsval *vp)
|
||||
return JS_TRUE;
|
||||
}
|
||||
|
||||
nsresult rv;
|
||||
nsresult rv = NS_OK;
|
||||
if (JSVAL_IS_INT(id)) {
|
||||
nsIScriptSecurityManager *secMan = nsJSUtils::nsGetSecurityManager(cx, obj);
|
||||
if (!secMan)
|
||||
|
||||
@@ -163,6 +163,48 @@ GetMenuChildrenElement(nsIContent* aParent, nsIContent** aResult)
|
||||
}
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsXULMenuListElement::GetSelectedIndex(PRInt32* aResult)
|
||||
{
|
||||
// XXX Quick and dirty. Doesn't work with hierarchies, or
|
||||
// when other things are put in the <menupopup>.
|
||||
*aResult = -1;
|
||||
if (mSelectedItem) {
|
||||
nsCOMPtr<nsIContent> parent;
|
||||
nsCOMPtr<nsIContent> child(do_QueryInterface(mSelectedItem));
|
||||
child->GetParent(*getter_AddRefs(parent));
|
||||
parent->IndexOf(child, *aResult);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsXULMenuListElement::SetSelectedIndex(PRInt32 anIndex)
|
||||
{
|
||||
// XXX Quick and dirty. Doesn't work with hierarchies, or
|
||||
// when other things are put in the <menupopup>.
|
||||
if (anIndex == -1)
|
||||
SetSelectedItem(nsnull);
|
||||
|
||||
if (anIndex < 0)
|
||||
return NS_OK;
|
||||
|
||||
nsCOMPtr<nsIContent> child;
|
||||
nsCOMPtr<nsIContent> parent(do_QueryInterface(mOuter));
|
||||
GetMenuChildrenElement(parent, getter_AddRefs(child));
|
||||
if (child) {
|
||||
PRInt32 count;
|
||||
child->ChildCount(count);
|
||||
if (anIndex >= count)
|
||||
return NS_OK;
|
||||
|
||||
nsCOMPtr<nsIContent> item;
|
||||
child->ChildAt(anIndex, *getter_AddRefs(item));
|
||||
nsCOMPtr<nsIDOMElement> element(do_QueryInterface(item));
|
||||
SetSelectedItem(element);
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
||||
NS_IMETHODIMP
|
||||
nsXULMenuListElement::GetSelectedItem(nsIDOMElement** aResult)
|
||||
|
||||
Reference in New Issue
Block a user