The Servo Browser Engine
Find a file
bors-servo 30bfd3fb32 auto merge of #739 : ILyoan/servo/acid1_margin, r=metajack
In `assign_height_inorder_float()`, `base.position.size.height` already counted padding and border, so adding `noncontent_height` to `height` would result in doubling counted padding and border.

By this patch acid1 would be displayed more accurately.

Not sure but maybe width has the same problem, I'll investigate it.
2013-08-19 08:58:15 -07:00
bld Added mozharness config files 2013-07-17 17:36:34 -04:00
mk Remove rust-glut 2013-08-15 13:55:40 -07:00
src Fix doubling noncontent_height in float flow 2013-08-19 14:50:48 +09:00
.gitignore DOM bindings: Autogenerate list of prototypes and binding registration goop. 2013-07-12 14:06:23 -04:00
.gitmodules Remove rust-glut 2013-08-15 13:55:40 -07:00
configure Remove HTTP support (!) 2013-08-15 13:56:29 -07:00
Info.plist Build an app bundle on OS X 2012-04-23 17:43:45 -07:00
LICENSE Add license 2013-04-03 18:37:29 -07:00
Makefile.in Fix macos interators, warnings, and updating submodules. 2013-08-16 14:30:34 -06:00
README.md msttcorefonts is a requirement 2013-07-19 17:06:41 -04:00

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 msttcorefonts

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

Running

Commandline Arguments

  • -p INTERVAL turns on the profiler and dumps info to the console every INTERVAL 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 out
  • Ctrl-= zooms in
  • Backspace goes backwards in the history
  • Shift-Backspace goes forwards in the history
  • Esc exits servo

Developing

There are lots of make targets you can use:

  • make clean - cleans Servo and its dependencies, but not Rust
  • make clean-rust - cleans Rust
  • make clean-servo - only cleans Servo itself (code in src/components
  • make clean-DEP - cleans the dependency DEP. e.g. make clean-rust-opengles
  • make bindings - generate the Rust WebIDL bindings
  • make DEP - builds only the specified dependency. e.g. make rust-opengles
  • make check-DEP - build and run tests for specified dependency