Firefox Browser Architecture
Change Mozilla. Investigate big technical challenges and produce engineering programs to address them.
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.
- 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.
- Firefox Data Stores Documentation documents the existing data stores across all current Firefox platforms.
- Fluent in Prefs Design Review describes the lightweight design review for Fluent in Prefs.
- A brief analysis of JSON file-backed storage outlines some of the pros and cons of using a flat file (particularly via
JSONFile.jsm) to store data in Firefox.
- Process Isolation in Firefox is a WIP evaluation of how far we can push process isolation to improve security and stability.
- IPC Security Models and Status is an audit of our current IPC status.
- XUL Overlay Removal Review Packet is the packet that we prepared for the architectural design review for XUL Overlay removal.
- Design Review: Key-Value Storage proposes the introduction of a fast, cross-platform key-value store for Mozilla products.
- XULStore Using rkv – Proof of Concept describes a proof-of-concept implementation of XULStore that uses rkv.
- LMDB vs. LevelDB compares the Lightning Memory-mapped Database (LMDB) key-value storage engine to the LevelDB key-value storage engine.
We typically send our newsletters to firefox-dev.
- Browser Architecture Update. See also mailing-list-post.
- Browser Architecture Newsletter #2. See also mailing-list-post.
- Browser Architecture Newsletter #3. See also mailing-list-post.
- Browser Architecture Newsletter #4. See also mailing-list-post.
- Browser Architecture Newsletter #5. See also mailing-list-post.
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.
- Deploying a Rust library on iOS. A short tutorial describing how to build and deploy a Rust library for use inside an iOS app.
- Deploying a Rust library on Android. A short tutorial describing how to build and deploy a Rust library for use inside an Android app.
Community Participation Guidelines
This repository is governed by Mozilla's code of conduct and etiquette guidelines. For more details, please read the Mozilla Community Participation Guidelines.
How to Report
For more information on how to report violations of the Community Participation Guidelines, please read our 'How to Report' page.