66 lines
3.5 KiB
HTML
66 lines
3.5 KiB
HTML
|
<HTML><HEAD><TITLE>Tk Tk Built-In Commands - Safe manual page</TITLE></HEAD><BODY>
|
||
|
<H3><A NAME="M2">NAME</A></H3>
|
||
|
loadTk - Load Tk into a safe interpreter.
|
||
|
<H3><A NAME="M3">SYNOPSIS</A></H3>
|
||
|
<B>::safe::loadTk </B><I>slave</I> ?<B>-use</B> <I>windowId</I>? ?<B>-display</B> <I>displayName</I>? <BR>
|
||
|
Safe Tk is based on Safe Tcl, which provides a mechanism
|
||
|
that allows restricted and mediated
|
||
|
access to auto-loading and packages for safe interpreters.
|
||
|
Safe Tk adds the ability to configure the interpreter
|
||
|
for safe Tk operations and load Tk into safe
|
||
|
interpreters.
|
||
|
|
||
|
<H3><A NAME="M4">DESCRIPTION</A></H3>
|
||
|
The <B>::safe::loadTk</B> command initializes the required data structures
|
||
|
in the named safe interpreter and then loads Tk into it.
|
||
|
The command returns the name of the safe interpreter.
|
||
|
If <B>-use</B> is specified, the window identified by the specified system
|
||
|
dependent identifier <I>windowId</I> is used to contain the ``.''
|
||
|
window of the safe interpreter; it can be any valid id, eventually
|
||
|
referencing a window belonging to another application. As a convenience,
|
||
|
if the window you plan to use is a Tk Window of the application you
|
||
|
can use the window name (eg: <B>.x.y</B>) instead of its window Id
|
||
|
(<B>[winfo id .x.y]</B>).
|
||
|
When <B>-use</B> is not specified,
|
||
|
a new toplevel window is created for the ``.'' window of
|
||
|
the safe interpreter. On X11 if you want the embedded window
|
||
|
to use another display than the default one, specify it with
|
||
|
<B>-display</B>.
|
||
|
See the <B>SECURITY ISSUES</B> section below for implementation details.
|
||
|
|
||
|
<H3><A NAME="M5">SECURITY ISSUES</A></H3>
|
||
|
Please read the <B>safe</B> manual page for Tcl to learn about the basic
|
||
|
security considerations for Safe Tcl.
|
||
|
<P>
|
||
|
<B>::safe::loadTk</B> adds the value of <B>tk_library</B> taken from the master
|
||
|
interpreter to the virtual access path of the safe interpreter so that
|
||
|
auto-loading will work in the safe interpreter.
|
||
|
<P>
|
||
|
<P>
|
||
|
Tk initialization is now safe with respect to not trusting
|
||
|
the slave's state for startup. <B>::safe::loadTk</B>
|
||
|
registers the slave's name so
|
||
|
when the Tk initialization (<B><A HREF="../TclLib/Tk_Init.htm">Tk_SafeInit</A></B>) is called
|
||
|
and in turn calls the master's <B>::safe::InitTk</B> it will
|
||
|
return the desired <B>argv</B> equivalent (<B>-use</B>
|
||
|
<I>windowId</I>, correct <B>-display</B>, etc...).
|
||
|
<P>
|
||
|
When <B>-use</B> is not used, the new toplevel created is specially
|
||
|
decorated so the user is always aware that the user interface presented comes
|
||
|
from a potentially unsafe code and can easily delete the corresponding
|
||
|
interpreter.
|
||
|
<P>
|
||
|
On X11, conflicting <B>-use</B> and <B>-display</B> are likely
|
||
|
to generate a fatal X error.
|
||
|
|
||
|
<H3><A NAME="M6">SEE ALSO</A></H3>
|
||
|
<B>safe</B>, <B><A HREF="../TkCmd/interp.htm">interp</A></B>, <B>library</B>, <B><A HREF="../TkCmd/load.htm">load</A></B>, <B><A HREF="../TkCmd/package.htm">package</A></B>, <B><A HREF="../TkCmd/source.htm">source</A></B>, <B><A HREF="../TkCmd/unknown.htm">unknown</A></B>
|
||
|
<H3><A NAME="M7">KEYWORDS</A></H3>
|
||
|
<A href="../Keywords/A.htm#alias">alias</A>, <A href="../Keywords/A.htm#auto-loading">auto-loading</A>, <A href="../Keywords/A.htm#auto_mkindex">auto_mkindex</A>, <A href="../Keywords/L.htm#load">load</A>, <A href="../Keywords/M.htm#master interpreter">master interpreter</A>, <A href="../Keywords/S.htm#safe
|
||
|
interpreter">safe
|
||
|
interpreter</A>, <A href="../Keywords/S.htm#slave interpreter">slave interpreter</A>, <A href="../Keywords/S.htm#source">source</A>
|
||
|
<HR><PRE>
|
||
|
<A HREF="../copyright.htm">Copyright</A> © 1995-1996 Sun Microsystems, Inc.
|
||
|
<A HREF="../copyright.htm">Copyright</A> © 1995-1997 Roger E. Critchlow Jr.</PRE>
|
||
|
</BODY></HTML>
|