mirror of
https://github.com/servo/servo.git
synced 2025-08-06 22:15:33 +01:00
The Servo Browser Engine
Nodes are now parameterized over a "View" type. The particular View type determines which methods can be called. Layout data accessors and mutators are only accessible to nodes with a LayoutView. The only way to convert a `Node<ScriptView>` to a `Node<LayoutView>` is through a transmutation, which is done at the moment the layout task receives nodes. (This should be factored better to contain the unsafety.) We should also lock down DOM node mutation to the ScriptView to forbid data races, but this patch doesn't do that. This also reduces coupling between DOM and layout. Soon I would like to move the DOM into its own crate, and this is a step on the way of doing that. |
||
---|---|---|
mk | ||
src | ||
.gitignore | ||
.gitmodules | ||
configure | ||
Info.plist | ||
LICENSE | ||
Makefile.in | ||
README.md |
zRThe Servo Parallel Browser Project
Servo is a prototype web browser engine written in the Rust language. It is currently developed on 64bit OS X and 64bit Linux.
Prerequisites
On OS X (homebrew):
brew install https://raw.github.com/Homebrew/homebrew-versions/master/autoconf213.rb
brew install automake libtool
brew install pkg-config
On OS X (MacPorts):
sudo port install autoconf213
On Debian-based Linuxes:
sudo apt-get install autoconf2.13 curl freeglut3-dev libtool libfreetype6-dev libfontconfig1-dev libgl1-mesa-dri libglib2.0-dev
Servo builds its own copy of Rust, so there is no need to provide a Rust compiler.
Building
git clone git://github.com/mozilla/servo.git
cd servo
mkdir -p build && cd build
../configure
make && make check
./servo ../src/test/html/about-mozilla.html