The rendering is incorrect and the test is marked as flaky on Linux or on GPU rendering, but this should help catch further regressions. The test is modified to add the following CSS: .intro { display: none } html #top { margin-top: 0 } To disable the "scrolling" part of the test. The reference is modified to match the current rendering of the test: * Rows 4 and 5 (eyes) have a red background. * The nose is not quite where it should be. * Row 12’s height is 3px more than it should be. (See http://www.webstandards.org/action/acid2/guide/ for row numbers.) The nose issue seems be related to rounding vs truncating when pixel-snapping borders, but this is only a guess. |
||
---|---|---|
bld | ||
mk | ||
src | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
configure | ||
CONTRIBUTING.md | ||
Info.plist | ||
LICENSE | ||
Makefile.backup | ||
Makefile.in | ||
README.md | ||
travis.linux.before_script.sh | ||
travis.linux.install.deps.sh | ||
travis.linux.script.sh | ||
travis.osx.before_script.sh | ||
travis.osx.install.deps.sh | ||
travis.osx.script.sh |
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.
Servo welcomes contribution from everyone. See
CONTRIBUTING.md
for help getting started.
Prerequisites
On OS X (homebrew):
brew install https://raw.github.com/Homebrew/homebrew-versions/master/autoconf213.rb
brew install automake libtool pkg-config python
pip install virtualenv
On OS X (MacPorts):
sudo port install autoconf213 python27 py27-virtualenv
On Debian-based Linuxes:
sudo apt-get install autoconf2.13 curl freeglut3-dev libtool \
libfreetype6-dev libgl1-mesa-dri libglib2.0-dev xorg-dev \
msttcorefonts gperf g++ automake cmake python-virtualenv
On Fedora:
sudo yum install autoconf213 curl freeglut-devel libtool gcc-c++ libXi-devel \
freetype-devel mesa-libGL-devel glib2-devel libX11-devel libXRandr-devel gperf \
fontconfig-devel cabextract ttmkfdir python python-virtualenv expat-devel rpm-build
pushd .
cd /tmp
wget http://corefonts.sourceforge.net/msttcorefonts-2.5-1.spec
rpmbuild -bb msttcorefonts-2.5-1.spec
sudo yum install $HOME/rpmbuild/RPMS/noarch/msttcorefonts-2.5-1.noarch.rpm
popd
Cross-compilation for Android:
Basically, pre-installed Android tools are needed. See wiki for details
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 https://github.com/mozilla/servo.git
cd servo
mkdir -p build && cd build
../configure
make && make check
./servo ../src/test/html/about-mozilla.html
###Building for Android target
git clone https://github.com/mozilla/servo.git
cd servo
mkdir -p build && cd build
../configure --target=arm-linux-androideabi --android-cross-path=<Android toolchain path> --android-ndk-path=<Android NDK path> --android-sdk-path=<Android SDK path>
make
(or make package)
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-z
disables all graphical output; useful for running JS / layout tests
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 dependencymake package
- build and make app package for specific OS. e.g. apk file of Android
The make check-*
targets for running tests are listed here