SRD boundary in Windows 2000 platform

Before Start

How to get the SRD boundary works in Windows 2000 platform

Technical details

Before Start

In order to implement SRD boundary in Windows 2000 platform, you need compile Mozilla source code, which takes 1.5 GB disk space. This is why we recommend you get our compiled code instead of compile the code yourself. You still need Egads v0.9 pseudo-random number generator. After install Egads, you need get the file reference.zip and unzip it into directory C:\temp, adding C:\temp into system path.

How to get the SRD boundary works in Windows 2000 platform

If you want to compile the code, there are three pieces of code you need download, but we only targeted Mozilla 1.0. New versions of Mozilla may also work, but we don’t guarantee.
Mozilla source code, Compiling the code according to the instructions in window32 page. You will need Cygwin, Perl, and other tools.
Egads v0.9 pseudo-random number generator. Egads is a random number generator. You need install Egads before you use its service.
Our Windows implementation, unzip it into mozilla source parent directory, then compile the source again. You need compile the source at least once BEFORE you unzip our code. Make sure that reference.exe program is in C:\temp directory, and C:\temp is in the system path.
After you have done all of these, enter mozilla\dist\WIN32_D.OBJ\bin\, start mozilla by double click mozilla.exe.

Technical details

The main differences between Linux implementation and Windows implementation are:
(1) the Linux system random number generator /dev/random has to be replaced by random number generator running on Windows platform;
(2) reference window process has to be rewritten, since it was written in GTK tooklit for Linux.

We use Egads which is an entropy collecting random number generator for Windows implementation.

You can find the reference window source code in xpcom\borderstyle\reference\WIN32_reference\ directory. We used named pipe for the communication between Mozilla and the reference window, because the anonymous pipe between a process running in Cgywin environment (Mozilla) and a pure windows process (reference window) seems not work. We limit the process number which can listen on the named pipe is one. As soon as the named pipe created, the reference window attaches to it. So no other process can steal the random bit in this process.

The reference window has two threads, sharing one integer. One is taking care of reading the pipe, updating the sharing integer and post a message; the other thread waiting for the message, then update the image according to the sharing integer.


Zishuang Ye

Last modified: Thu Dec 5 16:56:04 EST 2002