From MozillaWiki
Jump to: navigation, search

NOTE: This page is defunct and archived for historical purposes.


We want users to have access to their data, in particular the data that forms their web-browsing context (bookmarks, tabs, web apps, passwords, etc.) from all of their devices. This data should be tied to their identity, so that logging into a device is sufficient to connect to all the services the user has previously set up, whether those services are provided by Mozilla or third parties. These are Identity-Attached Services, which, as a whole, we're code-naming PICL (Profile In the Cloud).

Some early explorations of the issues surrounding this effort are available in this public Mozilla tech talk:

As of the second quarter of 2013, PICL is no longer an experiment. Check out the roadmap.

If you're interested in the user flows, take a look at the UX mockup.

Use Cases

The user stories listed below are in order of priority.

User Story Data Type Theme Notes
As a user, I want to be able to pick up any new device and quickly & easily replicate my core Firefox experience so I don't have repeat a bunch of work I've already done on another device. All Portability FX Desktop; FX Android
As a user with several devices, I want my core Firefox experience to be available on all devices, so I don't have to spend a lot of time rebuilding my awesomebar experience or other personalizations on each. All Portability FX Desktop; FX Android
As a user, when I install Firefox on a new device, I want my full and personalized Firefox experience to be available as quickly and easily as possible. I don't want to have to think about how to get my data beyond signing in to my Firefox Account, and that process should be as simple and intuitive as possible. N/A Portability FX Desktop; FX Android
As a user, if I have typed in and stored a password in Firefox on one device, I don't want to have to type and store that password again on any of my other devices so my web accounts & passwords are magically available on all of my devices (especially important so I don't make typing mistakes on my mobile and become frustrated!). Password Password FX Desktop; FX Android
As a user, I want to be able to stop using Account altogether, disconnecting all of my clients, deleting all of my data, and deleting all traces of the account in its entirety so I can be assured that no one has any way to know I ever had an account at all. N/A Backup FX Desktop; FX Android
Users can set up their Account on any device or machine from the menu N/A Setup FX Desktop; FX Android
As a user who has ignored the prompts to create an Acccount, I can create an Account on my own schedule. N/A Setup FX Desktop; FX Android
As a user, I want the option to more fully secure my non-personally identifiable data. I would rather have my tabs and history be unrecoverable if I lose my password than risk having them readable in case of a security breach. N/A Security Security
As a user, I don't want to be forced to create a Account when I first start using Firefox, so I can start using the browser as quickly as possible once I've downloaded and installed it. N/A Setup FX Desktop; FX Android
As a user, I want all of my data to be saved on my local machine if I haven't set up a Account, so I am still able to build up a collection of data and personalize my Firefox experience over time. N/A Backup FX Desktop; FX Android
As a user, I want all of my data to be moved and stored somewhere on my behalf once I create a Account so I do not have to start over if I create a Account after using Firefox for a time without one. N/A Portability FX Desktop; FX Android
As a user, if I explicitly log out of my Account, my Firefox reverts to the 'default' profile that still behaves as typical Firefox. N/A Multi-user FX Desktop; FX Android
As a user signing into my Account on a device I use relatively frequently, I want my data available instantly so I do not have to wait for it to be synced. N/A Multi-user FX Desktop; FX Android
As a user of a shared device, I would like all my local data to be safely encrypted when I log out so that it cannot be accessed until I securely log in again. N/A Security Security
As a user, I'm more interested in syncing bookmarks, passwords and 'my' awesome bar when I first start playing with this feature, and I'm not interested in syncing themes or add-ons which may not be relevant from one device type to the next, so I can have a simple way forward in using this new feature. Bookmarks, Passwords, History (incl frecency & etc) Portability FX Desktop; FX Android
As Mozilla, I want data about how the feature is working so I can measure and improve. Telemetry Metrics Persona
As a user, I want to be able to quickly change the password for my Account data, so if someone does steal my laptop they won't be able to access my data even if my browser is still logged in to my Account. Password Backup FX Desktop; FX Android
As a user signing into my Account on a shared (or non shared) device, I want to have a specific option to permanently delete my data on a device in preparation for giving it to someone else / throwing it away. N/A Multi-user FX Desktop; FX Android
As a paranoid user, I would not like anyone at all to be able to look at the data synced between my devices under any circumstances. N/A Security Security


Rough Working Documents


We regularly build demos of working code.

Week ending Description Link Contact
2013-01-25 Tabs: Demo of an experimental tab-synchronization addon, using Persona for login and Firebase for realtime data storage. NOTE: the bug mentioned in the video has been fixed. Brian Warner
2013-02-01 Contacts: Proof of concept - Detecting and publishing changes to Contacts in PICL. Github code and documentation. Jed Parsons
2013-02-08 Server: Simple Loadtest Automation with AWS and FunkLoad. Github code and documentation. Ryan Kelly
2013-02-15 Social tabs provider demo. Github code. Nick Alexander
2013-02-22 Persona dialog hosted in native firefox chrome - wip. The persona login dialog is hosted in a hidden iframe that can be attached to the native interface (the "doorhanger" off the url bar) when user interaction is needed. Privileged code is injected into the iframe that hosts the persona dialog, which enables us to message to and from the dialog from within native DOM functions. Jed Parsons
2013-03-01 This is a demonstration of a simple PICL sync prototype that uses native Persona in a special Firefox build, a Jetpack add-on, and a storage backend written in Node.js. This prototype will sync passwords and the contents of the bookmarks toolbar. Chris Karlof
2013-03-01 PICL Experiment - DB Triggers for Places DB Changelog Ben Adida
2013-03-01 Triggering the native Persona interface from Firefox chrome code Jed Parsons
2013-03-07 PICL Live Functional Tests Ryan Kelly
2013-03-15 PiCL Android Bookmarks Sync Demo Nick Alexander
2013-03-22 PiCL Desktop Client Update Demo Chris Karlof
2013-03-29 Sign In to Browser and API with native Persona Jed Parsons
2013-03-29 Delta-sync demo 2 Brian Warner
2013-04-04 Firefox Profile in the Cloud Prototype Q1 Demo Chris Karlof
2013-04-12 PICL History Syncing demo Chris Karlof
2013-04-15 Video demo of awsboxen deployment Ryan Kelly
2013-06-13 PiCL Third-party Part 1: Intro Vlad Filippov
2013-06-19 PiCL Third-party Part 2: Mobile to Desktop Vlad Filippov
2013-07-03 PiCL Third-party Sync Part 3: Google Drive and Snippets Vlad Filippov