From MozillaWiki
Jump to: navigation, search


Mozilla F1 is a browser extension that allows you to share links in a fast and fun way. Share links from within the browser without leaving the page using the same services you already know and love.

We're exploring ways to build a modular architecture for F1.

Full Team

  • Developers: Shane Caraveo, Mark Hammond
  • Product Manager: Bryan Clark
  • Automation/Integration: Jonathan Griffin
  • Q/A: Tony Chung, Aaron Train
  • UX: Andy Chung, Stephen Horlander, Alex Faaborg
  • Client Security: Curtis Koenig, Daniel Veditz, Sid Stamm, David Chan
  • Infrastructure Security: Yvan Boily, Michael Coates
  • Services Operations: Philippe Chiasson, Pete Fritchman
  • Product Marketing: Mayumi Matsuno, Matej Novak, John Slater, Sean Martell
  • Legal: Alex Fowler
  • Project Manager: Jennifer Arguello
  • User Experience Research: Jinghua Zhang


See Firefox:F1 Product Roadmap for a breakdown of items
  1. Release a new add-on version using client side only technologies that can fully replace the existing add-on
  2. Integrate Open Web Apps to replace client OAuth systems as possible


Product Status Meetings 
Wednesdays @ 10am PST Mozilla Conference number # 4402

Related Bugs & Dependencies

F1 uses the product Mozilla Labs under the component: F1 - Mozilla Labs:F1



Motivations / Problems

  1. Usability: Sharing is a complicated process with many usability issues related to copy and paste, speed, and context
  2. Complexity: The complexity of sharing creates a number of issues for users, content providers, and services
    1. Complexity of Choice: Hundreds of icons representing most services possible increases complexity of choice for users
    2. Long Tail: Static lists of service providers plays against the long tail of share services and the ability for new services to participate against incumbants
    3. Content Providers: Content providers are becoming the decider what services users should or shouldn't optimally use to share
  3. OAuth Privacy/Security: Web based link sharing services ask users for OAuth credentials to tweet which is too broad of an authorization to be giving away (see and for tweeting a link)
    1. Write Only OAuth: The read permission is an unnecessary OAuth permission for sharing
    2. OAuth to Share: OAuth for sharing is unnecessary but mostly desired to keep users at the page and share faster than redirects to other sites
  4. Privacy: Users are often surprised to discover the Like button actually create a relationship with the site instead of just sharing a link; we need to provide alternatives.


Copy & Paste

Alice finds a hilarious LOL Cat she wants to send to her friends. Now she enters the precarious world of focus, selection, and the clipboard.

Here is the only route of success (assuming no keyboard shortcuts):

  1. Single click into the URL bar — this should focus and select the entire URL
  2. Click the Edit Menu to open the menu
  3. Click the Copy Menu Item to copy the text to the clipboard
  4. Open a tab with your sharing service — either a new tab, reusing an existing tab, or using the current tab
  5. Focus / Open the services compose interface — compose message, what's on your mind?, what's happening, etc.
  6. Click the Edit Menu to open the menu
  7. Click the Paste Menu Item to paste the URL into the text entry

At each of these steps exists a number of ways to fail, we'll only cover a few major ones here.

1 focus 
with anything more than a single click into the URL bar a user will not be selecting the entire URL which will block the rest of the steps
2,3 selection 
when the user goes to copy the URL they risk changing the focus/selection of the URL which will block them from copying or make them copy the wrong text
4,5 transition 
if the user doesn't already have the service open they will now have to load the page which can be slow and systems like often are not ready for immediate sharing.
6,7 focus 
And finally if the user clicks anywhere else besides the text entry as they are choosing to paste there will be no notification of the failed state they entered.


As demonstrated in copy and paste there is a problem with speed of completing a task. Users wish to complete the task of sharing a link but have to open or find the right tabs to the service providers they wish to use.

  1. First copy the link
  2. Open the site of the Share service
    1. Open a new tab
      1. Open Tab
      2. Enter the site URL
      3. Wait for the site to load
      4. Find the Link Sharing interface
    2. Reuse the current tab
      1. Enter the site URL
      2. Wait for the site to load
      3. Find the Link Sharing interface
    3. Find existing tab
      1. In either a new tab or the current tab enter site URL and choose existing tab
      2. Possibly leave existing context to find Link Sharing interface


As demonstrated in the speed section users must leave the page they are currently on to open a page from a share service provider. We should allow people to keep their context on the existing page and yet share the URL with the service provider they want.


NASCAR of Sharing

Content producers are mostly interested in getting page views and use the social network link sharing to help promote their content.


One way of handling this issue is to try including as many social networks as possible. Various sites and 3rd party services will help by providing super buttons that contain many of the social networking platforms sorted by usage.

When the browser knows what link sharing services a user prefers it could provide a hint that only certain services appear to reduce the set of all possible networks to all networks users have accounts with.

The Long Tail

Certain content providers use a small static list of link sharing services for reasons of design and space. Even when providers offer a long list of services it does not get updated at the pace at which new services are created.

To support the long tail of services and encourage new types of link sharing services we need to work to remove the static list of services which are usually only pointing to the largest providers.

Content Providers Pickle

Most content providers do not want to be in the position of choosing which services user can use to share links to the site. Currently it's the content providers who are put in the position of choosing the services users can easily use to share a site by choosing what share buttons are placed on pages.

Content providers shouldn't have to worry about keeping up with the long tail of services or need to provide all choices of networks to encourage their content being shared.

OAuth Privacy/Security

OAuth is a way of authenticating/connecting users with services while not requiring the remote services to hold the passwords of the users service. The system is not perfect and there is a lot we can do to help improve it.

Write Only OAuth

Many sites like Twitter, Facebook, and Google(GMail) do not allow for a write-only OAuth permission. In order to send something on behalf of a person we need to obtain read/write permissions to their accounts.

Part of our role should be to encourage sites to have a write-only permission such that the security and privacy impact of connecting via OAuth is greatly reduced.

OAuth to Share

Many sites implement an OAuth share system that connects their site directly to sites like Twitter for sharing links. This system is slow and gives sites much too much power and access to a users information.

Sites want to keep users from being redirected to other sites for sharing as they often lose users by redirecting them. F1 has the same goals in mind in regards to the problems with the usability of share systems.

Sharing Privacy

The Facebook Like presents what we consider to be a privacy transparency problem. By "liking" things users not only post the item on their Facebook NewsFeed but also create a relationship with that page. Later pages which were liked can post updates into a users newsfeed.

We've found people are often surprised by the Facebook Like behavior and deserve an alternative to the Like button which simply shares (or sends) a like to a group of friends.

Other Documentation

Sharing Services

Like Digg, Facebook, Twitter, etc.

The F1 team has been in contact with a number of different sharing services. If you would like to participate in the discussion please open an issue or send me a message.

Developer Information

F1 uses both a some client and server code to provide the sharing service. You'll find all the pieces you need to get started hacking in the source repositories

Don't ask for permission, get stared and make changes. Just fork the source code, make a branch, commit, test, and create a pull request.