Index: native_client_sdk/src/doc/_developer.chrome.com_generated/devguide/devcycle/running.html |
diff --git a/native_client_sdk/src/doc/_developer.chrome.com_generated/devguide/devcycle/running.html b/native_client_sdk/src/doc/_developer.chrome.com_generated/devguide/devcycle/running.html |
new file mode 100644 |
index 0000000000000000000000000000000000000000..2327329b3799cb96f7ca7df065cea31184e0338d |
--- /dev/null |
+++ b/native_client_sdk/src/doc/_developer.chrome.com_generated/devguide/devcycle/running.html |
@@ -0,0 +1,441 @@ |
+{{+bindTo:partials.standard_nacl_article}} |
+ |
+<section id="running"> |
+<span id="devcycle-running"></span><h1 id="running"><span id="devcycle-running"></span>Running</h1> |
+<div class="contents local topic" id="contents"> |
+<ul class="small-gap"> |
+<li><a class="reference internal" href="#introduction" id="id5">Introduction</a></li> |
+<li><a class="reference internal" href="#portable-native-client-pnacl-applications" id="id6">Portable Native Client (PNaCl) applications</a></li> |
+<li><a class="reference internal" href="#native-client-applications-and-the-chrome-web-store" id="id7">Native Client applications and the Chrome Web Store</a></li> |
+<li><p class="first"><a class="reference internal" href="#prerequisites" id="id8">Prerequisites</a></p> |
+<ul class="small-gap"> |
+<li><a class="reference internal" href="#browser-and-pepper-versions" id="id9">Browser and Pepper versions</a></li> |
+<li><a class="reference internal" href="#chrome-cache" id="id10">Chrome Cache</a></li> |
+</ul> |
+</li> |
+<li><p class="first"><a class="reference internal" href="#requirements" id="id11">Requirements</a></p> |
+<ul class="small-gap"> |
+<li><a class="reference internal" href="#native-client-flag" id="id12">Native Client flag</a></li> |
+<li><a class="reference internal" href="#web-server" id="id13">Web server</a></li> |
+</ul> |
+</li> |
+<li><a class="reference internal" href="#technique-1-local-server" id="id14">Technique 1: Local server</a></li> |
+<li><a class="reference internal" href="#technique-2-packaged-application-loaded-as-an-unpacked-extension" id="id15">Technique 2: Packaged application loaded as an unpacked extension</a></li> |
+<li><a class="reference internal" href="#technique-3-hosted-application-loaded-as-an-unpacked-extension" id="id16">Technique 3: Hosted application loaded as an unpacked extension</a></li> |
+<li><a class="reference internal" href="#technique-4-chrome-web-store-application-with-trusted-testers" id="id17">Technique 4: Chrome Web Store application with trusted testers</a></li> |
+</ul> |
+</div> |
+<section id="introduction"> |
+<h2 id="introduction">Introduction</h2> |
+<p>This document describes how to run Native Client applications during |
+development.</p> |
+<p>The workflow for PNaCl applications is straightfoward and will only be discussed |
+briefly. For NaCl applications distributed through the web-store, there is a |
+number of options and these will be discussed more in-depth.</p> |
+</section><section id="portable-native-client-pnacl-applications"> |
+<h2 id="portable-native-client-pnacl-applications">Portable Native Client (PNaCl) applications</h2> |
+<p>Running PNaCl applications from the open web is enabled in Chrome version 31 and |
+above; therefore, no special provisions are required to run and test such |
+applications locally. An application that uses a PNaCl module can be tested |
+similarly to any other web application that only consists of HTML, CSS and |
+JavaScript.</p> |
+<p>To better simulate a production environment, it’s recommended to start a local |
+web server to serve the application’s files. The NaCl SDK comes with a simple |
+local server built in, and the process of using it to run PNaCl applications is |
+described in <a class="reference internal" href="/native-client/devguide/tutorial/tutorial-part1.html#tutorial-step-2"><em>the tutorial</em></a>.</p> |
+</section><section id="native-client-applications-and-the-chrome-web-store"> |
+<h2 id="native-client-applications-and-the-chrome-web-store">Native Client applications and the Chrome Web Store</h2> |
+<p>Before reading about how to run Native Client applications, it’s important to |
+understand a little bit about how Native Client applications are distributed. |
+As explained in <a class="reference internal" href="/native-client/devguide/distributing.html"><em>Distributing Your Application</em></a>, Native |
+Client applications must currently be distributed through the <strong>Chrome Web |
+Store (CWS)</strong>. Applications in the CWS are one of three types:</p> |
+<ul class="small-gap"> |
+<li>A <strong>hosted application</strong> is an application that you host on a server of your |
+choice. To distribute an application as a hosted application, you upload |
+application metadata to the CWS.</li> |
+<li>A <strong>packaged application</strong> is an application that is hosted in the CWS and |
+downloaded to the user’s machine. To distribute an application as a packaged |
+application, you upload the entire application, including all application |
+assets and metadata, to the CWS.</li> |
+<li>An <strong>extension</strong> is a packaged application that has a tiny UI component |
+(extensions are typically used to extend the functionality of the Chrome |
+browser). To distribute an application as an extension, you upload the entire |
+application, including all application assets and metadata, to the CWS.</li> |
+</ul> |
+<p>It’s clearly not convenient to package and upload files to the Chrome Web Store |
+every time you want to run a new build of your application, but there are four |
+alternative techniques you can use to run the application during development. |
+These techniques are listed in the following table and described in detail |
+below. Each technique has certain requirements (NaCl flag, web server, and/or |
+CWS metadata); these are explained in the <a class="reference internal" href="#requirements"><em>Requirements</em></a> |
+section below.</p> |
+<table border="1" class="docutils"> |
+<colgroup> |
+</colgroup> |
+<thead valign="bottom"> |
+<tr class="row-odd"><th class="head">#</th> |
+<th class="head">Technique</th> |
+<th class="head">Requires NaCl flag</th> |
+<th class="head">Requires Web Server</th> |
+<th class="head">Requires CWS Metadata</th> |
+<th class="head">Description</th> |
+</tr> |
+</thead> |
+<tbody valign="top"> |
+<tr class="row-even"><td>1</td> |
+<td>Local server</td> |
+<td><img alt="CHK" src="/native-client/images/check-red.png" /></td> |
+<td><img alt="CHK" src="/native-client/images/check-red.png" /></td> |
+<td> </td> |
+<td>Run a local server and simply point your browser to your application on |
+the server.</td> |
+</tr> |
+<tr class="row-odd"><td>2</td> |
+<td>Packaged application loaded as an unpacked extension</td> |
+<td> </td> |
+<td> </td> |
+<td><img alt="CHK" src="/native-client/images/check-red.png" /></td> |
+<td>Load your packaged application into Chrome as an unpacked extension and |
+run it without a server. An unpacked extension is simply an application |
+whose source and metadata files are located in a plain (unzipped) folder |
+on your development machine. The CWS manifest file (explained below) must |
+specify a <code>local_path</code> field.</td> |
+</tr> |
+<tr class="row-even"><td>3</td> |
+<td>Hosted application loaded as an unpacked extension</td> |
+<td> </td> |
+<td><img alt="CHK" src="/native-client/images/check-red.png" /></td> |
+<td><img alt="CHK" src="/native-client/images/check-red.png" /></td> |
+<td>Load your hosted application into Chrome as an unpacked extension and run |
+it from a server (which can be a local server). The CWS manifest file |
+must specify a <code>web_url</code> field.</td> |
+</tr> |
+<tr class="row-odd"><td>4</td> |
+<td>CWS application with untrusted testers</td> |
+<td> </td> |
+<td> </td> |
+<td><img alt="CHK" src="/native-client/images/check-red.png" /></td> |
+<td>This is the standard technique for distributing a packaged or hosted |
+application in the CWS, but you can limit the application to a few |
+trusted testers. This technique requires a server if your application is |
+a hosted application.</td> |
+</tr> |
+</tbody> |
+</table> |
+<p>Which of the above techniques you use to run your application during development |
+is largely a matter of personal preference (i.e., would you rather start a local |
+server or create CWS metadata?). As a general rule, once you have an idea of how |
+you plan to distribute your application, you should use the corresponding |
+technique during development. Choosing a distribution option depends on a number |
+of factors such as application size, application start-up time, hosting costs, |
+offline functionality, etc. (see <a class="reference internal" href="/native-client/devguide/distributing.html"><em>Distributing Your Application</em></a> for details), but you don’t need to make a decision about how |
+to distribute your application at the outset.</p> |
+<p>The next two sections of this document describe a couple of prerequisites for |
+running applications during development, and explain the three requirements |
+listed in the table above (NaCl flag, web server, and CWS metadata). The |
+subsequent sections of the document provide instructions for how to use each of |
+the four techniques.</p> |
+</section><section id="prerequisites"> |
+<h2 id="prerequisites">Prerequisites</h2> |
+<section id="browser-and-pepper-versions"> |
+<h3 id="browser-and-pepper-versions">Browser and Pepper versions</h3> |
+<p>Before you run a new build of your application, make sure that you’re using the |
+correct version of Chrome. Each version of Chrome supports a corresponding |
+version of the Pepper API. You (and your users) must use a version of Chrome |
+that is equal to or higher than the version of the Pepper API that your |
+application uses. For example, if you compiled your application using the |
+<code>pepper_31</code> bundle, your application uses the Pepper 31 API, and you must run |
+the application in Chrome 31 or higher. To check which version of Chrome you’re |
+using, type <code>about:version</code> in the Chrome address bar.</p> |
+</section><section id="chrome-cache"> |
+<span id="cache"></span><h3 id="chrome-cache"><span id="cache"></span>Chrome Cache</h3> |
+<p>Chrome caches resources aggressively. You should disable Chrome’s cache whenever |
+you are developing a Native Client application in order to make sure Chrome |
+loads new versions of your application. Follow the instructions <a class="reference internal" href="/native-client/devguide/tutorial/tutorial-part1.html#tutorial-step-3"><em>in the |
+tutorial</em></a>.</p> |
+</section></section><section id="requirements"> |
+<span id="id1"></span><h2 id="requirements"><span id="id1"></span>Requirements</h2> |
+<section id="native-client-flag"> |
+<span id="flag"></span><h3 id="native-client-flag"><span id="flag"></span>Native Client flag</h3> |
+<p>Native Client is automatically enabled for applications that are installed from |
+the Chrome Web Store. To enable Native Client for applications that are not |
+installed from the Chrome Web Store, you must explicitly turn on the Native |
+Client flag in Chrome as follows:</p> |
+<ol class="arabic simple"> |
+<li>Type <code>about:flags</code> in the Chrome address bar.</li> |
+<li>Scroll down to “Native Client”.</li> |
+<li>If the link below “Native Client” says “Disable”, then Native Client is |
+already enabled and you don’t need to do anything else.</li> |
+<li>If the link below “Native Client” says “Enable”:<ul class="small-gap"> |
+<li>Click the “Enable” link.</li> |
+<li>Click the “Relaunch Now” button in the bottom of the screen. <strong>Native |
+Client will not be enabled until you relaunch your browser</strong>. All browser |
+windows will restart when you relaunch Chrome.</li> |
+</ul> |
+</li> |
+</ol> |
+<p>If you enable the Native Client flag and still can’t run applications from |
+outside the Chrome Web Store, you may need to enable the Native Client plugin:</p> |
+<ol class="arabic simple"> |
+<li>Type <code>about:plugins</code> in the Chrome address bar.</li> |
+<li>Scroll down to “Native Client”.</li> |
+<li>If the link below “Native Client” says “Enable”, click the link to enable |
+the Native Client plugin. You do not need to relaunch Chrome after enabling |
+the Native Client plugin.</li> |
+</ol> |
+</section><section id="web-server"> |
+<span id="id2"></span><h3 id="web-server"><span id="id2"></span>Web server</h3> |
+<p>For security reasons, Native Client applications must come from a server (you |
+can’t simply drag HTML files into your browser). The Native Client SDK comes |
+with a lightweight Python web server that you can run to serve your application |
+locally. The server can be invoked from a Makefile. Here is how to run the |
+server:</p> |
+<pre> |
+$ cd examples |
+$ make serve |
+</pre> |
+<p>By default, the server listens for requests on port 5103. You can use the server |
+to run most applications under the <code>examples</code> directory where you started the |
+server. For example, to run the <code>flock</code> example in the SDK, start the server |
+and point your browser to <a class="reference external" href="http://localhost:5103/demo/flock/">http://localhost:5103/demo/flock/</a>.</p> |
+<p>Some of the applications need special flags to Chrome, and must be run with the |
+<code>make run</code> command. See <a class="reference internal" href="/native-client/sdk/examples.html#id1"><em>Run the SDK examples</em></a> for more details.</p> |
+<section id="chrome-web-store-metadata"> |
+<span id="metadata"></span><h4 id="chrome-web-store-metadata"><span id="metadata"></span>Chrome Web Store metadata</h4> |
+<p>Applications published in the Chrome Web Store must be accompanied by CWS |
+metadata; specifically, a Chrome Web Store manifest file named |
+<code>manifest.json</code>, and at least one icon.</p> |
+<p>Below is an example of a CWS manifest file for a <strong>hosted application</strong>:</p> |
+<pre class="prettyprint"> |
+{ |
+ "name": "My NaCl App", |
+ "description": "Simple game implemented using Native Client", |
+ "version": "0.1", |
+ "icons": { |
+ "128": "icon128.png" |
+ }, |
+ "app": { |
+ "urls": [ |
+ "http://mysubdomain.example.com/" |
+ ], |
+ "launch": { |
+ "web_url": "http://mysubdomain.example.com/my_app_main_page.html" |
+ } |
+ } |
+} |
+</pre> |
+<p>For a <strong>packaged application</strong>, you can omit the urls field, and replace the |
+<code>web_url</code> field with a <code>local_path</code> field, as shown below:</p> |
+<pre class="prettyprint"> |
+{ |
+ "name": "My NaCl App", |
+ "description": "Simple game implemented using Native Client", |
+ "version": "0.1", |
+ "icons": { |
+ "16": "icon16.png", |
+ "128": "icon128.png" |
+ }, |
+ "app": { |
+ "launch": { |
+ "local_path": "my_app_main_page.html" |
+ } |
+ } |
+} |
+</pre> |
+<p>You must put the <code>manifest.json</code> file in the same directory as your |
+application’s main HTML page.</p> |
+<p>If you don’t have icons for your application, you can use the following icons as |
+placeholders:</p> |
+<p><img alt="ICON16" src="/native-client/images/icon16.png" /></p> |
+<p><img alt="ICON128" src="/native-client/images/icon128.png" /></p> |
+<p>Put the icons in the same directory as the CWS manifest file. For more |
+information about CWS manifest files and application icons, see:</p> |
+<ul class="small-gap"> |
+<li><a class="reference external" href="https://developers.google.com/chrome/web-store/docs/get_started_simple">Chrome Web Store Tutorial: Getting Started</a></li> |
+<li><a class="reference external" href="http://code.google.com/chrome/extensions/manifest.html">Chrome Web Store Formats: Manifest Files</a></li> |
+</ul> |
+</section></section></section><section id="technique-1-local-server"> |
+<h2 id="technique-1-local-server">Technique 1: Local server</h2> |
+<p>To run your application from a local server:</p> |
+<ul class="small-gap"> |
+<li>Enable the <a class="reference internal" href="#flag"><em>Native Client flag</em></a> in Chrome.</li> |
+<li>Start a <a class="reference internal" href="#web-server"><em>local web server</em></a>.</li> |
+<li>Put your application under the examples directory in the SDK bundle you are |
+using (e.g., in the directory <code>pepper_31/examples/my_app</code>).</li> |
+<li>Access your application on the local server by typing the location of its |
+HTML file in Chrome, e.g.: |
+<code>http://localhost:5103/my_app/my_app_main_page.html</code>.</li> |
+</ul> |
+<aside class="note"> |
+<strong>Note:</strong> You don’t have to use a local web server—you can use another |
+server if you already have one running. You must still enable the Native |
+Client flag in order to run your application from the server. |
+</aside> |
+</section><section id="technique-2-packaged-application-loaded-as-an-unpacked-extension"> |
+<h2 id="technique-2-packaged-application-loaded-as-an-unpacked-extension">Technique 2: Packaged application loaded as an unpacked extension</h2> |
+<p>For development purposes, Chrome lets you load a packaged application as an |
+unpacked extension. To load and run your packaged application as an unpacked |
+extension:</p> |
+<ol class="arabic simple"> |
+<li>Create a Chrome Web Store manifest file and one or more icons for your |
+application.<ul class="small-gap"> |
+<li>Follow the instructions above under Chrome Web Store metadata to create |
+these files.</li> |
+<li>Note that the CWS manifest file should contain the <code>local_path</code> field |
+rather than the <code>web_url</code> field.</li> |
+</ul> |
+</li> |
+<li>Put the CWS manifest file and the application icon(s) in the same directory |
+as your application’s main HTML page.</li> |
+<li>Load the application as an unpacked extension in Chrome:<ul class="small-gap"> |
+<li>Bring up the extensions management page in Chrome by clicking the menu |
+icon <img alt="menu-icon" src="/native-client/images/menu-icon.png" /> and choosing <strong>Tools > Extensions</strong>.</li> |
+<li>Check the box for <strong>Developer mode</strong> and then click the <strong>Load unpacked |
+extension</strong> button: |
+<img alt="extensions" src="/native-client/images/extensions-management.png" /></li> |
+<li>In the file dialog that appears, select your application directory. Unless |
+you get an error dialog, you’ve now installed your app in Chrome.</li> |
+</ul> |
+</li> |
+<li>Open a new tab in Chrome and click the <strong>Apps</strong> link at the bottom of the |
+page to show your installed apps: |
+<img alt="new-tab-apps" src="/native-client/images/new-tab-apps.png" /></li> |
+<li>The icon for your newly installed app should appear on the New Tab page. |
+Click the icon to launch the app.</li> |
+</ol> |
+<p>For additional information about how to create CWS metadata and load your |
+application into Chrome (including troubleshooting information), see the |
+<a class="reference external" href="https://developers.google.com/chrome/web-store/docs/get_started_simple">Chrome Web Store Tutorial: Getting Started</a>.</p> |
+<p>See also <a class="reference internal" href="/native-client/sdk/examples.html#run-sdk-examples-as-packaged"><em>Run the SDK examples as packaged apps</em></a>.</p> |
+</section><section id="technique-3-hosted-application-loaded-as-an-unpacked-extension"> |
+<h2 id="technique-3-hosted-application-loaded-as-an-unpacked-extension">Technique 3: Hosted application loaded as an unpacked extension</h2> |
+<p>For development purposes, Chrome lets you load a hosted application as an |
+unpacked extension. To load and run your hosted application as an unpacked |
+extension:</p> |
+<ol class="arabic simple"> |
+<li>Start a web server to serve your application.<ul class="small-gap"> |
+<li>You can use the <a class="reference internal" href="#web-server"><em>local web server</em></a> included with the |
+Native Client SDK if you want.</li> |
+</ul> |
+</li> |
+<li>Upload your application (.html, .nmf, .nexe, .css, .js, image files, etc.) |
+to the server.<ul class="small-gap"> |
+<li>If you’re using the local server included with the Native Client SDK, |
+simply put your application under the <code>examples</code> directory in the SDK |
+bundle you are using (e.g., in the directory |
+<code>pepper_31/examples/my_app</code>).</li> |
+</ul> |
+</li> |
+<li>Create a Chrome Web Store manifest file and one or more icons for your |
+application.<ul class="small-gap"> |
+<li>Follow the instructions above under <a class="reference internal" href="#metadata"><em>Chrome Web Store metadata</em></a> to create these files.</li> |
+<li>In the CWS manifest file, the <code>web_url</code> field should specify the |
+location of your application on your server. If you’re using the local |
+server included with the SDK, the <code>web_url</code> field should look something |
+like <code>http://localhost:5103/my_app/my_app_main_page.html</code>.</li> |
+</ul> |
+</li> |
+<li>Put the CWS manifest file and the application icon(s) in the same directory |
+as your application’s main HTML page.</li> |
+<li>Load the application as an unpacked extension in Chrome:<ul class="small-gap"> |
+<li>Bring up the extensions management page in Chrome by clicking the menu |
+icon <img alt="menu-icon" src="/native-client/images/menu-icon.png" /> and choosing <strong>Tools > Extensions</strong>.</li> |
+<li>Check the box for <strong>Developer mode</strong> and then click the <strong>Load unpacked |
+extension</strong> button: |
+<img alt="extensions" src="/native-client/images/extensions-management.png" /></li> |
+<li>In the file dialog that appears, select your application directory. Unless |
+you get an error dialog, you’ve now installed your app in Chrome.</li> |
+</ul> |
+</li> |
+<li>Open a new tab in Chrome and click the <strong>Apps</strong> link at the bottom of the |
+page to show your installed apps: |
+<img alt="new-tab-apps" src="/native-client/images/new-tab-apps.png" /></li> |
+<li>The icon for your newly installed app should appear on the New Tab page. |
+Click the icon to launch the app.</li> |
+</ol> |
+<p>For additional information about how to create CWS metadata and load your |
+application into Chrome (including troubleshooting information), see the |
+<a class="reference external" href="https://developers.google.com/chrome/web-store/docs/get_started_simple">Chrome Web Store Tutorial: Getting Started</a>.</p> |
+</section><section id="technique-4-chrome-web-store-application-with-trusted-testers"> |
+<h2 id="technique-4-chrome-web-store-application-with-trusted-testers">Technique 4: Chrome Web Store application with trusted testers</h2> |
+<p>When you’re ready to test your application more broadly, you can upload the |
+application to the Chrome Web Store and let some trusted testers run it. Here |
+is how to do so:</p> |
+<ol class="arabic simple"> |
+<li>Create the Chrome Web Store metadata required to publish your application:<ul class="small-gap"> |
+<li>First, create a Chrome Web Store manifest file and one or more icons for |
+your application, as described above under <a class="reference internal" href="#metadata"><em>Chrome Web Store metadata</em></a>. Note that packaged applications must have at least two icons |
+(a 16x16 icon and a 128x128 icon).</li> |
+<li>You also need to create the following additional assets before you can |
+publish your application:<ul class="small-gap"> |
+<li>a screenshot (size must be 640x400 or 1280x800)</li> |
+<li>a promotional image called a “small tile” (size must be 440x280)</li> |
+</ul> |
+</li> |
+</ul> |
+</li> |
+<li>For a <strong>packaged application</strong>:<ul class="small-gap"> |
+<li>Create a zip file with the CWS manifest file, the application icons, and |
+all your application files (.html, .nmf, .nexe, .css, .js, image files, |
+etc.)</li> |
+</ul> |
+</li> |
+<li>For a <strong>hosted application</strong>:<ul class="small-gap"> |
+<li>Create a zip file with the CWS manifest file and the application icon(s).</li> |
+<li>Upload the application files (.html, .nmf, .nexe, .css, .js, image files, |
+etc.) to the server on which the application is being hosted.</li> |
+<li>Use <a class="reference external" href="http://www.google.com/webmasters/tools/">Google Webmaster Tools</a> to |
+verify ownership of the web site on which the application runs.</li> |
+</ul> |
+</li> |
+<li>Log in to the <a class="reference external" href="https://chrome.google.com/webstore/developer/dashboard">Chrome Web Store Developer Dashboard</a>.<ul class="small-gap"> |
+<li>The first time you log in, click the “Add new item” button to display the |
+Google Chrome Web Store Developer Agreement. Review and accept the |
+agreement and then return to the <a class="reference external" href="https://chrome.google.com/webstore/developer/dashboard">Developer Dashboard</a>.</li> |
+</ul> |
+</li> |
+<li>Click “Edit your tester accounts” at the bottom of the Developer Dashboard.</li> |
+<li>Enter a series of email addresses for your testers (separated by commas or |
+whitespace), and click the “Save Changes” button.</li> |
+<li>Click the “Add new item” button to add your application to the Chrome Web |
+Store.</li> |
+<li>Click the “Choose file” button and select the zip file you created earlier.</li> |
+<li>Click the “Upload” button; this uploads your zip file and opens the “Edit |
+item” page.</li> |
+<li>Edit the following required fields on the “Edit item” page:<ul class="small-gap"> |
+<li>Upload an application icon.</li> |
+<li>Upload a screenshot.</li> |
+<li>Upload a small tile.</li> |
+<li>Select a category for your application (accounting application, action |
+game, etc.).</li> |
+<li>Select a language for your application.</li> |
+</ul> |
+</li> |
+<li>If you are an owner or manager of a Google Group, you can select that group |
+in the “Trusted testers” field.<ul class="small-gap"> |
+<li>You may want to create a Google Group specifically for your testers. When |
+you add a group to the “Trusted testers” field, all group members will be |
+able to test the application, in addition to the individuals you added to |
+the “trusted tester accounts” field on the Developer Dashboard.</li> |
+</ul> |
+</li> |
+<li>Click the “Publish to test accounts” button at the bottom of the page and |
+click “OK”.</li> |
+<li>A page comes up that shows your application’s listing in the Chrome Web |
+Store. Copy the URL and mail it to your trusted testers.<ul class="small-gap"> |
+<li>When you publish an application to test accounts, the application’s CWS |
+listing is visible only to you and to people who are logged into those |
+accounts. Your application won’t appear in search results, so you need to |
+give testers a direct link to your application’s CWS listing. Users won’t |
+be able to find the application by searching in the CWS.</li> |
+</ul> |
+</li> |
+</ol> |
+<p>To publish an application to the world after publishing it to test accounts, |
+you must first unpublish the application. For additional information see |
+<a class="reference external" href="https://developers.google.com/chrome/web-store/docs/publish">Publishing Your App</a>, and in |
+particular <a class="reference external" href="https://developers.google.com/chrome/web-store/docs/publish#testaccounts">Publishing to test accounts</a>.</p> |
+</section></section> |
+ |
+{{/partials.standard_nacl_article}} |