Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(454)

Side by Side Diff: native_client_sdk/src/doc/devguide/tutorial/tutorial-part1.rst

Issue 476793002: Per P0 reqs add launch pts + make download obvious. Also misc cpy edits. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: CL synced with master. Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 .. _tutorial: 1 .. _tutorial:
2 2
3 ###################################### 3 ######################################
4 C++ Tutorial: Getting Started (Part 1) 4 C++ Tutorial: Getting Started (Part 1)
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 Overview 12 Overview
13 ======== 13 ========
14 14
15 This tutorial shows how to build and run a web application using Portable Native 15 This tutorial shows how to build and run a web application using Portable Native
16 Client (PNaCl). This is a client-side application that uses HTML, JavaScript and 16 Client (PNaCl). This is a client-side application that uses HTML, JavaScript and
17 a Native Client module written in C++. The PNaCl toolchain is used to enable 17 a Native Client module written in C++. The PNaCl toolchain is used to enable
18 running the Native Client module directly from a web page. 18 running the Native Client module directly from a web page.
19 19
20 It's recommended to read the :doc:`Native Client Technical Overview 20 It's recommended that you read the :doc:`Native Client Technical Overview
21 </overview>` prior to going through this tutorial. 21 </overview>` prior to going through this tutorial.
22 22
23 What the application in this tutorial does 23 What the application in this tutorial does
24 ------------------------------------------ 24 ------------------------------------------
25 25
26 The application in this tutorial shows how to load a Native Client module in a 26 The application in this tutorial shows how to load a Native Client module in a
27 web page, and how to send messages between JavaScript and the C++ code in the 27 web page, and how to send messages between JavaScript and the Native Client
28 Native Client module. In this simple application, the JavaScript code in the web 28 module. In this simple application, the JavaScript sends a ``'hello'`` message
29 page sends a ``'hello'`` message to the Native Client module. When the Native 29 to the Native Client module. When the Native Client module receives a message,
30 Client module receives a message, it checks whether the message is equal to the 30 it checks whether the message is equal to the string ``'hello'``. If it is, the
31 string ``'hello'``. If it is, the Native Client module returns a message saying 31 Native Client module returns a message saying ``'hello from NaCl'``. A
32 ``'hello from NaCl'``. A JavaScript alert panel displays the message received 32 JavaScript alert panel displays the message received from the Native Client
33 from the Native Client module. 33 module.
34 34
35 Communication between JavaScript and Native Client modules 35 Communication between JavaScript and Native Client modules
36 ---------------------------------------------------------- 36 ----------------------------------------------------------
37 37
38 The Native Client programming model supports bidirectional communication between 38 The Native Client programming model supports bidirectional communication between
39 JavaScript and the Native Client module (C/C++ code). Both sides can initiate 39 JavaScript and the Native Client module. Both sides can initiate
40 and respond to messages. In all cases, the communication is asynchronous: The 40 and respond to messages. In all cases, the communication is asynchronous: The
41 caller (JavaScript or the Native Client module) sends a message, but the caller 41 caller (JavaScript or the Native Client module) sends a message, but the caller
42 does not wait for, or may not even expect, a response. This behavior is 42 does not wait for, or may not even expect, a response. This behavior is
43 analogous to client/server communication on the web, where the client posts a 43 analogous to client/server communication on the web, where the client posts a
44 message to the server and returns immediately. The Native Client messaging 44 message to the server and returns immediately. The Native Client messaging
45 system is part of the Pepper API, and is described in detail in 45 system is part of the Pepper API, and is described in detail in
46 :doc:`Developer's Guide: Messaging System </devguide/coding/message-system>`. 46 :doc:`Developer's Guide: Messaging System </devguide/coding/message-system>`.
47 It is also similar to the way `web workers 47 It is also similar to the way `web workers
48 <http://en.wikipedia.org/wiki/Web_worker>`_ interact with the main document in 48 <http://en.wikipedia.org/wiki/Web_worker>`_ interact with the main document in
49 JavaScript. 49 JavaScript.
(...skipping 19 matching lines...) Expand all
69 $ cd pepper_$(VERSION)/getting_started 69 $ cd pepper_$(VERSION)/getting_started
70 $ make serve 70 $ make serve
71 71
72 .. Note:: 72 .. Note::
73 :class: note 73 :class: note
74 74
75 The SDK may consist of several "bundles", one per Chrome/Pepper version (see 75 The SDK may consist of several "bundles", one per Chrome/Pepper version (see
76 :doc:`versioning information </version>`). In the sample invocation above 76 :doc:`versioning information </version>`). In the sample invocation above
77 ``pepper_$(VERSION)`` refers to the specific version you want to use. For 77 ``pepper_$(VERSION)`` refers to the specific version you want to use. For
78 example, ``pepper_31``. If you don't know which version you need, use the 78 example, ``pepper_31``. If you don't know which version you need, use the
79 one labeled ``(stable)`` by ``naclsdk list``. See :doc:`Download the Native 79 one labeled ``(stable)`` by the ``naclsdk list`` command. See
80 Client SDK </sdk/download>` for more details. 80 :doc:`Download the Native Client SDK </sdk/download>` for more details.
81 81
82 If no port number is specified, the server defaults to port 5103, and can be 82 If no port number is specified, the server defaults to port 5103, and can be
83 accessed at ``http://localhost:5103``. 83 accessed at ``http://localhost:5103``.
84 84
85 Any server can be used for the purpose of development. The one provided with the 85 Any server can be used for the purpose of development. The one provided with the
86 SDK is just a convenience, not a requirement. 86 SDK is just a convenience, not a requirement.
87 87
88 .. _tutorial_step_3: 88 .. _tutorial_step_3:
89 89
90 Step 3: Set up the Chrome browser 90 Step 3: Set up the Chrome browser
(...skipping 182 matching lines...) Expand 10 before | Expand all | Expand 10 after
273 There's more information about troubleshooting in the documentation: 273 There's more information about troubleshooting in the documentation:
274 274
275 * :ref:`FAQ Troubleshooting <faq_troubleshooting>`. 275 * :ref:`FAQ Troubleshooting <faq_troubleshooting>`.
276 * The :doc:`Progress Events </devguide/coding/progress-events>` document 276 * The :doc:`Progress Events </devguide/coding/progress-events>` document
277 contains some useful information about handling error events. 277 contains some useful information about handling error events.
278 278
279 Next steps 279 Next steps
280 ========== 280 ==========
281 281
282 * See the :doc:`Application Structure </devguide/coding/application-structure>` 282 * See the :doc:`Application Structure </devguide/coding/application-structure>`
283 chapter in the Developer's Guide for information about how to structure a 283 section in the Developer's Guide for information about how to structure a
284 Native Client module. 284 Native Client module.
285 * Check the `C++ Reference </native-client/pepper_stable/cpp>`_ for details 285 * Check the `C++ Reference </native-client/pepper_stable/cpp>`_ for details
286 about how to use the Pepper APIs. 286 about how to use the Pepper APIs.
287 * Browse through the source code of the SDK examples (in the ``examples`` 287 * Browse through the source code of the SDK examples (in the ``examples``
288 directory) to learn additional techniques for writing Native Client 288 directory) to learn additional techniques for writing Native Client
289 applications and using the Pepper APIs. 289 applications and using the Pepper APIs.
290 * See the :doc:`Building </devguide/devcycle/building>`, :doc:`Running 290 * See the :doc:`Building </devguide/devcycle/building>`, :doc:`Running
291 </devguide/devcycle/running>`, and :doc:`Debugging pages 291 </devguide/devcycle/running>`, and :doc:`Debugging pages
292 </devguide/devcycle/debugging>` for information about how to build, run, and 292 </devguide/devcycle/debugging>` for information about how to build, run, and
293 debug Native Client applications. 293 debug Native Client applications.
294 * Check the `naclports <http://code.google.com/p/naclports/>`_ project to see 294 * Check the `naclports <http://code.google.com/p/naclports/>`_ project to see
295 what libraries have been ported for use with Native Client. If you port an 295 what libraries have been ported for use with Native Client. If you port an
296 open-source library for your own use, we recommend adding it to naclports 296 open-source library for your own use, we recommend adding it to naclports
297 (see `How to check code into naclports 297 (see `How to check code into naclports
298 <http://code.google.com/p/naclports/wiki/HowTo_Checkin>`_). 298 <http://code.google.com/p/naclports/wiki/HowTo_Checkin>`_).
OLDNEW
« no previous file with comments | « native_client_sdk/src/doc/devguide/devcycle/running.rst ('k') | native_client_sdk/src/doc/glossary.rst » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698