Fixing using correct attribute or parameter for Java based on tag type, fixes mayscript for Liveconnect. bug 109039 r=av sr=beard

This commit is contained in:
peterlubczynski%netscape.com 2001-11-20 02:17:21 +00:00
Родитель 3667bef2b8
Коммит 0567cff18e
2 изменённых файлов: 108 добавлений и 18 удалений

Просмотреть файл

@ -2179,6 +2179,8 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetAttributes(PRUint16& n,
NS_IMETHODIMP nsPluginInstanceOwner::GetAttribute(const char* name, const char* *result) NS_IMETHODIMP nsPluginInstanceOwner::GetAttribute(const char* name, const char* *result)
{ {
NS_ENSURE_ARG_POINTER(name);
NS_ENSURE_ARG_POINTER(result);
if (nsnull == mAttrNames) { if (nsnull == mAttrNames) {
PRUint16 numattrs; PRUint16 numattrs;
const char * const *names, * const *vals; const char * const *names, * const *vals;
@ -2200,6 +2202,7 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetAttribute(const char* name, const char*
NS_IMETHODIMP nsPluginInstanceOwner::GetDOMElement(nsIDOMElement* *result) NS_IMETHODIMP nsPluginInstanceOwner::GetDOMElement(nsIDOMElement* *result)
{ {
NS_ENSURE_ARG_POINTER(result);
nsresult rv = NS_ERROR_FAILURE; nsresult rv = NS_ERROR_FAILURE;
*result = nsnull; *result = nsnull;
@ -2466,6 +2469,7 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetValue(nsPluginInstancePeerVariable varia
NS_IMETHODIMP nsPluginInstanceOwner::GetTagType(nsPluginTagType *result) NS_IMETHODIMP nsPluginInstanceOwner::GetTagType(nsPluginTagType *result)
{ {
NS_ENSURE_ARG_POINTER(result);
nsresult rv = NS_ERROR_FAILURE; nsresult rv = NS_ERROR_FAILURE;
*result = nsPluginTagType_Unknown; *result = nsPluginTagType_Unknown;
@ -2504,6 +2508,7 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetTagType(nsPluginTagType *result)
NS_IMETHODIMP nsPluginInstanceOwner::GetTagText(const char* *result) NS_IMETHODIMP nsPluginInstanceOwner::GetTagText(const char* *result)
{ {
NS_ENSURE_ARG_POINTER(result);
if (nsnull == mTagText) { if (nsnull == mTagText) {
nsresult rv; nsresult rv;
nsCOMPtr<nsIContent> content; nsCOMPtr<nsIContent> content;
@ -2696,6 +2701,9 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetParameters(PRUint16& n, const char*const
NS_IMETHODIMP nsPluginInstanceOwner::GetParameter(const char* name, const char* *result) NS_IMETHODIMP nsPluginInstanceOwner::GetParameter(const char* name, const char* *result)
{ {
NS_ENSURE_ARG_POINTER(name);
NS_ENSURE_ARG_POINTER(result);
nsresult rv;
PRInt32 count; PRInt32 count;
if (nsnull == mParamNames) if (nsnull == mParamNames)
@ -2703,7 +2711,7 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetParameter(const char* name, const char*
PRUint16 numattrs; PRUint16 numattrs;
const char * const *names, * const *vals; const char * const *names, * const *vals;
GetParameters(numattrs, names, vals); rv = GetParameters(numattrs, names, vals);
} }
for (count = 0; count < mNumParams; count++) for (count = 0; count < mNumParams; count++)
@ -2715,14 +2723,17 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetParameter(const char* name, const char*
} }
} }
if (count >= mNumParams) if (count >= mNumParams) {
*result = ""; *result = "";
rv = NS_ERROR_FAILURE;
}
return NS_OK; return rv;
} }
NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentBase(const char* *result) NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentBase(const char* *result)
{ {
NS_ENSURE_ARG_POINTER(result);
nsresult rv = NS_OK; nsresult rv = NS_OK;
if (nsnull == mDocumentBase) { if (nsnull == mDocumentBase) {
if (nsnull == mContext) { if (nsnull == mContext) {
@ -2748,7 +2759,6 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentBase(const char* *result)
NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentEncoding(const char* *result) NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentEncoding(const char* *result)
{ {
printf("instance owner getdocumentencoding called\n");
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
} }
@ -2950,34 +2960,69 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetBorderHorizSpace(PRUint32 *result)
NS_IMETHODIMP nsPluginInstanceOwner::GetUniqueID(PRUint32 *result) NS_IMETHODIMP nsPluginInstanceOwner::GetUniqueID(PRUint32 *result)
{ {
NS_ENSURE_ARG_POINTER(result);
*result = NS_PTR_TO_INT32(mContext); *result = NS_PTR_TO_INT32(mContext);
return NS_OK; return NS_OK;
} }
NS_IMETHODIMP nsPluginInstanceOwner::GetCode(const char* *result) NS_IMETHODIMP nsPluginInstanceOwner::GetCode(const char* *result)
{ {
return GetAttribute("CODE", result); nsresult rv;
nsPluginTagType tagType;
NS_ENSURE_SUCCESS(rv = GetTagType(&tagType), rv);
rv = NS_ERROR_FAILURE;
if (nsPluginTagType_Object != tagType)
rv = GetAttribute("CODE", result);
if (NS_FAILED(rv))
rv = GetParameter("CODE", result);
return rv;
} }
NS_IMETHODIMP nsPluginInstanceOwner::GetCodeBase(const char* *result) NS_IMETHODIMP nsPluginInstanceOwner::GetCodeBase(const char* *result)
{ {
return GetAttribute("CODEBASE", result); nsresult rv;
if (NS_FAILED(rv = GetAttribute("CODEBASE", result)))
rv = GetParameter("CODEBASE", result);
return rv;
} }
NS_IMETHODIMP nsPluginInstanceOwner::GetArchive(const char* *result) NS_IMETHODIMP nsPluginInstanceOwner::GetArchive(const char* *result)
{ {
return GetAttribute("ARCHIVE", result); nsresult rv;
if (NS_FAILED(rv = GetAttribute("ARCHIVE", result)))
rv = GetParameter("ARCHIVE", result);
return rv;
} }
NS_IMETHODIMP nsPluginInstanceOwner::GetName(const char* *result) NS_IMETHODIMP nsPluginInstanceOwner::GetName(const char* *result)
{ {
return GetAttribute("NAME", result); nsresult rv;
nsPluginTagType tagType;
NS_ENSURE_SUCCESS(rv = GetTagType(&tagType), rv);
rv = NS_ERROR_FAILURE;
if (nsPluginTagType_Object != tagType)
rv = GetAttribute("NAME", result);
if (NS_FAILED(rv))
rv = GetParameter("NAME", result);
return rv;
} }
NS_IMETHODIMP nsPluginInstanceOwner::GetMayScript(PRBool *result) NS_IMETHODIMP nsPluginInstanceOwner::GetMayScript(PRBool *result)
{ {
NS_ENSURE_ARG_POINTER(result);
nsPluginTagType tagType;
NS_ENSURE_SUCCESS(GetTagType(&tagType), NS_ERROR_FAILURE);
const char* unused; const char* unused;
*result = (GetAttribute("MAYSCRIPT", &unused) == NS_OK ? PR_TRUE : PR_FALSE); if (nsPluginTagType_Object == tagType)
*result = NS_SUCCEEDED(GetParameter("MAYSCRIPT", &unused));
else
*result = NS_SUCCEEDED(GetAttribute("MAYSCRIPT", &unused));
return NS_OK; return NS_OK;
} }

Просмотреть файл

@ -2179,6 +2179,8 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetAttributes(PRUint16& n,
NS_IMETHODIMP nsPluginInstanceOwner::GetAttribute(const char* name, const char* *result) NS_IMETHODIMP nsPluginInstanceOwner::GetAttribute(const char* name, const char* *result)
{ {
NS_ENSURE_ARG_POINTER(name);
NS_ENSURE_ARG_POINTER(result);
if (nsnull == mAttrNames) { if (nsnull == mAttrNames) {
PRUint16 numattrs; PRUint16 numattrs;
const char * const *names, * const *vals; const char * const *names, * const *vals;
@ -2200,6 +2202,7 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetAttribute(const char* name, const char*
NS_IMETHODIMP nsPluginInstanceOwner::GetDOMElement(nsIDOMElement* *result) NS_IMETHODIMP nsPluginInstanceOwner::GetDOMElement(nsIDOMElement* *result)
{ {
NS_ENSURE_ARG_POINTER(result);
nsresult rv = NS_ERROR_FAILURE; nsresult rv = NS_ERROR_FAILURE;
*result = nsnull; *result = nsnull;
@ -2466,6 +2469,7 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetValue(nsPluginInstancePeerVariable varia
NS_IMETHODIMP nsPluginInstanceOwner::GetTagType(nsPluginTagType *result) NS_IMETHODIMP nsPluginInstanceOwner::GetTagType(nsPluginTagType *result)
{ {
NS_ENSURE_ARG_POINTER(result);
nsresult rv = NS_ERROR_FAILURE; nsresult rv = NS_ERROR_FAILURE;
*result = nsPluginTagType_Unknown; *result = nsPluginTagType_Unknown;
@ -2504,6 +2508,7 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetTagType(nsPluginTagType *result)
NS_IMETHODIMP nsPluginInstanceOwner::GetTagText(const char* *result) NS_IMETHODIMP nsPluginInstanceOwner::GetTagText(const char* *result)
{ {
NS_ENSURE_ARG_POINTER(result);
if (nsnull == mTagText) { if (nsnull == mTagText) {
nsresult rv; nsresult rv;
nsCOMPtr<nsIContent> content; nsCOMPtr<nsIContent> content;
@ -2696,6 +2701,9 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetParameters(PRUint16& n, const char*const
NS_IMETHODIMP nsPluginInstanceOwner::GetParameter(const char* name, const char* *result) NS_IMETHODIMP nsPluginInstanceOwner::GetParameter(const char* name, const char* *result)
{ {
NS_ENSURE_ARG_POINTER(name);
NS_ENSURE_ARG_POINTER(result);
nsresult rv;
PRInt32 count; PRInt32 count;
if (nsnull == mParamNames) if (nsnull == mParamNames)
@ -2703,7 +2711,7 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetParameter(const char* name, const char*
PRUint16 numattrs; PRUint16 numattrs;
const char * const *names, * const *vals; const char * const *names, * const *vals;
GetParameters(numattrs, names, vals); rv = GetParameters(numattrs, names, vals);
} }
for (count = 0; count < mNumParams; count++) for (count = 0; count < mNumParams; count++)
@ -2715,14 +2723,17 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetParameter(const char* name, const char*
} }
} }
if (count >= mNumParams) if (count >= mNumParams) {
*result = ""; *result = "";
rv = NS_ERROR_FAILURE;
}
return NS_OK; return rv;
} }
NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentBase(const char* *result) NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentBase(const char* *result)
{ {
NS_ENSURE_ARG_POINTER(result);
nsresult rv = NS_OK; nsresult rv = NS_OK;
if (nsnull == mDocumentBase) { if (nsnull == mDocumentBase) {
if (nsnull == mContext) { if (nsnull == mContext) {
@ -2748,7 +2759,6 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentBase(const char* *result)
NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentEncoding(const char* *result) NS_IMETHODIMP nsPluginInstanceOwner::GetDocumentEncoding(const char* *result)
{ {
printf("instance owner getdocumentencoding called\n");
return NS_ERROR_FAILURE; return NS_ERROR_FAILURE;
} }
@ -2950,34 +2960,69 @@ NS_IMETHODIMP nsPluginInstanceOwner::GetBorderHorizSpace(PRUint32 *result)
NS_IMETHODIMP nsPluginInstanceOwner::GetUniqueID(PRUint32 *result) NS_IMETHODIMP nsPluginInstanceOwner::GetUniqueID(PRUint32 *result)
{ {
NS_ENSURE_ARG_POINTER(result);
*result = NS_PTR_TO_INT32(mContext); *result = NS_PTR_TO_INT32(mContext);
return NS_OK; return NS_OK;
} }
NS_IMETHODIMP nsPluginInstanceOwner::GetCode(const char* *result) NS_IMETHODIMP nsPluginInstanceOwner::GetCode(const char* *result)
{ {
return GetAttribute("CODE", result); nsresult rv;
nsPluginTagType tagType;
NS_ENSURE_SUCCESS(rv = GetTagType(&tagType), rv);
rv = NS_ERROR_FAILURE;
if (nsPluginTagType_Object != tagType)
rv = GetAttribute("CODE", result);
if (NS_FAILED(rv))
rv = GetParameter("CODE", result);
return rv;
} }
NS_IMETHODIMP nsPluginInstanceOwner::GetCodeBase(const char* *result) NS_IMETHODIMP nsPluginInstanceOwner::GetCodeBase(const char* *result)
{ {
return GetAttribute("CODEBASE", result); nsresult rv;
if (NS_FAILED(rv = GetAttribute("CODEBASE", result)))
rv = GetParameter("CODEBASE", result);
return rv;
} }
NS_IMETHODIMP nsPluginInstanceOwner::GetArchive(const char* *result) NS_IMETHODIMP nsPluginInstanceOwner::GetArchive(const char* *result)
{ {
return GetAttribute("ARCHIVE", result); nsresult rv;
if (NS_FAILED(rv = GetAttribute("ARCHIVE", result)))
rv = GetParameter("ARCHIVE", result);
return rv;
} }
NS_IMETHODIMP nsPluginInstanceOwner::GetName(const char* *result) NS_IMETHODIMP nsPluginInstanceOwner::GetName(const char* *result)
{ {
return GetAttribute("NAME", result); nsresult rv;
nsPluginTagType tagType;
NS_ENSURE_SUCCESS(rv = GetTagType(&tagType), rv);
rv = NS_ERROR_FAILURE;
if (nsPluginTagType_Object != tagType)
rv = GetAttribute("NAME", result);
if (NS_FAILED(rv))
rv = GetParameter("NAME", result);
return rv;
} }
NS_IMETHODIMP nsPluginInstanceOwner::GetMayScript(PRBool *result) NS_IMETHODIMP nsPluginInstanceOwner::GetMayScript(PRBool *result)
{ {
NS_ENSURE_ARG_POINTER(result);
nsPluginTagType tagType;
NS_ENSURE_SUCCESS(GetTagType(&tagType), NS_ERROR_FAILURE);
const char* unused; const char* unused;
*result = (GetAttribute("MAYSCRIPT", &unused) == NS_OK ? PR_TRUE : PR_FALSE); if (nsPluginTagType_Object == tagType)
*result = NS_SUCCEEDED(GetParameter("MAYSCRIPT", &unused));
else
*result = NS_SUCCEEDED(GetAttribute("MAYSCRIPT", &unused));
return NS_OK; return NS_OK;
} }