зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1140683: Fix async plugin init using null plugin funcs on MacOSX; r=jimm
--HG-- extra : rebase_source : a354d758270b033f50c01ea93501c76d7e34a852
This commit is contained in:
Родитель
04c858cf58
Коммит
1c5fc3bb80
|
@ -1544,6 +1544,8 @@ PluginModuleParent::DeallocPPluginInstanceParent(PPluginInstanceParent* aActor)
|
|||
void
|
||||
PluginModuleParent::SetPluginFuncs(NPPluginFuncs* aFuncs)
|
||||
{
|
||||
MOZ_ASSERT(aFuncs);
|
||||
|
||||
aFuncs->version = (NP_VERSION_MAJOR << 8) | NP_VERSION_MINOR;
|
||||
aFuncs->javaClass = nullptr;
|
||||
|
||||
|
@ -2179,7 +2181,7 @@ PluginModuleParent::RecvNP_InitializeResult(const NPError& aError)
|
|||
return true;
|
||||
}
|
||||
|
||||
if (mIsStartingAsync) {
|
||||
if (mIsStartingAsync && mNPPIface) {
|
||||
SetPluginFuncs(mNPPIface);
|
||||
InitAsyncSurrogates();
|
||||
}
|
||||
|
@ -2301,8 +2303,17 @@ PluginModuleParent::NP_GetEntryPoints(NPPluginFuncs* pFuncs, NPError* error)
|
|||
|
||||
*error = NPERR_NO_ERROR;
|
||||
if (mIsStartingAsync && !IsChrome()) {
|
||||
PluginAsyncSurrogate::NP_GetEntryPoints(pFuncs);
|
||||
mNPPIface = pFuncs;
|
||||
#if defined(XP_MACOSX)
|
||||
if (mNPInitialized) {
|
||||
SetPluginFuncs(pFuncs);
|
||||
InitAsyncSurrogates();
|
||||
} else {
|
||||
PluginAsyncSurrogate::NP_GetEntryPoints(pFuncs);
|
||||
}
|
||||
#else
|
||||
PluginAsyncSurrogate::NP_GetEntryPoints(pFuncs);
|
||||
#endif
|
||||
} else {
|
||||
SetPluginFuncs(pFuncs);
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче