/firefox-browser-architecture

Proposals for future Firefox browser architecture

Primary LanguageCSSMozilla Public License 2.0MPL-2.0

Firefox Browser Architecture

Vision

Build the world’s best web browser

Strategy

Our top priority is to plan for where we want to go, but if we just think 5 years out, we’ll miss the dragon on the doorstep. So we need to look from both angles:

  1. Look forward from where we are now: Move faster
  2. Look backwards from where we want to get to: Consciously plan our architecture

Our Conclusions

This is a list of our findings that we're reasonably happy with so far.

  • Documenting our output looks at how we’re going to communicate with the rest of Mozilla.
  • Extracting Necko considers whether it's feasible or worthwhile to extract Necko — Gecko's C++ networking library — for use as a standalone component.
  • Problems with XUL aims to list the different kinds of problems that exist with XUL.
  • XBL and Web Components compares some old Mozilla technology (XBL) with modern Web Components.
  • Problems with XBL aims to list the different kinds of problems that exist with XBL.
  • Architecture Reviews are healthy and we proposed a process for healthy reviews (this document is incomplete and in-progress).
  • XBL Design Review packet is the packet that we prepared for the architectural design review for XBL removal.
  • Roadmap Review: Sync and Storage establishes that storage and syncing of user data is a pillar of the Firefox ecosystem, warranting holistic and long-term attention, and outlines where we’d like to end up and some ideas for how to get there.

Posts

We typically send our newsletters to firefox-dev.

{% for post in site.categories.newsletter reversed %}

  • [{{ post.title }}]({{ site.baseurl }}{{ post.url }}): {{ post.description }} [[mailing-list-post]({{ post.mailinglist }})]{% endfor %}

Explorations and Experiments

To support our conclusions we occasionally perform explorations and experiments. The first exploration is designed to support the notion that we can create a sync and storage layer in Rust that we can deploy to Desktop, Android and iOS.