Apps/ManfiestFormatComparison
From MozillaWiki
< Apps
Manifest Format Comparison
This is a comparison of the manifest formats for Mozilla's Open Web Apps and Chrome's Hosted Apps.
Field | Mozilla | Chrome | Compatible | Notes |
---|---|---|---|---|
Name | name | name | YES | Mozilla stipulates max length 128 characters |
Description | description | description | YES | Mozilla stipulates max length 1024 characters |
Version | version | version | NO | For Chrome this is required, for Mozilla it's optional. Mozilla uses a string, Chrome uses dot-separated integers. |
Launch URL | launch_path | app.launch.web_url | NO | Mozilla requires a path relative to the app's "origin", Chrome requires an absolute URL beginning with http, https or * (meaning both). |
URLs | n/a | app.urls | NO | Chrome allows multiple URLs (including wildcards) to form part of the app and be given the permissions required in the manifest. Mozilla hasn't implemented a permissions system yet, but presumably will assign permissions per domain? |
Icons | icons | icons | YES | Map of sizes to paths. With Chrome icons are uploaded to the apps store, with Mozilla they are served at URLs as part of the app. |
Developer | developer.name, developer.url | homepage_url | NO | Mozilla allows developers to provide a name and URL which can be used in repositories & dashboards, Chrome does not. Not a huge problem as these are optional fields for Mozilla. Chrome extensions can have a homepage_url which may be supported by apps and could be seen as comparable and is also optional. |
Locales | locales, default_locale | _locales (directory), default_locale | NO | Mozilla uses a map for localised versions of the data in the manifest, Chrome extensions use subdirectories containing "default strings" for the extension and this may be supported for apps. |
Installs Allowed From | installs_allowed_from | n/a | NO | Mozilla allows an array of origins allowed to trigger the installation of the app, Chrome does not have an equivalent. |
Widget/Panel | widget.path, widget.width, widget.height | launch.container, launch.height, launch.width | NO | Mozilla has the concept of "widgets" as a separate abbreviated view of the app, Chrome has the concept of "panels" which is an alternative method for presenting the app itself. |
Background Page | n/a | background_page | NO | Specifies an HTTPS URL to load in a "background window" in Chrome, not supported by Mozilla. |
Key | n/a | key | NO | Chrome requires apps to have a public key, Mozilla does not appear to have an equivalent. |
Minimum Chrome Version | n/a | minimum_chrome_version | NO | Appears to have no use outside of Chrome. |
Offline Enabled | n/a | offline_enabled | NO | Chrome uses this field to highlight apps that can be used offline when the Internet connection is dropped. Mozilla doesn't have an equivalent. |
Permissions | n/a | permissions | NO | Mozilla does not yet have a permissions system. |
Update URL | n/a | update_url | NO | Chrome uses an XML file for auto-updating apps, Mozilla doesn't appear to have an equivalent. |
Manifest Delivery
Chrome
A manifest file called manifest.json is packaged in a .crx file (a special kind of .zip file) and uploaded to the chrome web store to be served by Google along with icons and other resources.
Mozilla
A manfiest file is recommended to have the extension .webapp and can be served from any web server with Content-Type header of application/x-web-app-manifest+json and is expected to be UTF-8 but other encodings can be specified with a charset parameter. The manifest is expected to respect normal rules for web caching and updates can be handled through the use of the version property.