Skip to content
This repository has been archived by the owner on Feb 29, 2020. It is now read-only.
Tim Spurway edited this page Jan 25, 2017 · 6 revisions

Activity Stream Architecture

Architecture

Activity Stream is a Firefox add-on implemented using the Addon SDK to replace the about:newtab page in Firefox.

The Activity Stream content process(es) are implemented using JavaScript and the React UI Framework, and is therefore very similar to a 'normal' JS based web application. Firefox Electrolysis may create multiple content processes for any given session so that separate Firefox newtab pages running Activity Stream may be in separate processes.

The Activity Stream content processes uses message passing to communicate with Activity Stream's add-on process.

The Activity Stream add-on process is responsible for interfacing with underlying Firefox data and sub-systems, as well as providing the core functionality of the add-on. It contains several sub-systems. The PlacesProvider queries the Places Database in order to fetch and format user's history and bookmarks. The PreviewProvider processes web sites the user visits to gather and store site summary data. The SearchProvider interfaces to Firefox search sub-systems to support the Search interface. The Recommender implements an algorithm to surface the most relevant 'highlights' of your history and bookmarks.

To facilitate sharing state across open tabs within the browser, the Activity Stream add-on uses a Page Worker mechanism to perform various (possibly expensive) tasks which store results in local storage. This allows multiple open tabs to share the same Activity Stream resources and gives a single point of update.

Clone this wiki locally