zzz_archive [Crosswalk manifest] - PeterWangIntel/crosswalk-website GitHub Wiki

The content in this page has been expanded/corrected and promoted to the main website at https://crosswalk-project.org/#documentation/manifest.

Crosswalk manifest format

Crosswalk currently follows the manifest format used by Chromium packaged applications.

However, many of the features are not yet supported in Crosswalk.

Required fields

  • name: A plain text string that identifies the application. This field does not yet support internationalisation.

  • version: A string containing one to four dot-separated integers identifying the application version; for example: "2", "1.2", "1.3.0", "4.0.0.11". A couple of rules apply to the integers: they must be between 0 and 65535, inclusive; and you can't prefix any non-zero values with "0" (e.g. "01.1" is invalid).

  • app: Specifies the application entry point. It must contain one of the fields below:

    • launch: Specifies a normal page to use as the app entry point. It must contain a local_path field which sets a path to an HTML page, relative to the application's root.

      Note: app.launch.local_path is the only supported entry point for applications on Crosswalk Android.

    • main: Specifies a main document (a.k.a. "event page") to use as the application entry point. This field should itself contain either:

      • A source field, which sets the main document's local path.
      • OR
      • A scripts array to specify JavaScript files. These will be loaded into an automatically-generated main document.

    If both source and scripts are specified, source takes precedence.

Note that if both launch and main are specified, main takes precedence.

Optional fields

The following fields are not required by the manifest specification, but are available:

  • description: A text string describing the application.
  • icons: Specifies icon graphics files to use for the application. The "128" size icon should be set as a minimum. If it's not given, the Crosswalk default logo icon will be used.
  • permissions (Crosswalk 4 or later for Android): This field defines which features are used by the application. See the permissions support in Crosswalk.
  • content_security_policy (Crosswalk 4 or later for Tizen. Crosswalk 6 or later for Android): The "content_security_policy" field represents the CSP policy which should be enforced for the application. CSP is disabled if this field is not set.
  • launch_screen (Crosswalk 5 or later for Android): The "launch_screen" field represents the Launch Screen feature, which is a static user interface that is shown immediately after the application is launched.
  • xwalk_hosts (Crosswalk 6 or later for Android): The 'xwalk_hosts' field allows Cross Origin XHR on Android.

Minimal manifest file

This is an example of the minimal amount of metadata required in a manifest:

{
  "name": "Calculator",
  "version": "1.1.3.1",
  "app": {
    "launch":{
      "local_path": "calculator.html"
    }
  }
}

Another example, using main.scripts instead of a launch object:

{
  "name": "Calculator",
  "version": "1.1.3.1",
  "app": {
    "main":{
      "scripts": ["main.js"]
    }
  }
}

and an example using main.source:

{
  "name": "Calculator",
  "version": "1.1.3.1",
  "app": {
    "main":{
      "source": "main.html"
    }
  }
}

Full manifest file (Crosswalk 1-3)

Here is the complete manifest file which contains all fields supported by Crosswalk (Crosswalk 1, Crosswalk 2, Crosswalk 3):

{
  "name": "app name",
  "version": "1.0.0",
  "app": {
    "main":{
      "scripts": ["main.js"],
      "source": "main.html"
    },
    "launch":{
      "local_path": "index.html"
    }
  },
  "description": "a sample description",
  "icons": {
    "128": "icon128.png"
  }
}

Full manifest file (Crosswalk 4)

This example shows additional fields supported by Crosswalk 4:

{
  "name": "app name",
  "version": "1.0.0",
  "app": {
    "main":{
      "scripts": ["main.js"],
      "source": "main.html"
    },
    "launch":{
      "local_path": "index.html"
    }
  },
  "content_security_policy": "script-src 'self'",
  "permissions": [
    "Contacts",
    "Geolocation",
    "Messaging"
  ],
  "description": "a sample description",
  "icons": {
    "128": "icon128.png"
  }
}

Manifest fields support status

Field Platform Canary Crosswalk 1 Crosswalk 2 Crosswalk 3 Crosswalk 4 Crosswalk 5
name Tizen Yes Yes Yes Yes Yes Yes
Android Yes N/A Yes Yes Yes Yes
version Tizen Yes Yes Yes Yes Yes Yes
Android Yes N/A Yes Yes Yes Yes
app.launch.local_path Tizen Yes Yes Yes Yes Yes Yes
Android Yes N/A Yes Yes Yes Yes
app.main.source Tizen Yes Yes Yes Yes Yes Yes
Android N/A N/A N/A N/A N/A N/A
app.main.scripts Tizen Yes Yes Yes Yes Yes Yes
Android N/A N/A N/A N/A N/A N/A
description Tizen Yes Yes Yes Yes Yes Yes
Android Yes N/A Yes Yes Yes Yes
icons Tizen Yes Yes Yes Yes Yes Yes
Android Yes N/A Yes Yes Yes Yes
content_security_policy Tizen Yes N/A N/A N/A Yes Yes
Android N/A N/A N/A N/A N/A N/A
permissions Tizen
Android N/A N/A N/A N/A Yes Yes
launch_screen Tizen N/A N/A N/A N/A N/A N/A
Android N/A N/A N/A N/A N/A Yes