mirror of
https://github.com/servo/servo.git
synced 2025-08-08 06:55:31 +01:00
The Servo Browser Engine
This does not port the existing src/test/html/ref tests to the new framework, as it appears to me that they aren't really reftests in the sense of Gecko's reftest. This new driver uses the Gecko methodology. Currently this will pop a window for each test due to not having a headless driver yet, and #570 means that servo segfaults when it shuts down so we can't check the exit status. There's plenty to improve in the future, but this should get us started. |
||
---|---|---|
bld | ||
mk | ||
src | ||
.gitignore | ||
.gitmodules | ||
configure | ||
Info.plist | ||
LICENSE | ||
Makefile.in | ||
README.md |
The 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 pkg-config libpng
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 \
xorg-dev libpng-dev
Servo builds its own copy of Rust, so there is no need to provide a Rust compiler.
Building
Servo cannot be built in-tree; you must create a directory in which to run configure and make and place the build artifacts.
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
Running
Commandline Arguments
-p INTERVAL
turns on the profiler and dumps info to the console everyINTERVAL
seconds-s SIZE
sets the tile size for rendering; defaults to 512
Keyboard Shortcuts
Ctrl-L
opens a dialog to browse to a new URL (Mac only currently)Ctrl--
zooms outCtrl-=
zooms inBackspace
goes backwards in the historyShift-Backspace
goes forwards in the historyEsc
exits servo
Developing
There are lots of make targets you can use:
make clean
- cleans Servo and its dependencies, but not Rustmake clean-rust
- cleans Rustmake clean-servo
- only cleans Servo itself (code insrc/components
make clean-DEP
- cleans the dependencyDEP
. e.g.make clean-rust-opengles
make bindings
- generate the Rust WebIDL bindingsmake DEP
- builds only the specified dependency. e.g.make rust-opengles
make check-DEP
- build and run tests for specified dependency