Add ncval-stubout tool
[nativeclient.git] / RELEASE_NOTES
blob5b4e4d4886a94171abd6e5ca9074be487138c278
1 RELEASE NOTES
2 Native Client Release 0.1
3 18 December 2008
5 This file documents issues known at the time of the release, with an
6 emphasis on security-related issues (and possibly some neglected
7 robustness or functionality issues). Please
8 see http://code.google.com/p/nativeclient/wiki/ReleaseNotes for
9 the most recent information. See README.html in this directory
10 for an introduction to Native Client. Please refer to
11 nacl/googleclient/VERSION for the full version/release number of
12 this release.
14 CHANGES SINCE THE PREVIOUS RELEASE
16 See the CURRENT VERSION CHANGES section at the bottom of this file.
18 BROWSER SUPPORT LIMITATIONS
20 Native Client supports Firefox 3 on Linux, Windows and MacOS, and
21 Chrome, Safari and Opera on Windows.
23 Support for the following browsers is not available at this time:
24    * Safari on MacOS
25    * Internet Explorer
27 These browsers are partially supported:
28    * Camino on MacOS appears to work but has had minimal testing
29    * Firefox 2 on MacOS: We STRONGLY encourage Mac users to upgrade
30      their Firefox version to 3 for Native Client. On Firefox 2,
31      control, command and alt keys are not enabled due to
32      an eavesdropping vulnerability. Note the control key is used
33      for firing weapons in Quake.
35 OPERATING SYSTEM SUPPORT LIMITATIONS
37 Native Client does not work on 64-bit versions of Windows Vista.
38 Native Client will silently fail on these systems, without running
39 untrusted code. 64-bit Vista lacks the system call required to set
40 up protected memory segments. We believe it to work on 32-bit Vista
41 and all versions of Windows XP.
43 LIMITED VIRTUAL MACHINE SUPPORT
45 Some virtual machines do not implement the CPUID instruction
46 correctly.  As a result, the Native Client sandbox can be defeated via
47 an instruction decoder desynchronization attack on certain VMs. We
48 believe VMWare works properly. The following VMs are known to have
49 exploitable CPUID implementation defects:
50    * Parallels
51    * Qemu
52    * Xen
54 NPAPI SUPPORT IS PRELIMINARY
56 NPAPI was designed (and prior to Native Client *was*) only for trusted
57 code. As such, we think it is possible there are many exploitable
58 security problems with the NPAPI API itself and with its current
59 implementations.  Our focus to date for NPAPI has been on functionality
60 rather than security. We will probably be revising our NPAPI
61 implementation to make it much more restrictive, and considering
62 variation between various browser implementations of NPAPI.
64 OUTER SANDBOX NOT INCLUDED IN THIS RELEASE
66 Our outer sandbox implementations are not sufficiently stable yet to
67 be worthy of sharing at this time. Stay tuned!
69 NO "FRIENDLY" INSTALLERS
71 Our goal in releasing Native Client at this time is to get feedback
72 from the security and research community to help us make the system
73 better, and not to get a large number of users. As such, we don't
74 provide a consumer-oriented install. Our current installer is
75 implemented as a part of our build system.
77 VIDEO API ISSUES
79 The browser supports only NACL_VIDEO_FORMAT_BGRA. If you try to use
80 another format (RGB or RGBA), it'll work when the Native Client
81 module is run from the command line with sel_ldr, but not within
82 the browser.
84 Only one nacl_av video area is supported. Creating a page featuring
85 more than one video area, or having multiple pages open at a time, is
86 unsupported.
88 BUILDING GPL EXAMPLES
90 XaoS builds only on Linux at this time. Quake requires downloading
91 source from www.libsdl.org, but should build on all three platforms.
92 Neither is provided pre-built, due to GPL license considerations.
93 We hope to streamline these builds in a future release.
95 DOXYGEN REQUIRED TO BUILD DOCUMENTATION
97 If you discover the MODE=all option to our scons build, and you
98 don't have doxygen installed, you will not be able to build.
100 CURRENT VERSION CHANGES
102 The December 18 release contains the following changes:
104 - Addressed flicker on Windows that happened when the user resizes the browser.
105 - Changed the IMC library to close the connection channel immediately
106   once the remote peer has closed the connection.  Also changed to avoid
107   performing sendmsg on a closed socket.
108 - Improved canonical origin names, recognizing the equivalence of
109   file://localhost and file://, and forcing DNS names to lower case before
110   comparing.
111 - Added some stub library routines to make porting applications easier.
112 - Addressed external issue #23: disallow call/jump indirections as in:
113     ff 12      call (*edx)
114   Clarified the comment for cld/std in ncdecode_table.c
115 - Addressed the LDT synchronization issue that caused exceptions on thread
116   switch "pop gs" instructions, and fixed a MacOS/X LDT allocation problem.
117 - Made the thread API more POSIX-compatible. Addresses issue 24 on the external
118   site.
119 - Changed mmap to ignore the MAP_SHARED option.  Now the region is always mapped
120   MAP_PRIVATE.
121 - Added doxygen comments to pthread and NPAPI bridge libraries.
122 - Addressed a potential defect in video shared memory ring buffer.
123 - Addressed typo in error message; issue 13 on code.google.com/p/nativeclient.
124 - Changed the SRPC library to pass a channel descriptor to methods.  Also
125   improved name consistency in the SRPC APIs.