You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Tim Spurway edited this page Jan 25, 2017
·
6 revisions
Activity Stream 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 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.