Chromium Code Reviews| OLD | NEW |
|---|---|
| 1 .. _devcycle-running: | 1 .. _devcycle-running: |
| 2 | 2 |
| 3 ####### | 3 ####### |
| 4 Running | 4 Running |
| 5 ####### | 5 ####### |
| 6 | 6 |
| 7 .. contents:: Table Of Contents | 7 .. contents:: |
| 8 :local: | 8 :local: |
| 9 :backlinks: none | 9 :backlinks: none |
| 10 :depth: 2 | 10 :depth: 2 |
| 11 | 11 |
| 12 Introduction | 12 Introduction |
| 13 ============ | 13 ============ |
| 14 | 14 |
| 15 This document describes how to run Native Client applications during | 15 This document describes how to run Native Client applications during |
| 16 development. | 16 development. |
| 17 | 17 |
| 18 The workflow for PNaCl applications is straightfoward and will only be discussed | |
| 19 briefly. For NaCl applications distributed through the web-store, there is a | |
| 20 number of options and these will be discussed more in-depth. | |
| 21 | |
| 22 Portable Native Client (PNaCl) applications | |
| 23 =========================================== | |
| 24 | |
| 25 Running PNaCl applications from the open web is enabled in Chrome version 31 and | |
| 26 above; therefore, no special provisions are required to run and test such | |
| 27 applications locally. An application that uses a PNaCl module can be tested | |
| 28 similarly to any other web application that only consists of HTML, CSS and | |
| 29 JavaScript. | |
| 30 | |
| 31 To better simulate a production environment, it's recommended to start a local | |
| 32 web server to serve the application's files. The NaCl SDK comes with a simple | |
| 33 local server built in, and the process of using it to run PNaCl applications is | |
| 34 described in :ref:`the tutorial <tutorial_step_2>`. | |
| 35 | |
| 36 Native Client applications and the Chrome Web Store | |
| 37 =================================================== | |
| 38 | |
| 18 Before reading about how to run Native Client applications, it's important to | 39 Before reading about how to run Native Client applications, it's important to |
| 19 understand a little bit about how Native Client applications are distributed. | 40 understand a little bit about how Native Client applications are distributed. |
| 20 As explained in :doc:`Distributing Your Application <../distributing>`, Native | 41 As explained in :doc:`Distributing Your Application <../distributing>`, Native |
| 21 Client applications must currently be distributed through the **Chrome Web | 42 Client applications must currently be distributed through the **Chrome Web |
| 22 Store (CWS)**. Applications in the CWS are one of three types: | 43 Store (CWS)**. Applications in the CWS are one of three types: |
| 23 | 44 |
| 24 * A **hosted application** is an application that you host on a server of your | 45 * A **hosted application** is an application that you host on a server of your |
| 25 choice. To distribute an application as a hosted application, you upload | 46 choice. To distribute an application as a hosted application, you upload |
| 26 application metadata to the CWS. | 47 application metadata to the CWS. |
| 27 | 48 |
| 28 * A **packaged application** is an application that is hosted in the CWS and | 49 * A **packaged application** is an application that is hosted in the CWS and |
| 29 downloaded to the user's machine. To distribute an application as a packaged | 50 downloaded to the user's machine. To distribute an application as a packaged |
| 30 application, you upload the entire application, including all application | 51 application, you upload the entire application, including all application |
| 31 assets and metadata, to the CWS. | 52 assets and metadata, to the CWS. |
| 32 | 53 |
| 33 * An **extension** is a packaged application that has a tiny UI component | 54 * An **extension** is a packaged application that has a tiny UI component |
| 34 (extensions are typically used to extend the functionality of the Chrome | 55 (extensions are typically used to extend the functionality of the Chrome |
| 35 browser). To distribute an application as an extension, you upload the entire | 56 browser). To distribute an application as an extension, you upload the entire |
| 36 application, including all application assets and metadata, to the CWS. | 57 application, including all application assets and metadata, to the CWS. |
| 37 | 58 |
| 38 It's clearly not convenient to package and upload files to the Chrome Web Store | 59 It's clearly not convenient to package and upload files to the Chrome Web Store |
| 39 every time you want to run a new build of your application, but there are four | 60 every time you want to run a new build of your application, but there are four |
| 40 alternative techniques you can use to run the application during development. | 61 alternative techniques you can use to run the application during development. |
| 41 These techniques are listed in the following table and described in detail | 62 These techniques are listed in the following table and described in detail |
| 42 below. Each technique has certain requirements (NaCl flag, web server, and/or | 63 below. Each technique has certain requirements (NaCl flag, web server, and/or |
| 43 CWS metadata); these are explained in the :ref:`Requirements <requirements>` | 64 CWS metadata); these are explained in the :ref:`Requirements <requirements>` |
| 44 section below. | 65 section below. |
| 45 | 66 |
| 46 +-----------+----------------------+---------------------+---------------------- -+-------------+ | 67 .. list-table:: |
| 47 | Technique | Requires NaCl flag | Requires web server | Requires CWS metadata | Description | | 68 :header-rows: 1 |
| 48 +===========+======================+=====================+====================== =+=============+ | |
| 49 | 1 | local server | | | | | |
| 50 +-----------+----------------------+---------------------+---------------------- -+-------------+ | |
| 51 | 2 | packaged application | | | | | |
| 52 | | loaded as an | | | | | |
| 53 | | unpacked extension | | | | | |
| 54 +-----------+----------------------+---------------------+---------------------- -+-------------+ | |
| 55 | 3 | hosted application | | | | | |
| 56 | | loaded as an unpacked| | | | | |
| 57 | | extension | | | | | |
| 58 +-----------+----------------------+---------------------+---------------------- -+-------------+ | |
| 59 | 4 | Chrome Web Store | | | | | |
| 60 | | application with | | | | | |
| 61 | | trusted testers | | | | | |
| 62 +-----------+----------------------+---------------------+---------------------- -+-------------+ | |
| 63 | 69 |
| 64 Which of the above techniques you use to run your application during | 70 * - # |
| 65 development is largely a matter of personal preference (i.e., would you rather | 71 - Technique |
| 66 start a local server or create CWS metadata?). As a general rule, once you have | 72 - Requires NaCl flag |
| 67 an idea of how you plan to distribute your application, you should use the | 73 - Requires Web Server |
| 68 corresponding technique during development (technique # 2 for packaged | 74 - Requires CWS Metadata |
| 69 applications and extensions; technique # 3 for hosted applications). Choosing a | 75 - Description |
| 70 distribution option depends on a number of factors such as application size, | 76 * - 1 |
| 71 application start-up time, hosting costs, offline functionality, etc. (see | 77 - Local server |
| 72 :doc:`Distributing Your Application <../distributing>` for details), but you | 78 - |CHK| |
| 73 don't need to make a decision about how to distribute your application at the | 79 - |CHK| |
| 74 outset. | 80 - |
| 81 - Run a local server and simply point your browser to your application on | |
| 82 the server. | |
| 83 * - 2 | |
| 84 - Packaged application loaded as an unpacked extension | |
| 85 - | |
| 86 - | |
| 87 - |CHK| | |
| 88 - Load your packaged application into Chrome as an unpacked extension and | |
| 89 run it without a server. An unpacked extension is simply an application | |
| 90 whose source and metadata files are located in a plain (unzipped) folder | |
| 91 on your development machine. The CWS manifest file (explained below) must | |
| 92 specify a ``local_path`` field. | |
| 93 * - 3 | |
| 94 - Hosted application loaded as an unpacked extension | |
| 95 - | |
| 96 - |CHK| | |
| 97 - |CHK| | |
| 98 - Load your hosted application into Chrome as an unpacked extension and run | |
| 99 it from a server (which can be a local server). The CWS manifest file | |
| 100 must specify a ``web_url`` field. | |
| 101 * - 4 | |
| 102 - CWS application with untrusted testers | |
| 103 - | |
| 104 - | |
| 105 - |CHK| | |
| 106 - This is the standard technique for distributing a packaged or hosted | |
| 107 application in the CWS, but you can limit the application to a few | |
| 108 trusted testers. This technique requires a server if your application is | |
| 109 a hosted application. | |
| 110 | |
| 111 .. |CHK| image:: /images/check-red.png | |
| 112 | |
| 113 Which of the above techniques you use to run your application during development | |
| 114 is largely a matter of personal preference (i.e., would you rather start a local | |
| 115 server or create CWS metadata?). As a general rule, once you have an idea of how | |
| 116 you plan to distribute your application, you should use the corresponding | |
| 117 technique during development. Choosing a distribution option depends on a number | |
| 118 of factors such as application size, application start-up time, hosting costs, | |
| 119 offline functionality, etc. (see :doc:`Distributing Your Application | |
| 120 <../distributing>` for details), but you don't need to make a decision about how | |
| 121 to distribute your application at the outset. | |
| 75 | 122 |
| 76 The next two sections of this document describe a couple of prerequisites for | 123 The next two sections of this document describe a couple of prerequisites for |
| 77 running applications during development (using the correct version of Chrome | 124 running applications during development, and explain the three requirements |
| 78 and turning off the Chrome cache), and explain the three requirements listed in | 125 listed in the table above (NaCl flag, web server, and CWS metadata). The |
| 79 the table above (NaCl flag, web server, and CWS metadata). The subsequent | 126 subsequent sections of the document provide instructions for how to use each of |
| 80 sections of the document provide instructions for how to use each of the four | 127 the four techniques. |
| 81 techniques. | |
| 82 | 128 |
| 83 Prerequisites | 129 Prerequisites |
| 84 ============= | 130 ============= |
| 85 | 131 |
| 86 Browser and Pepper versions | 132 Browser and Pepper versions |
| 87 --------------------------- | 133 --------------------------- |
| 88 | 134 |
| 89 Before you run a new build of your application, make sure that you're using the | 135 Before you run a new build of your application, make sure that you're using the |
| 90 correct version of Chrome. Each version of Chrome supports a corresponding | 136 correct version of Chrome. Each version of Chrome supports a corresponding |
| 91 version of the Pepper API. You (and your users) must use a version of Chrome | 137 version of the Pepper API. You (and your users) must use a version of Chrome |
| 92 that is equal to or higher than the version of the Pepper API that your | 138 that is equal to or higher than the version of the Pepper API that your |
| 93 application uses. For example, if you compiled your application using the | 139 application uses. For example, if you compiled your application using the |
| 94 ``pepper_28`` bundle, your application uses the Pepper 28 API, and you must run | 140 ``pepper_31`` bundle, your application uses the Pepper 31 API, and you must run |
| 95 the application in Chrome 28 or higher. To check which version of Chrome you're | 141 the application in Chrome 31 or higher. To check which version of Chrome you're |
| 96 using, type ``about:chrome`` or ``about:version`` in the Chrome address bar | 142 using, type ``about:version`` in the Chrome address bar. |
| 97 (the latter address shows additional information such as the Chrome command | |
| 98 line and profile path). | |
| 99 | |
| 100 If your application requires a minimum version of Chrome, you are encouraged to | |
| 101 include code in the application to check that the user's browser is compatible | |
| 102 with the application. For sample code that checks the user's browser version, | |
| 103 refer to the ``load_progress`` example in the Native Client SDK. | |
| 104 | 143 |
| 105 Chrome Cache | 144 Chrome Cache |
| 106 ------------ | 145 ------------ |
| 107 | 146 |
| 108 Chrome caches resources aggressively. You should disable Chrome's cache | 147 Chrome caches resources aggressively. You should disable Chrome's cache whenever |
| 109 whenever you are developing a Native Client application in order to make sure | 148 you are developing a Native Client application in order to make sure Chrome |
| 110 Chrome loads new versions of your application. To disable the cache: | 149 loads new versions of your application. Follow the instructions :ref:`in the |
| 111 | 150 tutorial <tutorial_step_3>`. |
| 112 #. Open Chrome's developer tools by clicking the menu icon |menu-icon| and | |
| 113 choosing **Tools > Developer tools**. | |
| 114 #. Click the gear icon in the bottom right corner of the Chrome window. | |
| 115 #. Under the "General" settings, check the box next to "Disable cache". | |
| 116 | 151 |
| 117 .. _requirements: | 152 .. _requirements: |
| 118 | 153 |
| 119 Requirements | 154 Requirements |
| 120 ============ | 155 ============ |
| 121 | 156 |
| 122 .. _flag: | 157 .. _flag: |
| 123 | 158 |
| 124 Native Client flag | 159 Native Client flag |
| 125 ------------------ | 160 ------------------ |
| 126 | 161 |
| 127 Native Client is automatically enabled for applications that are installed from | 162 Native Client is automatically enabled for applications that are installed from |
| 128 the Chrome Web Store. To enable Native Client for applications that are not | 163 the Chrome Web Store. To enable Native Client for applications that are not |
| 129 installed from the Chrome Web Store, you must explicitly turn on the Native | 164 installed from the Chrome Web Store, you must explicitly turn on the Native |
| 130 Client flag in Chrome as follows: | 165 Client flag in Chrome as follows: |
| 131 | 166 |
| 132 #. Type ``about:flags`` in the Chrome address bar. | 167 #. Type ``about:flags`` in the Chrome address bar. |
| 133 #. Scroll down to "Native Client". | 168 #. Scroll down to "Native Client". |
| 134 #. If the link below "Native Client" says "Disable", then Native Client is | 169 #. If the link below "Native Client" says "Disable", then Native Client is |
| 135 already enabled and you don't need to do anything else. | 170 already enabled and you don't need to do anything else. |
| 136 #. If the link below "Native Client" says "Enable": | 171 #. If the link below "Native Client" says "Enable": |
| 137 | 172 |
| 138 * Click the "Enable" link. | 173 * Click the "Enable" link. |
| 139 * Scroll down to the bottom of the page and click the "Relaunch Now" button. | 174 * Click the "Relaunch Now" button in the bottom of the screen. **Native |
| 140 **Native Client will not be enabled until you relaunch your browser**. All | 175 Client will not be enabled until you relaunch your browser**. All browser |
| 141 browser windows will restart when you relaunch Chrome. | 176 windows will restart when you relaunch Chrome. |
| 142 | 177 |
| 143 If you enable the Native Client flag and still can't run applications from | 178 If you enable the Native Client flag and still can't run applications from |
| 144 outside the Chrome Web Store, you may need to enable the Native Client plugin: | 179 outside the Chrome Web Store, you may need to enable the Native Client plugin: |
| 145 | 180 |
| 146 #. Type ``about:plugins`` in the Chrome address bar. | 181 #. Type ``about:plugins`` in the Chrome address bar. |
| 147 #. Scroll down to "Native Client". | 182 #. Scroll down to "Native Client". |
| 148 #. If the link below "Native Client" says "Enable", click the link to enable | 183 #. If the link below "Native Client" says "Enable", click the link to enable |
| 149 the Native Client plugin. You do not need to relaunch Chrome after enabling | 184 the Native Client plugin. You do not need to relaunch Chrome after enabling |
| 150 the Native Client plugin. | 185 the Native Client plugin. |
| 151 | 186 |
| 152 | |
| 153 .. _web_server: | 187 .. _web_server: |
| 154 | 188 |
| 155 Web server | 189 Web server |
| 156 ---------- | 190 ---------- |
| 157 | 191 |
| 158 For security reasons, Native Client applications must come from a server (you | 192 For security reasons, Native Client applications must come from a server (you |
| 159 can't simply drag HTML files into your browser). The Native Client SDK comes | 193 can't simply drag HTML files into your browser). The Native Client SDK comes |
| 160 with a lightweight Python web server that you can run to serve your application | 194 with a lightweight Python web server that you can run to serve your application |
| 161 locally. The server is included in the ``examples`` directory in the SDK | 195 locally. The server can be invoked from a Makefile. Here is how to run the |
| 162 bundles (e.g., ``pepper_28/examples``). Here is how to run the server: | 196 server: |
| 163 | 197 |
| 164 * Windows:: | 198 .. naclcode:: |
| 199 :prettyprint: 0 | |
| 165 | 200 |
| 166 cd examples | 201 $ cd examples |
| 167 httpd.cmd | 202 $ make serve |
| 168 | 203 |
| 169 * Mac, Linux:: | 204 By default, the server listens for requests on port 5103. You can use the server |
| 170 | 205 to run any application under the ``examples`` directory where you started the |
|
binji
2013/10/22 17:14:28
actually, some examples must be run with "make run
eliben
2013/10/22 18:01:51
Clarified
| |
| 171 cd examples | 206 server. For example, to run the ``flock`` example in the SDK, start the server |
| 172 python httpd.py | 207 and point your browser to http://localhost:5103/demo/flock/. |
| 173 | |
| 174 By default, the server listens for requests on port 5103. To use a different | |
| 175 port, simply specify a different port number, e.g.: ``python httpd.py 5104``. | |
| 176 | |
| 177 You can use the server to run any application under the ``examples`` directory | |
| 178 where you started the server. For example, to run the | |
| 179 ``hello_world_interactive`` example in the SDK, start the server as described | |
| 180 above and point your browser to | |
| 181 http://localhost:5103/hello_world_interactive/hello_world.html. | |
| 182 | 208 |
| 183 .. _metadata: | 209 .. _metadata: |
| 184 | 210 |
| 185 Chrome Web Store metadata | 211 Chrome Web Store metadata |
| 186 ~~~~~~~~~~~~~~~~~~~~~~~~~ | 212 ~~~~~~~~~~~~~~~~~~~~~~~~~ |
| 187 | 213 |
| 188 Applications published in the Chrome Web Store must be accompanied by CWS | 214 Applications published in the Chrome Web Store must be accompanied by CWS |
| 189 metadata—specifically, a Chrome Web Store manifest file named | 215 metadata; specifically, a Chrome Web Store manifest file named |
| 190 ``manifest.json``, and at least one icon. | 216 ``manifest.json``, and at least one icon. |
| 191 | 217 |
| 192 Below is an example of a CWS manifest file for a **hosted application**:: | 218 Below is an example of a CWS manifest file for a **hosted application**: |
| 219 | |
| 220 .. naclcode:: | |
| 193 | 221 |
| 194 { | 222 { |
| 195 "name": "My NaCl App", | 223 "name": "My NaCl App", |
| 196 "description": "Simple game implemented using Native Client", | 224 "description": "Simple game implemented using Native Client", |
| 197 "version": "0.1", | 225 "version": "0.1", |
| 198 "icons": { | 226 "icons": { |
| 199 "128": "nacl_icon_128.jpg" | 227 "128": "nacl_icon_128.jpg" |
| 200 }, | 228 }, |
| 201 "app": { | 229 "app": { |
| 202 "urls": [ | 230 "urls": [ |
| 203 "http://mysubdomain.example.com/" | 231 "http://mysubdomain.example.com/" |
| 204 ], | 232 ], |
| 205 "launch": { | 233 "launch": { |
| 206 "web_url": "http://mysubdomain.example.com/my_app_main_page.html" | 234 "web_url": "http://mysubdomain.example.com/my_app_main_page.html" |
| 207 } | 235 } |
| 208 } | 236 } |
| 209 } | 237 } |
| 210 | 238 |
| 211 | 239 |
| 212 For a **packaged application**, you can omit the urls field, and replace the | 240 For a **packaged application**, you can omit the urls field, and replace the |
| 213 ``web_url`` field with a ``local_path`` field, as shown below:: | 241 ``web_url`` field with a ``local_path`` field, as shown below: |
| 242 | |
| 243 .. naclcode:: | |
| 214 | 244 |
| 215 { | 245 { |
| 216 "name": "My NaCl App", | 246 "name": "My NaCl App", |
| 217 "description": "Simple game implemented using Native Client", | 247 "description": "Simple game implemented using Native Client", |
| 218 "version": "0.1", | 248 "version": "0.1", |
| 219 "icons": { | 249 "icons": { |
| 220 "16": "nacl_icon_16.jpg", | 250 "16": "nacl_icon_16.jpg", |
| 221 "128": "nacl_icon_128.jpg" | 251 "128": "nacl_icon_128.jpg" |
| 222 }, | 252 }, |
| 223 "app": { | 253 "app": { |
| 224 "launch": { | 254 "launch": { |
| 225 "local_path": "my_app_main_page.html" | 255 "local_path": "my_app_main_page.html" |
| 226 } | 256 } |
| 227 } | 257 } |
| 228 } | 258 } |
| 229 | 259 |
| 230 You must put the ``manifest.json`` file in the same directory as your | 260 You must put the ``manifest.json`` file in the same directory as your |
| 231 application's main HTML page. | 261 application's main HTML page. |
| 232 | 262 |
| 233 If you don't have icons for your application, you can use the following icons | 263 If you don't have icons for your application, you can use the following icons as |
| 234 as placeholders: nacl_icon_16.jpg and nacl_icon_128.jpg. Put the icons in the | 264 placeholders: |
| 235 same directory as the CWS manifest file. | |
| 236 | 265 |
| 237 For more information about CWS manifest files and application icons, see: | 266 |ICON16| |
| 267 | |
| 268 |ICON128| | |
| 269 | |
| 270 .. |ICON16| image:: /images/nacl_icon_16.jpg | |
|
binji
2013/10/22 17:14:28
these icons don't look quite right to me. Rectangu
eliben
2013/10/22 18:01:51
Done.
| |
| 271 .. |ICON128| image:: /images/nacl_icon_128.jpg | |
| 272 | |
| 273 Put the icons in the same directory as the CWS manifest file. For more | |
| 274 information about CWS manifest files and application icons, see: | |
| 238 | 275 |
| 239 * `Chrome Web Store Tutorial: Getting Started | 276 * `Chrome Web Store Tutorial: Getting Started |
| 240 <https://developers.google.com/chrome/web-store/docs/get_started_simple>`_ | 277 <https://developers.google.com/chrome/web-store/docs/get_started_simple>`_ |
| 241 * `Chrome Web Store Formats: Manifest Files | 278 * `Chrome Web Store Formats: Manifest Files |
| 242 <http://code.google.com/chrome/extensions/manifest.html>`_ | 279 <http://code.google.com/chrome/extensions/manifest.html>`_ |
| 243 | 280 |
| 244 Technique 1: Local server | 281 Technique 1: Local server |
| 245 ========================= | 282 ========================= |
| 246 | 283 |
| 247 To run your application from a local server: | 284 To run your application from a local server: |
| 248 | 285 |
| 249 * Enable the :ref:`Native Client flag <flag>` in Chrome. | 286 * Enable the :ref:`Native Client flag <flag>` in Chrome. |
| 250 * Start a :ref:`local web server <web_server>`. | 287 * Start a :ref:`local web server <web_server>`. |
| 251 * Put your application under the examples directory in the SDK bundle you are | 288 * Put your application under the examples directory in the SDK bundle you are |
| 252 using (e.g., in the directory ``pepper_28/examples/my_app``). | 289 using (e.g., in the directory ``pepper_31/examples/my_app``). |
| 253 * Access your application on the local server by typing the location of its | 290 * Access your application on the local server by typing the location of its |
| 254 HTML file in Chrome, e.g.: | 291 HTML file in Chrome, e.g.: |
| 255 ``http://localhost:5103/my_app/my_app_main_page.html``. | 292 ``http://localhost:5103/my_app/my_app_main_page.html``. |
| 256 | 293 |
| 257 .. Note:: | 294 .. Note:: |
| 258 :class: note | 295 :class: note |
| 259 | 296 |
| 260 **Note:** You don't have to use a local web server---you can use another | 297 **Note:** You don't have to use a local web server---you can use another |
| 261 server if you already have one running. You must still enable the Native | 298 server if you already have one running. You must still enable the Native |
| 262 Client flag in order to run your application from your server. | 299 Client flag in order to run your application from the server. |
| 263 | 300 |
| 264 Technique 2: Packaged application loaded as an unpacked extension | 301 Technique 2: Packaged application loaded as an unpacked extension |
| 265 ================================================================= | 302 ================================================================= |
| 266 | 303 |
| 267 For development purposes, Chrome lets you load a packaged application as an | 304 For development purposes, Chrome lets you load a packaged application as an |
| 268 unpacked extension. To load and run your packaged application as an unpacked | 305 unpacked extension. To load and run your packaged application as an unpacked |
| 269 extension: | 306 extension: |
| 270 | 307 |
| 271 #. Create a Chrome Web Store manifest file and one or more icons for your | 308 #. Create a Chrome Web Store manifest file and one or more icons for your |
| 272 application. | 309 application. |
| (...skipping 20 matching lines...) Expand all Loading... | |
| 293 Click the icon to launch the app. | 330 Click the icon to launch the app. |
| 294 | 331 |
| 295 For additional information about how to create CWS metadata and load your | 332 For additional information about how to create CWS metadata and load your |
| 296 application into Chrome (including troubleshooting information), see the | 333 application into Chrome (including troubleshooting information), see the |
| 297 `Chrome Web Store Tutorial: Getting Started | 334 `Chrome Web Store Tutorial: Getting Started |
| 298 <https://developers.google.com/chrome/web-store/docs/get_started_simple>`_. | 335 <https://developers.google.com/chrome/web-store/docs/get_started_simple>`_. |
| 299 | 336 |
| 300 Technique 3: Hosted application loaded as an unpacked extension | 337 Technique 3: Hosted application loaded as an unpacked extension |
| 301 =============================================================== | 338 =============================================================== |
| 302 | 339 |
| 303 | |
| 304 For development purposes, Chrome lets you load a hosted application as an | 340 For development purposes, Chrome lets you load a hosted application as an |
| 305 unpacked extension. To load and run your hosted application as an unpacked | 341 unpacked extension. To load and run your hosted application as an unpacked |
| 306 extension: | 342 extension: |
| 307 | 343 |
| 308 #. Start a web server to serve your application. | 344 #. Start a web server to serve your application. |
| 309 | 345 |
| 310 * You can use the :ref:`local web server <web_server>` included with the | 346 * You can use the :ref:`local web server <web_server>` included with the |
| 311 Native Client SDK if you want. | 347 Native Client SDK if you want. |
| 312 #. Upload your application (.html, .nmf, .nexe, .css, .js, image files, etc.) | 348 #. Upload your application (.html, .nmf, .nexe, .css, .js, image files, etc.) |
| 313 to the server. | 349 to the server. |
| 314 | 350 |
| 315 * If you're using the local server included with the Native Client SDK, | 351 * If you're using the local server included with the Native Client SDK, |
| 316 simply put your application under the ``examples`` directory in the SDK | 352 simply put your application under the ``examples`` directory in the SDK |
| 317 bundle you are using (e.g., in the directory | 353 bundle you are using (e.g., in the directory |
| 318 ``pepper_28/examples/my_app``). | 354 ``pepper_31/examples/my_app``). |
| 319 #. Create a Chrome Web Store manifest file and one or more icons for your | 355 #. Create a Chrome Web Store manifest file and one or more icons for your |
| 320 application. | 356 application. |
| 321 | 357 |
| 322 * Follow the instructions above under :ref:`Chrome Web Store metadata | 358 * Follow the instructions above under :ref:`Chrome Web Store metadata |
| 323 <metadata>` to create these files. | 359 <metadata>` to create these files. |
| 324 * In the CWS manifest file, the ``web_url`` field should specify the | 360 * In the CWS manifest file, the ``web_url`` field should specify the |
| 325 location of your application on your server. If you're using the local | 361 location of your application on your server. If you're using the local |
| 326 server included with the SDK, the ``web_url`` field should look something | 362 server included with the SDK, the ``web_url`` field should look something |
| 327 like ``http://localhost:5103/my_app/my_app_main_page.html``. | 363 like ``http://localhost:5103/my_app/my_app_main_page.html``. |
| 328 #. Put the CWS manifest file and the application icon(s) in the same directory | 364 #. Put the CWS manifest file and the application icon(s) in the same directory |
| (...skipping 24 matching lines...) Expand all Loading... | |
| 353 When you're ready to test your application more broadly, you can upload the | 389 When you're ready to test your application more broadly, you can upload the |
| 354 application to the Chrome Web Store and let some trusted testers run it. Here | 390 application to the Chrome Web Store and let some trusted testers run it. Here |
| 355 is how to do so: | 391 is how to do so: |
| 356 | 392 |
| 357 #. Create the Chrome Web Store metadata required to publish your application: | 393 #. Create the Chrome Web Store metadata required to publish your application: |
| 358 | 394 |
| 359 * First, create a Chrome Web Store manifest file and one or more icons for | 395 * First, create a Chrome Web Store manifest file and one or more icons for |
| 360 your application, as described above under :ref:`Chrome Web Store metadata | 396 your application, as described above under :ref:`Chrome Web Store metadata |
| 361 <metadata>`. Note that packaged applications must have at least two icons | 397 <metadata>`. Note that packaged applications must have at least two icons |
| 362 (a 16x16 icon and a 128x128 icon). | 398 (a 16x16 icon and a 128x128 icon). |
| 363 * You also need to create the following additional assets before you can publ ish your application: | 399 * You also need to create the following additional assets before you can |
| 400 publish your application: | |
| 364 | 401 |
| 365 * a screenshot (size must be 640x400 or 1280x800) | 402 * a screenshot (size must be 640x400 or 1280x800) |
| 366 * a promotional image called a "small tile" (size must be 440x280) | 403 * a promotional image called a "small tile" (size must be 440x280) |
| 367 | 404 |
| 368 #. For a **packaged application**: | 405 #. For a **packaged application**: |
| 369 | 406 |
| 370 * Create a zip file with the CWS manifest file, the application icons, and | 407 * Create a zip file with the CWS manifest file, the application icons, and |
| 371 all your application files (.html, .nmf, .nexe, .css, .js, image files, | 408 all your application files (.html, .nmf, .nexe, .css, .js, image files, |
| 372 etc.) | 409 etc.) |
| 373 | 410 |
| (...skipping 50 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 424 To publish an application to the world after publishing it to test accounts, | 461 To publish an application to the world after publishing it to test accounts, |
| 425 you must first unpublish the application. For additional information see | 462 you must first unpublish the application. For additional information see |
| 426 `Publishing Your App | 463 `Publishing Your App |
| 427 <https://developers.google.com/chrome/web-store/docs/publish>`_, and in | 464 <https://developers.google.com/chrome/web-store/docs/publish>`_, and in |
| 428 particular `Publishing to test accounts | 465 particular `Publishing to test accounts |
| 429 <https://developers.google.com/chrome/web-store/docs/publish#testaccounts>`_. | 466 <https://developers.google.com/chrome/web-store/docs/publish#testaccounts>`_. |
| 430 | 467 |
| 431 .. |menu-icon| image:: /images/menu-icon.png | 468 .. |menu-icon| image:: /images/menu-icon.png |
| 432 .. |extensions| image:: /images/extensions-management.png | 469 .. |extensions| image:: /images/extensions-management.png |
| 433 .. |new-tab-apps| image:: /images/new-tab-apps.png | 470 .. |new-tab-apps| image:: /images/new-tab-apps.png |
| OLD | NEW |