Firefox/Projects/Firefox Start: Difference between revisions
| Line 107: | Line 107: | ||
* add links to privacy policy, user rights | * add links to privacy policy, user rights | ||
=== | === Content Delivery Service === | ||
A service will be hosted on mozilla.com that will deliver a | A service will be hosted on mozilla.com that will deliver a data package (format tbd) containing HTML content used to create a user-facing message that will be presented on the Firefox Start page. This content will use web technology, including JS, and can be interactive / dynamic as required. | ||
* service endpoint will accept parameters so that snippet can be differentiated based on: | * service endpoint will accept parameters so that snippet can be differentiated based on: | ||
** client version | ** client version | ||
| Line 114: | Line 114: | ||
** client host operating system | ** client host operating system | ||
** client locale | ** client locale | ||
* service will return a single file that contains | |||
* service will return a single | ** HTML | ||
** HTML | ** CSS | ||
** CSS | ** JS | ||
** JS | ** media content as data URIs or links | ||
** media | |||
* service will be able to handle load of being checked once a day by all Firefox clients | * service will be able to handle load of being checked once a day by all Firefox clients | ||
| Line 129: | Line 128: | ||
morgamic's questions: | morgamic's questions: | ||
* metrics: how would we track conversion and click through rates (use an existing system) | * metrics: how would we track conversion and click through rates (use an existing system) | ||
** web content could include tracking links, pending policy/privacy review [[User:Beltzner|Beltzner]] 07:03, 3 September 2010 (PDT) | |||
* enterprise solutions: how would we integrate a pre-existing solution without degrading service level | * enterprise solutions: how would we integrate a pre-existing solution without degrading service level | ||
* what kind of admin functions are crucial | * what kind of admin functions are crucial | ||
* disaster recovery - how do we tell firefox we are down, or enter a static only mode | * disaster recovery - how do we tell firefox we are down, or enter a static only mode | ||
** if network resource fails to load, use cached content or defaullt clntent[[User:Beltzner|Beltzner]] 07:03, 3 September 2010 (PDT) | |||
* cheap checks - can we set it up so client only pulls if content-length header is changed for json feed (and skip downloading entire document) | * cheap checks - can we set it up so client only pulls if content-length header is changed for json feed (and skip downloading entire document) | ||
** yes![[User:Beltzner|Beltzner]] 07:03, 3 September 2010 (PDT) | |||
=== Snippet Presentation in Client === | === Snippet Presentation in Client === | ||
Revision as of 14:03, 3 September 2010
Instead of loading Firefox Start from the network, use a locally hosted web application that provides the same functionality but offers greater potential for user control & customization, as well as engagement and interaction between Mozilla and users.
- Proposed by: beltzner, cbeard
- Project lead: mak
- Project members: mak, beltzner, cbeard, limi, justin
Status
Shipped in Beta 5 - need to improve styling, implement snippet support.
Next steps
- restyle with updated logos and look to match Google.com
- retrieve snippets from mozilla hosted service
- create a site to host test snippets on
Goals
- locally hosted page with
- no chrome privilege required
- some form of offline experience
- control/customization of search engine used
- ability to display user engagement messages from mozilla.com servers
- do all of the above in a scalable and measurable way
- track performance and conversion of each snippet
Non Goals
- ability to perform history/cache searches when offline
- option to use Google-hosted Firefox Start page
- For the initial implementation will not feature any dynamic content like history/bookmark lookups.
- segment on anything other than:
- client version
- last client update
- client host operating system
- client locale
- add-ons installed on client
- understand the impressions of each snippet
Timeline / Milestones
Phase 1 : locally hosted replacement
- host local HTML/JS/CSS content (done)
- ensure search codes remained consistent with existing page (localization, geoip/load balancing redirects)(partially done)
- ensure cookies are not sent when page loads
- ensure client ships with default set of snippets for initial offline support
Phase 2 : add dynamism, offline support
allow search engine to be modified based on Search Box selectionfollow-up, perf hog due to content priv.- add dynamic snippet delivery and display (partially done)
- add offline detection and messaging
- cdn hosting of snippets
- async fetch of content with analytics on click-through
Phase 3 : bells and whistles (time permitting)
- design changes
- multi-variant testing support
- some local places DB analysis (about:me style stuff)
Timeline TBD
These are the bugs of interest:
| Bug & Summary | Owner | Status |
|---|---|---|
| bug 563723 - add about:home to mimic Firefox Start | mak | awaiting review |
| bug 563738 - Add current Mozilla "snippets" in the about:home page | mak | awaiting review |
| bug 544819 - Bug 544819 - Create a basic Home Tab linking to the current Home Page | nobody | haven't started, waits app tabs |
Requirements
- privacy: do not send any data to third party web services when loaded
- performance: benchmark to show performance difference over web-hosted Firefox Start
- performance: don't hit moz servers for every impression
- performance: better offline experience than web-hosted Firefox Start
- metrics: ability to do a/b testing with engagement pieces
Dependencies
- product: talk with Google to arrange a technical contact and to ensure a smooth handoff (beltzner) done
- webdev: engagement pieces to be delivered from mozilla.com service
- fix localStorage bug: it does not allow to set entries for URIs without a host (about: pages have just scheme and path). bug 568091 (done)
- localStorage is main-thread only (IO on another thread is future target though since not really needed for first implementation). (follow-up)
- Use search service engine definitions, inject from chrome context at startup (done)
Design Specification
Visual Design
Sketch and tracking bug coming soon, but essentially:
- increase font size in textbox
- use better version of search service logo
- change layout so that it doesn't look as squooshed
- leave space for snippets more or less where they exist now
- add links to privacy policy, user rights
Content Delivery Service
A service will be hosted on mozilla.com that will deliver a data package (format tbd) containing HTML content used to create a user-facing message that will be presented on the Firefox Start page. This content will use web technology, including JS, and can be interactive / dynamic as required.
- service endpoint will accept parameters so that snippet can be differentiated based on:
- client version
- last client update
- client host operating system
- client locale
- service will return a single file that contains
- HTML
- CSS
- JS
- media content as data URIs or links
- service will be able to handle load of being checked once a day by all Firefox clients
(delete this if you want... just throwing this out there for discussion)
possible architecture
morgamic's questions:
- metrics: how would we track conversion and click through rates (use an existing system)
- web content could include tracking links, pending policy/privacy review Beltzner 07:03, 3 September 2010 (PDT)
- enterprise solutions: how would we integrate a pre-existing solution without degrading service level
- what kind of admin functions are crucial
- disaster recovery - how do we tell firefox we are down, or enter a static only mode
- if network resource fails to load, use cached content or defaullt clntentBeltzner 07:03, 3 September 2010 (PDT)
- cheap checks - can we set it up so client only pulls if content-length header is changed for json feed (and skip downloading entire document)
- yes!Beltzner 07:03, 3 September 2010 (PDT)
Snippet Presentation in Client
The client will store the snippet content on the user's local disk (either as flat file or using appcache / offline storage?) and display it as part of the Firefox Start page in an iframe. The client will update the snippet asynchronously at most once per 24 hour period; any additional rotation/varying of the user facing content will need to be handled by the snippet itself.
- client will check mozilla hosted service at most once per day
- client will download JSON file from mozilla hosted service if update available
- client will unpack resources from JSON file and store locally
- client will render locally stored content in iframe on Firefox Start page
Testing
tbd
Related Projects
- Application Tabs
- Home Tab