Skip to content

Firefox.html is an experiment: trying to re-implement the Firefox UI in HTML.

Notifications You must be signed in to change notification settings

fritexvz/firefox.html

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Screenshots first because we all love screenshots:

light theme

black theme

Firefox.html is an experiment, a proof of concept: trying to re-implement the Firefox UI in HTML, as an app (à la B2G).

Screencast & screenshots

Rationale: We are working hard on making HTML fast and rich enough to build a whole operating system (Firefox OS) and a browser (Firefox OS' browser is built in HTML). Firefox Desktop is built in a different way (XUL). With a UI in HTML leveraging the Browser API, we could drop XUL and close the gap between B2G and Firefox Desktop. And eventually be able to render Firefox Desktop with Servo (which will never support XUL). And maybe, one day, host the Firefox UI online (trusted app?).

Current code is ugly (really). It works on Linux, Windows and Mac. The browser supports basic features (tabs, navigation, history, ssl, devtools, search, zoom, …).

The project is split in two modules: the app and the runtime (HTMLRunner) (see below for details).

Firefox.html screenshot

Setup

  1. Clone this repository somewhere on your computer using git clone --recursive https://github.com/paulrouget/firefox.html or the github application;
  2. Download HTMLRunner runtime: http://people.mozilla.org/~prouget/htmlrunner/ (package is named firefox-XX.XX);
  3. Run HTMLRunner runtime (binary name is firefox);
  4. HTMLRunner will ask (only once) the location of the firefox.html directory you cloned in step 1;
  5. You should now see the browser running.

Note: If you have cloned without --recursive, you may find out that lib/require.js is empty. To fix this:

git submodule update --init

How to change code

  1. Change code in the firefox.html directory
  2. Press Ctrl/Cmd-Shift-R to run the new code (doesn't work on Windows. See issue 12)
  3. Submit PR :)

No build process

The App

Firefox.html is a HTML app (like any B2G app). It is based on the Browser API and works the same way Gaia's browser and system apps work. Even though it includes tags like vbox, hbox, spacer, …, it's all HTML (see layout.css to see how they mimic xul layout).

Current priority is to re-implement the basic features of Firefox Desktop to make Firefox.html a usable browser, and understand what's missing at the platform level for a perfect integration to the OS.

The Runtime

Firefox.html requires a runtime: a special build of Gecko we call "htmlrunner". The runtime code is based on Firefox. See the htmlrunner branch branch on my gecko-dev repository.

It uses a xul:window that loads the Firefox.html app into an iframe. The xul:window is still required to build a native window (draw in title bar, support opening animations, native colors, …). Eventually, I want to kill this window and bring these native features to HTML. This window is nothing but a window with window controls (close, minimize, maximize).

About

Firefox.html is an experiment: trying to re-implement the Firefox UI in HTML.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 61.9%
  • CSS 38.1%