Bug 581341 - Part 1: Make crash report annotation work OOP and subsume existing workarounds. r=cjones

This commit is contained in:
Josh Matthews
2011-06-08 15:56:31 -04:00
parent bb3eccd72e
commit 4515c86908
21 changed files with 451 additions and 168 deletions

View File

@@ -65,6 +65,7 @@
#include "mozilla/plugins/BrowserStreamChild.h"
#include "mozilla/plugins/PluginStreamChild.h"
#include "PluginIdentifierChild.h"
#include "mozilla/dom/CrashReporterChild.h"
#include "nsNPAPIPlugin.h"
@@ -80,6 +81,8 @@
#endif
using namespace mozilla::plugins;
using mozilla::dom::CrashReporterChild;
using mozilla::dom::PCrashReporterChild;
#if defined(XP_WIN)
const PRUnichar * kFlashFullscreenClass = L"ShockwaveFlashFullScreen";
@@ -263,6 +266,7 @@ PluginModuleChild::Init(const std::string& aPluginFilename,
}
#endif
CrashReporterChild::CreateCrashReporter(this);
return true;
}
@@ -575,7 +579,6 @@ PluginModuleChild::InitGraphics()
// Do this after initializing GDK, or GDK will install its own handler.
XRE_InstallX11ErrorHandler();
#endif
return true;
}
@@ -689,6 +692,20 @@ PluginModuleChild::QuickExit()
_exit(0);
}
PCrashReporterChild*
PluginModuleChild::AllocPCrashReporter(const mozilla::dom::NativeThreadId& id,
const PRUint32& processType)
{
return new CrashReporterChild;
}
bool
PluginModuleChild::DeallocPCrashReporter(PCrashReporterChild* actor)
{
delete actor;
return true;
}
void
PluginModuleChild::ActorDestroy(ActorDestroyReason why)
{
@@ -1773,17 +1790,11 @@ PluginModuleChild::AnswerNP_GetEntryPoints(NPError* _retval)
}
bool
PluginModuleChild::AnswerNP_Initialize(NativeThreadId* tid, NPError* _retval)
PluginModuleChild::AnswerNP_Initialize(NPError* _retval)
{
PLUGIN_LOG_DEBUG_METHOD;
AssertPluginThread();
#ifdef MOZ_CRASHREPORTER
*tid = CrashReporter::CurrentThreadId();
#else
*tid = 0;
#endif
#ifdef OS_WIN
SetEventHooks();
#endif