Changes

Jump to: navigation, search

IPDL/Five minute example

30 bytes added, 00:23, 14 July 2009
m
Get the subprocess to launch
Now re-open <code>xpcom/build/nsXULAppAPI.h</code> and add the declaration
XRE_API(int,
XRE_RunTestHarnessXRE_RunIPCTestHarness, (int aArgc, char* aArgv[]))
Re-open <code>toolkit/xre/nsEmbedFunctions.cpp</code>. See that
static void
TestHarnessMainIPCTestHarnessMain(TestProcessParent* subprocess)
{
TestParent parent;
static void
TestHarnessLaunchSubprocessIPCTestHarnessLaunchSubprocess(TestProcessParent* subprocess, MessageLoop* mainLoop)
{
NS_ASSERTION(subprocess->Launch(), "can't launch subprocess");
mainLoop->PostTask(FROM_HERE,
NewRunnableFunction(TestHarnessMainIPCTestHarnessMain, subprocess));
}
static void
TestHarnessPostLaunchSubprocessTaskIPCTestHarnessPostLaunchSubprocessTask(void* data)
{
TestProcessParent* subprocess = new TestProcessParent();
BrowserProcessSubThread::GetMessageLoop(BrowserProcessSubThread::IO);
ioLoop->PostTask(FROM_HERE,
NewRunnableFunction(TestHarnessLaunchSubprocessIPCTestHarnessLaunchSubprocess,
subprocess,
MessageLoop::current()));
int
XRE_RunTestHarnessXRE_RunIPCTestHarness(int aArgc, char* aArgv[])
{
nsresult rv =
XRE_InitParentProcess(
aArgc, aArgv, TestHarnessPostLaunchSubprocessTaskIPCTestHarnessPostLaunchSubprocessTask, NULL);
NS_ENSURE_SUCCESS(rv, 1);
return 0;
Confirm
699
edits

Navigation menu