This project has been retired: https://groups.google.com/d/msg/mozilla.dev.servo/U5zhsBLXovM/HbRL69zZBAAJ
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.
We welcome contributions from anyone. See CONTRIBUTING.md for help getting started.
There are two major components to the browser.html application.
- Local server that serves application UI.
- Client that is a application shell that connects to the server and renders served UI.
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
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
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
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):
You can also just load http://localhost:6060/ in your favourite web browser, but be aware that many features will not work because they require APIs not available to web content.