~drgeo-developers/drgeo/trunk

« back to all changes in this revision

Viewing changes to VMs/iPad/source/unix/npsqueak/README.npsqueak

  • Committer: Hilaire Fernandes
  • Date: 2012-01-27 21:15:40 UTC
  • Revision ID: hilaire.fernandes@gmail.com-20120127211540-912spf97bhpx6mve
Initial additions

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
=================================================================
 
2
 
 
3
Netscape Plugin for Squeak on Unix platforms
 
4
 
 
5
 
 
6
Author:      Bert Freudenberg 
 
7
Last edited: 2010-05-11 17:30:59 by bert
 
8
 
 
9
================================================================
 
10
 
 
11
Files:
 
12
        CMakeLists.txt
 
13
        README.npsqueak
 
14
        npsqueak.c
 
15
        npunix.c        (modified copy from Netscape Plugin SDK)
 
16
        include/*       (unmodified headers from Netscape Plugin SDK)
 
17
        test/*
 
18
 
 
19
=================================================================
 
20
 
 
21
 
 
22
        The Squeak plugin should be automatically compiled and installed with 
 
23
        the normal squeak build process. This installs squeak into (probably) 
 
24
        
 
25
                squeakdir=/usr/local/lib/squeak
 
26
 
 
27
        You will need an image. Copy it (or symlink) to
 
28
 
 
29
                ${squeakdir}/SqueakPlugin.image
 
30
 
 
31
        A good place to look for an image suited as plugin is
 
32
 
 
33
        http://squeakland.org/download          
 
34
 
 
35
        To register the plugin run ${imgdir}/npsqueakregister. 
 
36
        It looks for various browsers
 
37
        in various directories and creates links to the plugin. If
 
38
        your browser is not found, hack the npsqueakregister script or
 
39
        symlink the plugin manually:
 
40
 
 
41
                ln -s ${squeakdir}/@VM_VERSION@/npsqueak.so \
 
42
                        /usr/lib/mybrowser/plugins/
 
43
 
 
44
        Exit and restart the browser. Check if the Squeak plugin 
 
45
        was recognized by selecting the Help>>About Plugins menu item.
 
46
 
 
47
        Open the html file in the test/ directory. This should
 
48
        activate the Squeak plugin. Since this is the first time the
 
49
        plugin is executed, a .npsqueak folder will be created in your 
 
50
        home directory.
 
51
 
 
52
=================================================================
 
53
 
 
54
NOTE: If you are not the super user of your machine you can install
 
55
everything into your home directory. Put npsqueak.so somewhere your
 
56
browser will find it.  Make a .npsqueak dir in your home directory
 
57
with subdirectories and files like shown below. Also create a
 
58
.npsqueak/npsqueakrun file which points to a Squeak VM.
 
59
 
 
60
=================================================================
 
61
 
 
62
DOCUMENTATION
 
63
 
 
64
* How the plugin works:
 
65
 
 
66
    - npsqueak.so needs to be symlinked where the browser expects plugins
 
67
    - when the browser wants to display a page with an embedded Etoys
 
68
      project, it launches the plugin
 
69
    - the plugin executes the "npsqueakrun" script, passing some parameters
 
70
      to establish a communication channel between the plugin and squeak
 
71
    - that script runs the Squeak VM with an image, instructing the VM to
 
72
      redirect the output into the plugin's window
 
73
    - the image then loads the project
 
74
 
 
75
* On the first run for each user, npsqueakrun will create a directory
 
76
  structure like this (unless overridden by variables, see below):
 
77
 
 
78
    $(HOME)/
 
79
    |
 
80
    +--- .npsqueak/
 
81
    |    |
 
82
    |    +--- secure/
 
83
    |
 
84
    +--- Squeak/
 
85
 
 
86
 
 
87
* Environment Variables:
 
88
 
 
89
    SQUEAK_USERDIR
 
90
        Identifies the sandbox directory, e.g., a place which can be
 
91
        accessed from any (potentially unsafe) Squeaklet.  
 
92
 
 
93
        * Default: "$(HOME)/Squeak"
 
94
 
 
95
    SQUEAK_SECUREDIR
 
96
        Identifies the directory to store private information
 
97
        like signing keys.
 
98
 
 
99
        * should not be accessible by other users
 
100
 
 
101
        * Default: "$(HOME)/.npsqueak/secure"
 
102
 
 
103
    NPSQUEAK_DEBUG
 
104
        If set, logs debug info to /tmp/npsqueak.log
 
105
 
 
106
        * Default: unset
 
107
 
 
108
* Mimetypes:
 
109
 
 
110
    application/x-squeak-source:sts:Squeak source
 
111
    application/x-squeak-object:sqo:Squeak object
 
112
    application/x-squeak-project:pr:Squeak project
 
113
 
 
114
* Parameters:
 
115
 
 
116
  parameters in EMBED tag used by Squeak:
 
117
 
 
118
    SRC=...
 
119
    MEMORY=... (not by unix npsqueak)
 
120
    FAILUREURL=...
 
121
    IMAGENAME=... 
 
122
 
 
123
* Communication with VM is via Pipes
 
124
 
 
125
=================================================================
 
126
 
 
127
TODO
 
128
 
 
129
* loop on read() and write() until all data is sent and received.
 
130
* make plugin not wait for browser when the url is loaded into a target.
 
131
 
 
132
=================================================================
 
133
 
 
134
Change log
 
135
 
 
136
May 2010:
 
137
        * use CMake
 
138
        * default to ~/Squeak
 
139
        * do not copy image to ~/.npsqueak anymore
 
140
 
 
141
Aug 2009:
 
142
        * (ikp) BSD-friendly Makefile
 
143
 
 
144
Sep 2007:
 
145
        * (bf) use "find -H" in npsqueakregister
 
146
 
 
147
Sep 2006:
 
148
        * (ikp) use libtool to build
 
149
 
 
150
Jan 2005:
 
151
        * npsqueak checks for image file in system and home dir
 
152
        * modified npsqueakrun, runs with bash, other shells untested
 
153
        * renamed untrusted -> My Squeak
 
154
        * fixed make sure Squeak really gets killed
 
155
        * fixed crashing the browser when closing plugin page
 
156
 
 
157
Apr 2004: 
 
158
        * (ikp) handle imageName and failureUrl tags
 
159
 
 
160
Oct 2002:
 
161
        * modified install from home directory to system-wide
 
162
 
 
163
Sep 2002:
 
164
        * hack to work with Mozilla >= 1.0 which deletes the delivered
 
165
          file immediately. We just create a hard link before and
 
166
          delete that after opening the file.
 
167
 
 
168
Mar 2002:
 
169
        * uses aio now for command pipe 
 
170
        * moved stuff from ~/.netscape/squeak to ~/.npsqueak directory
 
171
        * implemented SecurityPlugin
 
172
 
 
173
May 2001:
 
174
        * updated for squeakland.org image.
 
175
        * TODO: SecurityManager
 
176
 
 
177
Feb 2001:
 
178
        * updated for Squeak 3.0
 
179
 
 
180
Nov 2000:
 
181
        * introduced -browserPipes command line
 
182
        * this fixed the bug of plugins in tables
 
183
        * cleaned up a lot of hacks
 
184
        * this fixed crashing Mozilla 0.6
 
185
        * made widget destroy work more often than not
 
186
        * Problems: crashes when closing Netscape window
 
187
        *           pipe is polled for now - should use select in sqXWindow
 
188
 
 
189
 
 
190
Apr 2000:
 
191
        * url requests through browser
 
192
 
 
193
Nov 1999
 
194
        * report attributes to vm
 
195
 
 
196
Aug 1999
 
197
        * initial version
 
198
 
 
199