зеркало из https://github.com/mozilla/gecko-dev.git
Bug 977955 - Cleanup PluginModule shutdown r=bsmedberg
This commit is contained in:
Родитель
548fe541ea
Коммит
bc1a522ee9
|
@ -96,7 +96,7 @@ PluginModuleParent::LoadModule(const char* aFilePath)
|
||||||
nsAutoPtr<PluginModuleParent> parent(new PluginModuleParent(aFilePath));
|
nsAutoPtr<PluginModuleParent> parent(new PluginModuleParent(aFilePath));
|
||||||
bool launched = parent->mSubprocess->Launch(prefSecs * 1000);
|
bool launched = parent->mSubprocess->Launch(prefSecs * 1000);
|
||||||
if (!launched) {
|
if (!launched) {
|
||||||
// Need to set this so the destructor doesn't complain.
|
// We never reached open
|
||||||
parent->mShutdown = true;
|
parent->mShutdown = true;
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
@ -108,7 +108,7 @@ PluginModuleParent::LoadModule(const char* aFilePath)
|
||||||
#ifdef MOZ_CRASHREPORTER
|
#ifdef MOZ_CRASHREPORTER
|
||||||
// If this fails, we're having IPC troubles, and we're doomed anyways.
|
// If this fails, we're having IPC troubles, and we're doomed anyways.
|
||||||
if (!CrashReporterParent::CreateCrashReporter(parent.get())) {
|
if (!CrashReporterParent::CreateCrashReporter(parent.get())) {
|
||||||
parent->mShutdown = true;
|
parent->Close();
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
#ifdef XP_WIN
|
#ifdef XP_WIN
|
||||||
|
@ -160,7 +160,9 @@ PluginModuleParent::PluginModuleParent(const char* aFilePath)
|
||||||
|
|
||||||
PluginModuleParent::~PluginModuleParent()
|
PluginModuleParent::~PluginModuleParent()
|
||||||
{
|
{
|
||||||
NS_ASSERTION(OkToCleanup(), "unsafe destruction");
|
if (!OkToCleanup()) {
|
||||||
|
NS_RUNTIMEABORT("unsafe destruction");
|
||||||
|
}
|
||||||
|
|
||||||
#ifdef MOZ_ENABLE_PROFILER_SPS
|
#ifdef MOZ_ENABLE_PROFILER_SPS
|
||||||
ShutdownPluginProfiling();
|
ShutdownPluginProfiling();
|
||||||
|
@ -171,6 +173,7 @@ PluginModuleParent::~PluginModuleParent()
|
||||||
NPError err;
|
NPError err;
|
||||||
NP_Shutdown(&err);
|
NP_Shutdown(&err);
|
||||||
}
|
}
|
||||||
|
|
||||||
NS_ASSERTION(mShutdown, "NP_Shutdown didn't");
|
NS_ASSERTION(mShutdown, "NP_Shutdown didn't");
|
||||||
|
|
||||||
if (mSubprocess) {
|
if (mSubprocess) {
|
||||||
|
@ -228,7 +231,7 @@ PluginModuleParent::WriteExtraDataForMinidump(AnnotationTable& notes)
|
||||||
pluginVersion = tag->mVersion;
|
pluginVersion = tag->mVersion;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
notes.Put(NS_LITERAL_CSTRING("PluginName"), pluginName);
|
notes.Put(NS_LITERAL_CSTRING("PluginName"), pluginName);
|
||||||
notes.Put(NS_LITERAL_CSTRING("PluginVersion"), pluginVersion);
|
notes.Put(NS_LITERAL_CSTRING("PluginVersion"), pluginVersion);
|
||||||
|
|
||||||
|
@ -751,7 +754,7 @@ PluginModuleParent::ActorDestroy(ActorDestroyReason why)
|
||||||
break;
|
break;
|
||||||
|
|
||||||
default:
|
default:
|
||||||
NS_ERROR("Unexpected shutdown reason for toplevel actor.");
|
NS_RUNTIMEABORT("Unexpected shutdown reason for toplevel actor.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1194,11 +1197,11 @@ PluginModuleParent::NP_Initialize(NPNetscapeFuncs* bFuncs, NPPluginFuncs* pFuncs
|
||||||
uint32_t flags = 0;
|
uint32_t flags = 0;
|
||||||
|
|
||||||
if (!CallNP_Initialize(flags, error)) {
|
if (!CallNP_Initialize(flags, error)) {
|
||||||
mShutdown = true;
|
Close();
|
||||||
return NS_ERROR_FAILURE;
|
return NS_ERROR_FAILURE;
|
||||||
}
|
}
|
||||||
else if (*error != NPERR_NO_ERROR) {
|
else if (*error != NPERR_NO_ERROR) {
|
||||||
mShutdown = true;
|
Close();
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1225,11 +1228,11 @@ PluginModuleParent::NP_Initialize(NPNetscapeFuncs* bFuncs, NPError* error)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!CallNP_Initialize(flags, error)) {
|
if (!CallNP_Initialize(flags, error)) {
|
||||||
mShutdown = true;
|
Close();
|
||||||
return NS_ERROR_FAILURE;
|
return NS_ERROR_FAILURE;
|
||||||
}
|
}
|
||||||
if (*error != NPERR_NO_ERROR) {
|
if (*error != NPERR_NO_ERROR) {
|
||||||
mShutdown = true;
|
Close();
|
||||||
return NS_OK;
|
return NS_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче