Experimental Servo browser built in HTML
JavaScript HTML Other
Latest commit 088096a Oct 26, 2017 @atouchet atouchet committed with paulrouget Update fontawesome woff for Windows (#1308)
Same change as #1272.
Permalink
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 Update fontawesome woff for Windows (#1308) Oct 26, 2017
images Electron runtime improvements (#1277) Apr 13, 2017
interface Fixes #1242: reformat files to follow standard (#1269) Apr 5, 2017
src Expand header button hitboxes - Fix Issue 1264 (#1306) Oct 5, 2017
test Fixes #1242: reformat files to follow standard (#1269) Apr 5, 2017
.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 links in README.md (#1300) Jun 12, 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 Electron runtime improvements (#1277) Apr 13, 2017
gulpfile.babel.js Fixes #1242: reformat files to follow standard (#1269) Apr 5, 2017
index.html Update path to a js bundle from an html file. (#1263) Jan 13, 2017
main.js Electron runtime improvements (#1277) Apr 13, 2017
manifest.webapp Stash Jun 24, 2015
net_error.html use same filename as gaia for net error page May 12, 2015
package.json Fixes #1242: reformat files to follow standard (#1269) Apr 5, 2017

README.md

build slack

Browser.html

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.

browser

Contributing

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

Development

There are two major components to the browser.html application.

  1. Local server that serves application UI.
  2. Client that is a application shell that connects to the server and renders served UI.

Server

If you're working on the Browser.html front-end, you'll need Node.js to install all dependencies and run the development toolchain.

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

Once all dependencies are installed, you can run the server component with the following command:

npm run build-server

Any changes to the source code will trigger a build, which is then automatically served. That will allow you to reload a client in order to see your changes. Alternatively you can use live-server to not only rebuild, but also trigger an automatic live code reload for the UI such that application state is preserved:

npm run live-server

Client

In order to run the browser.html application itself, you will need a client component. This would be a Servo binary with the Graphene runtime. You can either download pre-built nightly snapshots or build it yourself and run with the --browserhtml flag. Assuming you have a pre-built snapshot in the default location on a Mac you can run the browser.html application with the following command:

 /Applications/Servo.app/Contents/MacOS/servo -b -w --pref dom.mozbrowser.enabled --pref dom.forcetouch.enabled --pref shell.builtin-key-shortcuts.enabled=false http://localhost:6060

Gecko Client

Browser.html can also be run on top of a Gecko-based version of Graphene. We used to use this variant to test and debug features that were not yet in Servo. You can either download pre-built nightly snapshots or build it yourself. Assuming you have a pre-built snapshot in default location on a Mac you can run the browser.html application with the following command:

/Applications/B2G.app/Contents/MacOS/b2g-bin --start-manifest=http://localhost:6060/manifest.webapp --profile ./.profile

Electron Client

Browser.html can also run as an Electron application. Assuming you have electron installed you can run the browser.html application with the following command (must be run from the project root):

electron .

Browser Client

You can also just load http://localhost:6060/ in your favourite web browser, but be aware that many features with not work because they require APIs not available to web content.