| /* 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; |
| } |