diff -r 000000000000 -r 6474c204b198 security/nss/lib/jar/jarnav.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/security/nss/lib/jar/jarnav.c Wed Dec 31 06:09:35 2014 +0100 @@ -0,0 +1,62 @@ +/* This Source Code Form is subject to the terms of the Mozilla Public + * License, v. 2.0. If a copy of the MPL was not distributed with this + * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ + +/* + * JARNAV.C + * + * JAR stuff needed for client only. + * + */ + +#include "jar.h" +#include "jarint.h" + +/* from proto.h */ +extern MWContext *FE_GetInitContext(void); + +/* To return an MWContext for Java */ +static MWContext *(*jar_fn_FindSomeContext) (void) = NULL; + +/* To fabricate an MWContext for FE_GetPassword */ +static MWContext *(*jar_fn_GetInitContext) (void) = NULL; + +/* + * J A R _ i n i t + * + * Initialize the JAR functions. + * + */ + +void JAR_init (void) +{ + JAR_init_callbacks (XP_GetString, NULL, NULL); +} + +/* + * J A R _ s e t _ c o n t e x t + * + * Set the jar window context for use by PKCS11, since + * it may be needed to prompt the user for a password. + * + */ +int +JAR_set_context(JAR *jar, MWContext *mw) +{ + if (mw) { + jar->mw = mw; + } else { + /* jar->mw = XP_FindSomeContext(); */ + jar->mw = NULL; + /* + * We can't find a context because we're in startup state and none + * exist yet. go get an FE_InitContext that only works at + * initialization time. + */ + /* Turn on the mac when we get the FE_ function */ + if (jar->mw == NULL) { + jar->mw = jar_fn_GetInitContext(); + } + } + return 0; +}