Labs/F1
Summary
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.
Full Team
- Developers: James Burke, Shane Caraveo, Philipp von Weitershausen, Tarek Ziadé, Rob Miller, Mark Hammond
- Product Manager: Bryan Clark
- Services Manager: Mike Connor
- 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
Roadmap
- Land a minimal set of pieces into Fx6 train
- Continue to work on adding new accounts and features
Meetings
- Product Status Meetings
- Wednesdays @ 10am PST Mozilla Conference number # 4402
- Additional Development Meeting
- Wednesday @ 3pm PST Mozilla Conference number # 4402
Related Bugs & Dependencies
F1 has 3 bugzilla components related to the technical pieces required to run it.
- All Components
- Server:Share for server related code
- Share:Firefox Client for the chrome UI bits in Firefox
- Share:Web Client for the web UI bits running inside the FF chrome
- Tracking Bugs
- UX bug 642684
- Unit Test bug 642681
- Server bug 646381
Screenshots
Motivations / Problems
- Usability: Sharing is a complicated process with many usability issues related to copy and paste, speed, and context
- Complexity: The complexity of sharing creates a number of issues for users, content providers, and services
- Complexity of Choice: Hundreds of icons representing most services possible increases complexity of choice for users
- Long Tail: Plays against the long tail of share services and the ability for new services to participate
- Content Providers: Puts content providers in the position of deciding what services users should or shouldn't use
- 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 Fox.com and NYT.com for tweeting a link)
- OAuth permissions for write only is all that is needed to share, read is unnecessary
- OAuth for sharing is unnecessary but mostly desired to keep users at the page and share faster than redirects to other sites
- Privacy: Providing alternatives to things like the Like button which actually (often surprisingly) create a relationship with the site instead of just sharing a link
Usability
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):
- Single click into the URL bar — this should focus and select the entire URL
- Click the Edit Menu to open the menu
- Click the Copy Menu Item to copy the text to the clipboard
- Open a tab with your sharing service — either a new tab, reusing an existing tab, or using the current tab
- Focus / Open the services compose interface — compose message, what's on your mind?, what's happening, etc.
- Click the Edit Menu to open the menu
- 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.
Speed
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.
- First copy the link
- Open the site of the Share service
- Open a new tab
- Open Tab
- Enter the site URL
- Wait for the site to load
- Find the Link Sharing interface
- Reuse the current tab
- Enter the site URL
- Wait for the site to load
- Find the Link Sharing interface
- Find existing tab
- In either a new tab or the current tab enter site URL and choose existing tab
- Possibly leave existing context to find Link Sharing interface
- Open a new tab
Context
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.
Complexity
NASCAR of Sharing
Beth uses Digg.com to share all her links but the LOL Cat site she likes doesn't include a "digg this" link as one of it's service.
John needs to scan through a long list of icons for various services he's never heard of to find the service he uses. Each site lists the services differently so he always needs to hunt for the service he uses.
On the other side of the coin site designers must either include all the icons of all possible (of an infinitely expanding list of) services to create a "NASCAR" effect or limit to a few popular services.
Other Documentation
- F1 homepage
- F1 Blog
- F1 Twitter
- F1 add-on for Firefox 4
- Feedback
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.