Experimental Servo browser built in HTML
JavaScript HTML Other
Failed to load latest commit information.
.bin Deploy on each revision (#1215) Aug 4, 2016
.profile Enable eval for live reloading purposes. Sep 9, 2015
css Combine Input, Assistant, Overlay & WebView into Navigator May 26, 2016
docs Change all github links from mozilla/browser.hml to browserhtml/brows… Apr 9, 2016
interface Save changes. Jan 6, 2016
src Merge branch 'StandardStyle_Reformat_Wallpapers.js' of https://github… Oct 19, 2016
test Fix test. Jun 27, 2015
.babelrc Add `transform-class-properties` babel plugin Jun 24, 2016
.flowconfig Remove redundant .js.flow files Jun 29, 2016
.gitignore Remove no longer necessary ignores for git. Mar 2, 2016
.travis.yml Reconfigure deploy script. Mar 3, 2016
CONTRIBUTING.md Change all github links from mozilla/browser.hml to browserhtml/brows… Apr 9, 2016
LICENSE simpler LICENSE file Jan 5, 2015
README.md Fix broken link to pre-requisites (#1268) Feb 2, 2017
browser.gif Fix border on gif Jan 7, 2016
browserhtml.json Make dev tools plugable via query args Apr 5, 2016
electron-preload.js Re-enable nodeIntegration; use electron preload (#1184) Jul 20, 2016
gulpfile.babel.js Renaming files to follow same naming convention (#1236) Aug 24, 2016
index.html Update path to a js bundle from an html file. (#1263) Jan 13, 2017
main.js Re-enable nodeIntegration; use electron preload (#1184) Jul 20, 2016
manifest.webapp Stash Jun 24, 2015
net_error.html use same filename as gaia for net error page May 12, 2015
package.json Merge branch 'StandardStyle_Reformat_Wallpapers.js' of https://github… Oct 19, 2016


build slack


Browser.html is a research project aimed at building an experimental Servo browser in HTML. This project has 2 major pieces:

  • Graphene: a runtime for building native apps in HTML. It's currently in development and part of Servo.
  • Browser.html: an experimental browser UI for desktop.

This repository is for Browser.html (the front-end). Active development of Graphene happens in the Servo repository. Questions? Check out the FAQ.



We welcome contributions from anyone. See CONTRIBUTING.md for help getting started.

Building and Running

The Browser.html UI is bundled with Servo. To run it, you'll need to build Servo.

First, install Servo's prerequisites. Then, clone and build Servo:

git clone https://github.com/servo/servo
cd servo
./mach build -r

Finally, run Servo with the --browserhtml flag.

./mach run -r --browserhtml

Developing the Front-end

If you're working on the Browser.html front-end, you'll want to run the web app locally.

Prerequisites: You'll need Node and NPM. Next, clone Browser.html and install its Node dependencies.

git clone https://github.com/browserhtml/browserhtml.git
cd browserhtml
npm install --no-optional

Then, start the front-end local server:

npm run build-server

Finally, in a new command line interface application (ex: Terminal), start Servo with the Browser.html flags turned on in either debug (-d) or release (-r) mode:

./mach run -r -- -b -w --pref dom.mozbrowser.enabled --pref dom.forcetouch.enabled --pref shell.builtin-key-shortcuts.enabled=false http://localhost:6060

Running in Gecko

Browser.html can also be run on top of a Gecko-based version of Graphene. We sometimes use this variant to test and debug features that haven't yet landed in Servo. Build instructions for Gecko-flavored Graphene can be found on the wiki.

Using WebIDE

The easiest way to use developer tools with Browser.html is to select the "Remote Runtime" option in WebIDE while using the Gecko Graphene runtime.

By default you should be able to connect to the running browser at: localhost:6000.

Integration Tests

Run integration tests with ./test/runall.sh. You need to have a Graphene Gecko binary symlinked in the root of the repository.

ln -s ../gecko/obj-graphene/dist/Graphene.app graphene