git-svn-id: svn://10.0.0.236/trunk@45481 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
av%netscape.com
1999-09-01 19:58:22 +00:00
parent b290f16fd1
commit 4be9d1c209
2 changed files with 70 additions and 12 deletions

View File

@@ -1927,6 +1927,33 @@ nsPluginHostImpl::IsPluginEnabledForType(const char* aMimeType)
return NS_ERROR_FAILURE;
}
// check comma delimetered extensions
static int CompareExtensions(const char *aExtensionList, const char *aExtension)
{
if((aExtensionList == nsnull) || (aExtension == nsnull))
return -1;
const char *pExt = aExtensionList;
char *pComma = strchr(pExt, ',');
if(pComma == nsnull)
return strcmp(pExt, aExtension);
while(pComma != nsnull)
{
int length = pComma - pExt;
if(0 == strncmp(pExt, aExtension, length))
return 0;
pComma++;
pExt = pComma;
pComma = strchr(pExt, ',');
}
// the last one
return strcmp(pExt, aExtension);
}
NS_IMETHODIMP
nsPluginHostImpl::IsPluginEnabledForExtension(const char* aExtension, const char* &aMimeType)
{
@@ -1947,12 +1974,14 @@ nsPluginHostImpl::IsPluginEnabledForExtension(const char* aExtension, const char
for (cnt = 0; cnt < variants; cnt++)
{
if (0 == strcmp(plugins->mExtensionsArray[cnt], aExtension))
{
aMimeType = plugins->mMimeTypeArray[cnt];
return NS_OK;
}
}
//if (0 == strcmp(plugins->mExtensionsArray[cnt], aExtension))
// mExtensionsArray[cnt] could be not a single extension but rather a list separated by commas
if (0 == CompareExtensions(plugins->mExtensionsArray[cnt], aExtension))
{
aMimeType = plugins->mMimeTypeArray[cnt];
return NS_OK;
}
}
if (cnt < variants)
break;