Mobile/EmbeddingUseCases
Overview
This document is a work in progress which describes the use cases that should drive where we should invest to make our embedding story stronger for our users and partners. We believe that this strategy should include more than just C and C++ embedding APIs (although those are very important) but also allow people who want to use our engine to leverage the tools of the web in a full app context. Taking advantage of client side storage, XUL, html, the and the rich set of libraries available in the context of the web is also an important part of that story.
Create your own browser
This is the classic embedding use case, and is the one that we are most suited at the moment. This is what MicroB is on the Nokia N800/N810 and other Mozilla-based browsers.
Main Features
- Includes most browser components and features such as
- Cookie store
- Disk cache
- Preferences
- etc
- Focused on consuming content from the web
- May or may not include extensions that are exposed to the web (mobile, platform features
- Usually built to create a more integrated experience
Required APIs
- Page loading
- Page rendering
- JS api additions to window objects
- Full profile support
Create a Non-browser App
This use case is the classic XULRunner use case. In order to build a quick app using the technology and layout of the web, we should allow people to have installable XUL packages that let an app be exposed to the user. Also, it's very likely that in the mobile case that additional APIs will be included in the base XUL platform that expose platform capabilities that it's not appropriate to expose to the web and untrusted content.
Main Features
- Includes the full XUL platform
- Allows you to install bundles that show up as full apps as opposed to being surfaced in the browser
- JS api additions to window + app objects
- May or may not include full profile support
Required APIs
- XUL (duh.)
- JS api additions
- "app" installation
- Pick-your-profile