bool XRE_SendTestShellCommand(JSContext* aCx, JSString* aCommand, void* aCallback) { JS::RootedString cmd(aCx, aCommand); TestShellParent* tsp = GetOrCreateTestShellParent(); NS_ENSURE_TRUE(tsp, false); nsAutoJSString command; NS_ENSURE_TRUE(command.init(aCx, cmd), false); if (!aCallback) { return tsp->SendExecuteCommand(command); } TestShellCommandParent* callback = static_cast<TestShellCommandParent*>( tsp->SendPTestShellCommandConstructor(command)); NS_ENSURE_TRUE(callback, false); JS::Value callbackVal = *reinterpret_cast<JS::Value*>(aCallback); NS_ENSURE_TRUE(callback->SetCallback(aCx, callbackVal), false); return true; }
bool XRE_SendTestShellCommand(JSContext* aCx, JSString* aCommand, void* aCallback) { TestShellParent* tsp = GetOrCreateTestShellParent(); NS_ENSURE_TRUE(tsp, false); nsDependentJSString command; NS_ENSURE_TRUE(command.init(aCx, aCommand), NS_ERROR_FAILURE); if (!aCallback) { return tsp->SendExecuteCommand(command); } TestShellCommandParent* callback = static_cast<TestShellCommandParent*>( tsp->SendPTestShellCommandConstructor(command)); NS_ENSURE_TRUE(callback, false); jsval callbackVal = *reinterpret_cast<jsval*>(aCallback); NS_ENSURE_TRUE(callback->SetCallback(aCx, callbackVal), false); return true; }