mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-10-10 03:45:46 +00:00
Fix for plugins stop working on Mac bug 90959 r=av sr=attinasi
This commit is contained in:
parent
04dd6715b8
commit
b4f2f62fe4
@ -688,6 +688,7 @@ nsPluginTag::nsPluginTag()
|
||||
mFlags = NS_PLUGIN_FLAG_ENABLED;
|
||||
mXPConnected = PR_FALSE;
|
||||
mFileName = nsnull;
|
||||
mFullPath = nsnull;
|
||||
}
|
||||
|
||||
inline char* new_str(const char* str)
|
||||
@ -739,6 +740,7 @@ nsPluginTag::nsPluginTag(nsPluginTag* aPluginTag)
|
||||
mFlags = NS_PLUGIN_FLAG_ENABLED;
|
||||
mXPConnected = PR_FALSE;
|
||||
mFileName = new_str(aPluginTag->mFileName);
|
||||
mFullPath = new_str(aPluginTag->mFullPath);
|
||||
}
|
||||
|
||||
nsPluginTag::nsPluginTag(nsPluginInfo* aPluginInfo)
|
||||
@ -774,6 +776,7 @@ nsPluginTag::nsPluginTag(nsPluginInfo* aPluginInfo)
|
||||
}
|
||||
|
||||
mFileName = new_str(aPluginInfo->fFileName);
|
||||
mFullPath = new_str(aPluginInfo->fFullPath);
|
||||
|
||||
mLibrary = nsnull;
|
||||
mCanUnloadLibrary = PR_TRUE;
|
||||
@ -805,6 +808,7 @@ nsPluginTag::nsPluginTag(const char* aName,
|
||||
mName = new_str(aName);
|
||||
mDescription = new_str(aDescription);
|
||||
mFileName = new_str(aFileName);
|
||||
mFullPath = new_str(aFileName);
|
||||
|
||||
if (mVariants) {
|
||||
mMimeTypeArray = new char*[mVariants];
|
||||
@ -862,6 +866,13 @@ nsPluginTag::~nsPluginTag()
|
||||
delete [] mFileName;
|
||||
mFileName = nsnull;
|
||||
}
|
||||
|
||||
if(nsnull != mFullPath)
|
||||
{
|
||||
delete [] mFullPath;
|
||||
mFullPath = nsnull;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void nsPluginTag::TryUnloadPlugin(PRBool aForceShutdown)
|
||||
@ -3688,8 +3699,13 @@ NS_IMETHODIMP nsPluginHostImpl::GetPluginFactory(const char *aMimeType, nsIPlugi
|
||||
|
||||
if (nsnull == pluginTag->mLibrary) // if we haven't done this yet
|
||||
{
|
||||
#ifndef XP_MAC
|
||||
nsFileSpec file(pluginTag->mFileName);
|
||||
|
||||
#else
|
||||
if (nsnull == pluginTag->mFullPath)
|
||||
return NS_ERROR_FAILURE;
|
||||
nsFileSpec file(pluginTag->mFullPath);
|
||||
#endif
|
||||
nsPluginFile pluginFile(file);
|
||||
PRLibrary* pluginLibrary = NULL;
|
||||
|
||||
|
@ -84,6 +84,7 @@ public:
|
||||
PRUint32 mFlags;
|
||||
PRBool mXPConnected;
|
||||
char *mFileName;
|
||||
char *mFullPath;
|
||||
};
|
||||
|
||||
struct nsActivePlugin
|
||||
|
@ -67,6 +67,7 @@ struct nsPluginInfo {
|
||||
char** fMimeDescriptionArray;
|
||||
char** fExtensionArray;
|
||||
char* fFileName;
|
||||
char* fFullPath;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -243,6 +243,7 @@ nsresult nsPluginFile::GetPluginInfo(nsPluginInfo& info)
|
||||
info.fMimeDescriptionArray = new char*[variantCount];
|
||||
info.fExtensionArray = new char*[variantCount];
|
||||
info.fFileName = p2cstrdup(spec.name);
|
||||
info.fFullPath = PL_strdup(this->GetCString());
|
||||
|
||||
short mimeIndex = 1, descriptionIndex = 1;
|
||||
for (int i = 0; i < variantCount; i++) {
|
||||
@ -274,6 +275,7 @@ nsresult nsPluginFile::FreePluginInfo(nsPluginInfo& info)
|
||||
delete[] info.fMimeDescriptionArray;
|
||||
delete[] info.fExtensionArray;
|
||||
delete[] info.fFileName;
|
||||
delete[] info.fFullPath;
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
@ -688,6 +688,7 @@ nsPluginTag::nsPluginTag()
|
||||
mFlags = NS_PLUGIN_FLAG_ENABLED;
|
||||
mXPConnected = PR_FALSE;
|
||||
mFileName = nsnull;
|
||||
mFullPath = nsnull;
|
||||
}
|
||||
|
||||
inline char* new_str(const char* str)
|
||||
@ -739,6 +740,7 @@ nsPluginTag::nsPluginTag(nsPluginTag* aPluginTag)
|
||||
mFlags = NS_PLUGIN_FLAG_ENABLED;
|
||||
mXPConnected = PR_FALSE;
|
||||
mFileName = new_str(aPluginTag->mFileName);
|
||||
mFullPath = new_str(aPluginTag->mFullPath);
|
||||
}
|
||||
|
||||
nsPluginTag::nsPluginTag(nsPluginInfo* aPluginInfo)
|
||||
@ -774,6 +776,7 @@ nsPluginTag::nsPluginTag(nsPluginInfo* aPluginInfo)
|
||||
}
|
||||
|
||||
mFileName = new_str(aPluginInfo->fFileName);
|
||||
mFullPath = new_str(aPluginInfo->fFullPath);
|
||||
|
||||
mLibrary = nsnull;
|
||||
mCanUnloadLibrary = PR_TRUE;
|
||||
@ -805,6 +808,7 @@ nsPluginTag::nsPluginTag(const char* aName,
|
||||
mName = new_str(aName);
|
||||
mDescription = new_str(aDescription);
|
||||
mFileName = new_str(aFileName);
|
||||
mFullPath = new_str(aFileName);
|
||||
|
||||
if (mVariants) {
|
||||
mMimeTypeArray = new char*[mVariants];
|
||||
@ -862,6 +866,13 @@ nsPluginTag::~nsPluginTag()
|
||||
delete [] mFileName;
|
||||
mFileName = nsnull;
|
||||
}
|
||||
|
||||
if(nsnull != mFullPath)
|
||||
{
|
||||
delete [] mFullPath;
|
||||
mFullPath = nsnull;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void nsPluginTag::TryUnloadPlugin(PRBool aForceShutdown)
|
||||
@ -3688,8 +3699,13 @@ NS_IMETHODIMP nsPluginHostImpl::GetPluginFactory(const char *aMimeType, nsIPlugi
|
||||
|
||||
if (nsnull == pluginTag->mLibrary) // if we haven't done this yet
|
||||
{
|
||||
#ifndef XP_MAC
|
||||
nsFileSpec file(pluginTag->mFileName);
|
||||
|
||||
#else
|
||||
if (nsnull == pluginTag->mFullPath)
|
||||
return NS_ERROR_FAILURE;
|
||||
nsFileSpec file(pluginTag->mFullPath);
|
||||
#endif
|
||||
nsPluginFile pluginFile(file);
|
||||
PRLibrary* pluginLibrary = NULL;
|
||||
|
||||
|
@ -84,6 +84,7 @@ public:
|
||||
PRUint32 mFlags;
|
||||
PRBool mXPConnected;
|
||||
char *mFileName;
|
||||
char *mFullPath;
|
||||
};
|
||||
|
||||
struct nsActivePlugin
|
||||
|
@ -67,6 +67,7 @@ struct nsPluginInfo {
|
||||
char** fMimeDescriptionArray;
|
||||
char** fExtensionArray;
|
||||
char* fFileName;
|
||||
char* fFullPath;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@ -243,6 +243,7 @@ nsresult nsPluginFile::GetPluginInfo(nsPluginInfo& info)
|
||||
info.fMimeDescriptionArray = new char*[variantCount];
|
||||
info.fExtensionArray = new char*[variantCount];
|
||||
info.fFileName = p2cstrdup(spec.name);
|
||||
info.fFullPath = PL_strdup(this->GetCString());
|
||||
|
||||
short mimeIndex = 1, descriptionIndex = 1;
|
||||
for (int i = 0; i < variantCount; i++) {
|
||||
@ -274,6 +275,7 @@ nsresult nsPluginFile::FreePluginInfo(nsPluginInfo& info)
|
||||
delete[] info.fMimeDescriptionArray;
|
||||
delete[] info.fExtensionArray;
|
||||
delete[] info.fFileName;
|
||||
delete[] info.fFullPath;
|
||||
}
|
||||
return NS_OK;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user