|Android Sync: Push to Device|
|Directly Responsible Individual||Richard Newman|
|Lead engineer||Marina Samuel|
|Product marketing lead||`|
Stage 1: Definition
1. Feature overview
One of Sync's value propositions for a mobile user is "get up and go."
Browsing "tabs from other devices" on the phone is a cumbersome "pull" method for achieving this. Much better would be a way to "push" an open tab, along with its state (form fields, history, page position…), from the desktop to your phone.
Android Sync gives us even more possibilities:
- Sync is running all the time, so we can handle the push sooner, rather than waiting for Fennec to launch. Your pushed tabs are waiting for you in the notification bar when you unlock your phone.
- We're a full-fledged Android citizen, so we can offer more than just the browser: we can open links in suitable applications (Maps, YouTube…).
The second half of this is pushing from the phone. We can do that, too: Sync can subscribe to the standard ACTION_SHARE intent, and when Fennec offers to share a page, "Firefox on another device" is one of the options.
2. Users & use cases
Sync-enabled mobile users. Push-to-device is one of the key value propositions for Fennec and Sync.
Completion of P2D work on desktop.
- Generate a notification for each pushed tab, as required by Android design guidelines.
- Pass provided extra metadata to final handling Activity.
Stage 2: Design
5. Functional specification
Receiving P2D will involve:
- Implementing a command processor for pushed tabs, as for desktop.
- Generating notifications for each, which will themselves…
- … send an implicit Intent with the URL, stuffing additional tab data into the extras bundle.
- For the best user experience, extending Fennec to not only catch those standard URL intents, but also understand the extras. This will allow Fennec to preserve tab state, just like desktop Firefox.
All of the Android magic — opening Google Maps when sent a map URL, for example — comes for free.
6. User experience design
There's very little UX involved here.
Stage 3: Planning
7. Implementation plan
Quality Assurance review
Stage 4: Development
Stage 5: Release
10. Landing criteria
|Theme / Goal||`|
|Secondary roadmap||Firefox Mobile|
Team status notes