annotate README @ 77:8cf72992387d default tip

add JSONP
author Dion Almaer <dion@mozilla.com>
date Fri, 26 Jun 2009 10:13:32 -0700
parents 293eaba319ac
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
68
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
1 =============================
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
2 About SpiderMonkey Playground
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
3 =============================
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
4
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
5 This is a simple C/C++ command-line program that experiments with the
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
6 SpiderMonkey JavaScript engine.
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
7
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
8 File Layout
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
9 -----------
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
10
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
11 pavement.py Paver [1] script to build binaries.
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
12
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
13 sample-module.js Sample SecurableModule.
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
14
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
15 tcb.js Trusted Code Base script.
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
16
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
17 server-socket.cpp/h Simple native implementation of a JS socket
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
18 object.
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
19
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
20 memory_profiler.cpp/h Native memory profiling functionality.
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
21
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
22 memory_profiler_server.js Script to provide a RESTful web service
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
23 exposing memory profiling data about another
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
24 JS runtime.
17
83b891ccc471 Added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
25
68
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
26 wrapper.cpp/h Native implementation of JS wrapper/membrane.
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
27
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
28 spidermonkey-playground.cpp/h Main executable embedding SpiderMonkey and
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
29 implementing many global JS functions.
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
30
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
31 [1] http://www.blueskyonmars.com/projects/paver/
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
32
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
33 Usage
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
34 -----
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
35
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
36 (1) Modify pavement.py to your needs--it currently requires a full
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
37 build of Mozilla somewhere on your system, which is unfortunate,
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
38 but SpiderMonkey 1.8/1.8.1 hasn't yet been released as standalone.
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
39
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
40 (2) Build the binaries by running 'paver'.
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
41
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
42 (3) Run 'spidermonkey-playground'. Right now the executable just runs
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
43 some tests and starts the memory profiling server at the very end.
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
44
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
45 Security Experimentation
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
46 ------------------------
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
47
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
48 To experiment with security, we expose a number of the JSAPI's
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
49 functions [1] to a Trusted Code Base written in JS. The goal here is
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
50 to provide developers with an easy way to explore and experiment with
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
51 JavaScript security models in a high-level language before actually
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
52 implementing one in C/C++.
17
83b891ccc471 Added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
53
83b891ccc471 Added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
54 The playground currently includes a highly experimental implementation
83b891ccc471 Added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
55 of SecurableModules [2] that allows for the exportation of
83b891ccc471 Added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
56 functionality to a module via require(). It also includes a "membrane"
83b891ccc471 Added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
57 or "wrapper" [3] implementation that allows secure membranes to be
83b891ccc471 Added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
58 implemented entirely in JavaScript. It's really just an exposing of
83b891ccc471 Added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
59 SpiderMonkey's JSClass/JSExtendedClass [4] to JavaScript, but it
83b891ccc471 Added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
60 should allow for pretty flexible enforcement of any kind of desired
83b891ccc471 Added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
61 security characteristic, from an Object-Capability Model like that of
83b891ccc471 Added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
62 Google Caja [5] to a read-only representation of a DOM structure.
83b891ccc471 Added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
63
83b891ccc471 Added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
64 [1] https://developer.mozilla.org/en/SpiderMonkey
83b891ccc471 Added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
65 [2] https://wiki.mozilla.org/ServerJS/Modules/SecurableModules
83b891ccc471 Added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
66 [3] https://developer.mozilla.org/en/XPConnect_wrappers
83b891ccc471 Added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
67 [4] https://developer.mozilla.org/en/SpiderMonkey/JSAPI_Reference/JSClass
83b891ccc471 Added a README.
Atul Varma <varmaa@toolness.com>
parents:
diff changeset
68 [5] http://code.google.com/p/google-caja/
68
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
69
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
70 Memory Profiling Experimentation
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
71 --------------------------------
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
72
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
73 A prototype implementation of a memory profiling web server providing
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
74 a REST API to the state of a frozen JS runtime is also provided. The
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
75 actual server is written using JavaScript, and runs in a separate
293eaba319ac Added more docs to README.
Atul Varma <varmaa@toolness.com>
parents: 17
diff changeset
76 JS runtime from the frozen one that it exposes.