Firefox/Activity Stream

From MozillaWiki
Jump to: navigation, search


Activity Stream for Firefox is a collection of all the things you do in the browser that you care about displayed in a rich and meaningful way. We plan to show rich content with images from recent pages, screen shots, downloads, closing sessions, notifications, and improve your results in the awesome bar. Eventually we hope to be the central feed of the things you care about.


Key Documents

Trello Boards

These Trello boards paint a very accurate picture of the various Activity Stream features and project progress:

Other Resources


Activity Stream has been available as a Test Pilot experiment, though the team is now in the process of landing Activity Stream in Firefox Nightly.

Firefox Nightly Release

In order to use this fast, but bare bones version of Activity Stream, start (or install) the latest Firefox Nightly (Firefox 55) and navigate to
Go ahead and search for the configuration preference:

and change it's value to True

Developer Release

The developer release is updated each time code is committed to master in GitHub. This version is used to experiment and validate the core functionality of the product before integrating it into Firefox. Use this release to look into the future of the product, and to try out new Activity Stream experimental and 'in-development' features.

Note: The data being collected by the add-on is documented in the repo.

Reporting Issues

If you find a bug or have a suggestion, please submit it on GitHub:



  • Help users reconnect with their favorite things from around the web
  • Finish tasks across devices
  • Give users more control of their activities in Firefox
  • Define Firefox as the helpful user agent that’s looking out for you

Product Plan

  • Q3: Consistent cross platform experience
  • Q3: Trending and recommended items (powered by Pocket)
  • Q3: Easier access to the best pages from history
  • Q3: Cross platform validation
  • Q4: Begin landing code in Firefox across platforms


  • Effective cross discipline teams solving problems across platforms
  • Validation of key assumptions through metrics and user interviews
  • Activity Stream in the hands of all our users
  • Users have easy access to their favorite things in Firefox and therefore spend more time using it


AS schedule.png

Product Milestones

Status Phase Description Owner
1 DONE Vision Define high level goals how Activity Stream fits into the Context Graph initiative Chapman
2 DONE Design and Planning How do we ship Activity Stream on mobile and what infrastructure do we need to meet our objectives Team
3a WIP Mobile MVP Android and iOS browsers have basic functionality of Activity Stream enabled. Stefan
3b WIP Desktop Engagement Desktop has demonstrated user value in increasing median activity stream interactions by weekly cohort. Tim
4 Enabling for all users Need to plan, define, and engineer activity stream to release to all users. Stefan/Tim
5 Product focused features Full stack teams to deliver coherent features across all clients driving engagement in Firefox Team

Data & Metrics - requires login


Activity Stream [status: green]


  • v1.1.3 deployed Sept 1.
  • Issue #1145 initially a chemSpill, but downgraded as root cause is quickly enable and disable of addon could result in crash. This potentially only happens on updates of large profiles. We are using Sentry to monitor it's frequency.
  • Risks:
    • Improve content relevance through scoring system - we're waiting on final review from PM on going live with an experiement
    • Metadata parser - new server instances needs Sec/Ops review

Last Sprint

  • [Done] - Share Button with Social API #892
  • [Done] - Metadata service internal testing and rating system #56
  • [Done] - Improve highlight UI and include synced tabs #1007
  • [Done] - Scoring/Ranking highlights landed but pref'd off commit
  • [Done] - bug fixes (youtube bgcolor), chores, and performance work

Current Sprint:

  • Local page parsing internal testing
  • Metadata service experiment #1084
  • Scoring highlights experiment #1085
  • Add Sentry support #747


Mobile sprint tasks:

Past Updates



Current mobile team work:

Cross Team Projects

Page MetaData Parsing

Problem: embedly proxy server has limitations in performance, client-side intelligence in display heuristics, and has a high cost.

Questions and Goals:

  • How do we land and prioritize the work to use Local page meta data parsing?
  • What dependencies and risks are there?
    • Performance could hang the main thread for ~100ms per page till we get Loci/worker queue
    • Quality of the parsing results and image identification could be lower than embedly
    • Advanced storage of page indices is needed to improve scoring, de-duplication, and intelligence of displayed content.
Working Plan


  • Develop infrastructure to refine rulesets for the Fathom library for Activity Stream
  • Experiment, debug, and evaluate client performance/stability of local parsing.


  • [server] test rulesets and resolve embedly licensing cost.
  • [server] work on testing and improving rulesets (with improved feedback from client thumbs up/down)
  • [client] Land local parsing pref'd off to evaluate performance for internal testing
  • [client] Improve feedback on good/bad highlights to help develop analytics in understand good/bad rulesets.

Task right now:

  • [Jared] email list with instructions on building addon that uses a dev instance of fathom
  • More people test this via setting embedly server endpoint via about:config
  • [K8] land PR pref'd off to test Fathom library/rules locally to eval performance and stability

Rank/Scoring heuristics for content relevance

Problem: current query of places.db has limitations in flexibility and inclusion of other signals.

Solution: How can we build system that could help us learn programmatically what types of content is more engaging for users measured by click-through-rate (CTR)?

Questions and Goals:

  • How do we land a scoring system
  • How can we maintain low latency of computation?


Problem: the heuristics for ranking page value, frecency or scoring, could improve by adding more signals from user activity

Solution: Let's experiment with a basic set of new signals that are already available (e.g. share events, etc...) and add them to a scoring system to test how we can improve relevance to users measured by CTR.

Hypothesis: If we deploy a scoring/ranking system and feed it more signals making score more accurate, we will achieve higher interactions on page.

Work to do this: * Andrei and team working on MVP of scoring and ranking system in Activity Stream as an experiment which can be preffed on/off.

  • Nan/Olivier working on storage to store signals.

Two groups of signals here:

  • A: What user signals can we record now and feed into Activity Stream's scoring system?
  • B: What user signals can we enable in gecko and feed into Activity Stream's scoring system for the long term or understanding what signals matter? We could consider uplifting behind a pref, where AS can flip the pref.


  • Identify what signals are in A vs B - @Brendan can you identify this and update the sheet?
  • How do we get A into scoring system or the current query system.
  • Do we want to do work in gecko now to enable B signals? If yes, who can do this?


Problem: If we parse pages locally, we need to preserve performance which could be impacted if we parse many pages. Storing parsed page meta data would also improve reduce duplicate computations on existing pages.


  • Loci, a worker queue that could parse pages without blocking the main thread.
  • Advanced storage to store page meta data for fast queries by score.

Team - RACI

Product owner: Nick C., Barbara B. (Mobile)

Eng Leads: Tim S., Stefan A.

Program Management: Edwin W., Jenn C.

UX Leads: Aaron B., Amy L., Bryan B.

UR Lead: Gemma P.

Product Marketing: Mike H.

QA: Peter D., Aaron T., Kevin B.

Exec Sponsor: Mark Mayo/Nick Ngyuen


IRC: #activity-stream

Slack: - please email to be added to group


  • *all* | [subscribe]
  • *paid-staff* | [subscribe]

VidyoRoom: ActivityStream