Git Product home page Git Product logo

firefox.html's Introduction

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).

firefox.html's People

Contributors

ferndot avatar michaelkohler avatar paulrouget avatar pquentin avatar yoric avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.