nsresult rv; NS_WITH_SERVICE(nsIJSContextStack, stack, "@mozilla.org/js/xpc/ContextStack;1", &rv); if (NS_FAILED(rv)) return nsnull;
nsCOMPtr<nsIJSContextStack> stack = do_GetService("@mozilla.org/js/xpc/ContextStack;1");  if (!stack) { return; }
GetCurrentContext(){  // Get JSContext from stack.  nsresult rv;  NS_WITH_SERVICE(nsIJSContextStack, stack, "@mozilla.org/js/xpc/ContextStack;1",                   &rv);  if (NS_FAILED(rv))    return nsnull;  JSContext *cx;  if (NS_FAILED(stack->Peek(&cx)))    return nsnull;  return cx;}