| OLD | NEW |
| 1 .. _distributing: | 1 .. _distributing: |
| 2 | 2 |
| 3 ############################# | 3 ############################# |
| 4 Distributing Your Application | 4 Distributing Your Application |
| 5 ############################# | 5 ############################# |
| 6 | 6 |
| 7 .. contents:: | 7 .. contents:: |
| 8 :local: | 8 :local: |
| 9 :backlinks: none | 9 :backlinks: none |
| 10 :depth: 2 | 10 :depth: 2 |
| 11 | 11 |
| 12 This document describes how to distribute Portable Native Client applications | 12 This document describes how to distribute Portable Native Client applications |
| 13 on the web, and Native Client applications through the | 13 on the web, and Native Client applications through the |
| 14 `Chrome Web Store </chrome/web-store/docs/>`_ (CWS). | 14 `Chrome Web Store </webstore>`_ (CWS). |
| 15 | 15 |
| 16 Portable Native Client | 16 Portable Native Client |
| 17 ====================== | 17 ====================== |
| 18 | 18 |
| 19 Portable Native Client is enabled by default for web pages, so no separate | 19 Portable Native Client is enabled by default for web pages, so no separate |
| 20 distribution step is requred. Making PNaCl a part of your web application is as | 20 distribution step is requred. Making PNaCl a part of your web application is as |
| 21 simple as embedding a manifest file that points to a **pexe**. See the | 21 simple as embedding a manifest file that points to a **pexe**. See the |
| 22 :doc:`technical overview <../overview>` for more details. | 22 :doc:`technical overview <../overview>` for more details. |
| 23 | 23 |
| 24 .. image:: /images/nacl-in-a-web-app.png | 24 .. image:: /images/nacl-in-a-web-app.png |
| (...skipping 11 matching lines...) Expand all Loading... |
| 36 NaCl modules are only allowed for applications distributed through the `Chrome | 36 NaCl modules are only allowed for applications distributed through the `Chrome |
| 37 Web Store (CWS) <https://chrome.google.com/webstore/category/apps>`_ | 37 Web Store (CWS) <https://chrome.google.com/webstore/category/apps>`_ |
| 38 The CWS requirement is in place to prevent the proliferation of Native Client | 38 The CWS requirement is in place to prevent the proliferation of Native Client |
| 39 executables (**nexe**\s) compiled for specific architecures (e.g., x86-32, | 39 executables (**nexe**\s) compiled for specific architecures (e.g., x86-32, |
| 40 x86-64, or ARM). | 40 x86-64, or ARM). |
| 41 | 41 |
| 42 In general, the considerations and guidelines for distributing applications | 42 In general, the considerations and guidelines for distributing applications |
| 43 through the Chrome Web Store apply to applications that contain NaCl modules as | 43 through the Chrome Web Store apply to applications that contain NaCl modules as |
| 44 well. Here are a few pointers to relevant documentation: | 44 well. Here are a few pointers to relevant documentation: |
| 45 | 45 |
| 46 * `CWS Overview <https://developers.google.com/chrome/web-store/docs/>`_ | 46 * `CWS Overview </webstore>`_ |
| 47 * `Choosing an App Type <https://developers.google.com/chrome/web-store/docs/cho
osing>`_ | 47 * `Choosing an App Type </webstore/choosing>`_ |
| 48 * `Getting started with packaged apps <http://developer.chrome.com/apps/about_ap
ps.html>`_ | 48 * `Getting started with packaged apps </apps/about_apps>`_ |
| 49 * `Hosted apps <https://developers.google.com/chrome/apps/docs/developers_guide>
`_ | 49 * `Hosted apps <https://developers.google.com/chrome/apps/docs/developers_guide>
`_ |
| 50 * `Chrome extensions <http://developer.chrome.com/extensions/index.html>`_ | 50 * `Chrome extensions </extensions>`_ |
| 51 | 51 |
| 52 In this document, we'll focus only on distribution issues specific to | 52 In this document, we'll focus only on distribution issues specific to |
| 53 applications that contain NaCl modules. | 53 applications that contain NaCl modules. |
| 54 | 54 |
| 55 .. _distributing_packaged: | 55 .. _distributing_packaged: |
| 56 | 56 |
| 57 Packaged application | 57 Packaged application |
| 58 -------------------- | 58 -------------------- |
| 59 | 59 |
| 60 A packaged application is a special zip file (with a .crx extension) hosted in | 60 A packaged application is a special zip file (with a .crx extension) hosted in |
| 61 the Chrome Web Store. This file contains all of the application parts: A Chrome | 61 the Chrome Web Store. This file contains all of the application parts: A Chrome |
| 62 Web Store manifest file (manifest.json), an icon, and all of the regular Native | 62 Web Store manifest file (manifest.json), an icon, and all of the regular Native |
| 63 Client application files. Refer to | 63 Client application files. Refer to |
| 64 `Packaged Apps <https://developer.chrome.com/apps/about_apps.html>`_ | 64 `Packaged Apps </apps/about_apps>`_ |
| 65 for more information about creating a packaged application. | 65 for more information about creating a packaged application. |
| 66 | 66 |
| 67 Reducing the size of the user download package | 67 Reducing the size of the user download package |
| 68 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | 68 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| 69 | 69 |
| 70 .. Note:: | 70 .. Note:: |
| 71 :class: note | 71 :class: note |
| 72 | 72 |
| 73 **Tip:** | 73 **Tip:** |
| 74 Packaging an app in a multi-platform zip file can significantly reduce the | 74 Packaging an app in a multi-platform zip file can significantly reduce the |
| (...skipping 140 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 215 ``sub_package_path`` without a corresponding ``nacl_arch``. This entry | 215 ``sub_package_path`` without a corresponding ``nacl_arch``. This entry |
| 216 identifies the fallback directory, which is included in the download | 216 identifies the fallback directory, which is included in the download |
| 217 package if the user architecture does not match any of the listed NaCl | 217 package if the user architecture does not match any of the listed NaCl |
| 218 architectures, or if the user is using an older version of Chrome that | 218 architectures, or if the user is using an older version of Chrome that |
| 219 does not support multi-platform zip files. | 219 does not support multi-platform zip files. |
| 220 | 220 |
| 221 #. Modify your application as necessary so that it uses the files for the | 221 #. Modify your application as necessary so that it uses the files for the |
| 222 correct user architecture. | 222 correct user architecture. |
| 223 | 223 |
| 224 To reference architecture-specific files, use the JavaScript API | 224 To reference architecture-specific files, use the JavaScript API |
| 225 `chrome.runtime.getPlatformInfo() <http://developer.chrome.com/trunk/extensio
ns/runtime.html#method-getPlatformInfo>`_. | 225 `chrome.runtime.getPlatformInfo() </extensions/runtime.html#method-getPlatfor
mInfo>`_. |
| 226 As an example, if you have architecture-specific files in the directories | 226 As an example, if you have architecture-specific files in the directories |
| 227 ``x86-64``, ``x86-32``, and ``arm``, you can use the following JavaScript | 227 ``x86-64``, ``x86-32``, and ``arm``, you can use the following JavaScript |
| 228 code to create a path for the files: | 228 code to create a path for the files: |
| 229 | 229 |
| 230 .. naclcode:: | 230 .. naclcode:: |
| 231 | 231 |
| 232 function getPath(name) { | 232 function getPath(name) { |
| 233 return '_platform_specific/' + | 233 return '_platform_specific/' + |
| 234 chrome.runtime.getPlatformInfo().nacl_arch + | 234 chrome.runtime.getPlatformInfo().nacl_arch + |
| 235 '/' + name; | 235 '/' + name; |
| (...skipping 22 matching lines...) Expand all Loading... |
| 258 "web_url": "http://mail.google.com/mail/" | 258 "web_url": "http://mail.google.com/mail/" |
| 259 } | 259 } |
| 260 | 260 |
| 261 * If you want to write local data using the Pepper | 261 * If you want to write local data using the Pepper |
| 262 `FileIO </native-client/peppercpp/classpp_1_1_file_i_o>`_ | 262 `FileIO </native-client/peppercpp/classpp_1_1_file_i_o>`_ |
| 263 API, you must set the 'unlimitedStorage' permission in your Chrome Web | 263 API, you must set the 'unlimitedStorage' permission in your Chrome Web |
| 264 Store manifest file, just as you would for a JavaScript application that | 264 Store manifest file, just as you would for a JavaScript application that |
| 265 uses the HTML5 File API. | 265 uses the HTML5 File API. |
| 266 * For packaged applications, you can only use in-app purchases. | 266 * For packaged applications, you can only use in-app purchases. |
| 267 * You can place your application in the Google Web Store with access only to | 267 * You can place your application in the Google Web Store with access only to |
| 268 certain people for testing. See | 268 certain people for testing. See `Publishing to test accounts |
| 269 `Publishing to test accounts <https://developers.google.com/chrome/web-store/d
ocs/publish>`_ | 269 </webstore/publish>`_ for more information. |
| 270 for more information. | |
| 271 | 270 |
| 272 Extension | 271 Extension |
| 273 --------- | 272 --------- |
| 274 | 273 |
| 275 The NaCl-specific notes for a :ref:`package application <distributing_packaged>` | 274 The NaCl-specific notes for a :ref:`package application <distributing_packaged>` |
| 276 apply to extensions as well. | 275 apply to extensions as well. |
| 277 | 276 |
| 278 Hosted application | 277 Hosted application |
| 279 ------------------ | 278 ------------------ |
| 280 | 279 |
| (...skipping 55 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 336 { | 335 { |
| 337 "path": "DocumentViewer.nmf", | 336 "path": "DocumentViewer.nmf", |
| 338 "mime_type": "application/vnd.oasis.opendocument.text" | 337 "mime_type": "application/vnd.oasis.opendocument.text" |
| 339 }] | 338 }] |
| 340 } | 339 } |
| 341 | 340 |
| 342 The ``nacl_modules`` attribute is optional---specify this attribute only if | 341 The ``nacl_modules`` attribute is optional---specify this attribute only if |
| 343 you want Chrome to use a Native Client module to display a particular type of | 342 you want Chrome to use a Native Client module to display a particular type of |
| 344 content. | 343 content. |
| 345 | 344 |
| OLD | NEW |