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

Side by Side Diff: native_client_sdk/src/doc/faq.rst

Issue 886163005: NaCl documentation: update FAQ and examples (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: . Created 5 years, 10 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 ########################## 1 ##########################
2 Frequently Asked Questions 2 Frequently Asked Questions
3 ########################## 3 ##########################
4 4
5 .. contents:: 5 .. contents::
6 :local: 6 :local:
7 :backlinks: none 7 :backlinks: none
8 :depth: 2 8 :depth: 2
9 9
10 This document answers some frequently asked questions about Native 10 This document answers some frequently asked questions about Native
(...skipping 475 matching lines...) Expand 10 before | Expand all | Expand 10 after
486 In most cases you won't have to rewrite much, if any, code. The Native 486 In most cases you won't have to rewrite much, if any, code. The Native
487 Client-specific tools, such as ``pnacl-clang++`` or ``x86_64-nacl-g++``, 487 Client-specific tools, such as ``pnacl-clang++`` or ``x86_64-nacl-g++``,
488 take care of most of the necessary changes. You may need to make some 488 take care of most of the necessary changes. You may need to make some
489 changes to your operating system calls and interactions with external 489 changes to your operating system calls and interactions with external
490 devices to work with the web. Porting existing Linux libraries is 490 devices to work with the web. Porting existing Linux libraries is
491 generally straightforward, with large libraries often requiring no 491 generally straightforward, with large libraries often requiring no
492 source change. 492 source change.
493 493
494 The following kinds of code may be more challenging to port: 494 The following kinds of code may be more challenging to port:
495 495
496 * Code that does direct TCP/IP or UDP networking. For security reasons 496 * Code that does direct `TCP <pepper_stable/cpp/classpp_1_1_u_d_p_socket>`_ or
497 these APIs are only available to packaged applications, not on the 497 `UDP <pepper_stable/cpp/classpp_1_1_u_d_p_socket>`_ networking. For security
498 open web, after asking for the appropriate permissions. Native Client 498 reasons these APIs are only available to `packaged applications
binji 2015/02/09 18:13:42 I believe these are just called Chrome Apps now. I
499 is otherwise restricted to the networking APIs available in the 499 </apps/about_apps>`_ after asking for the appropriate permissions, not on the
500 browser. 500 open web. Native Client is otherwise restricted to the networking APIs
501 * Code that creates processes, including UNIX forks. Creating processes 501 available in the browser. You may want to use to `nacl_io library <nacl_io>`_
502 is not supported for security reasons. However, threads are supported. 502 to use POSIX-like sockets.
503 * Code that needs to do local file I/O. Native Client is restricted to 503 * Code that creates processes, including UNIX ``fork``, won't function
504 accessing URLs and to local storage in the browser (the Pepper file I/O API 504 as-is. However, threads are supported. You can nonetheless create new
505 has access to the same per-application storage that JavaScript has via Local 505 ``<embed>`` tags in your HTML page to launch new PNaCl processes, even using
506 Storage). HTML5 File System can be used, among others. For POSIX compatabiliy 506 new ``.pexe`` files that your existing ``.pexe`` saved in a local
binji 2015/02/09 18:13:42 This sentence is clumsy. Split it into two sentenc
507 the Native Client SDK includes a library called nacl_io which allows the 507 filesystem. This is somewhat akin to ``execve``, but the process management
508 application to interact with all these types of files via standard POSIX I/O 508 has to go through ``postMessage`` to JavaScript in order to create the new
509 functions (e.g. open/fopen/read/write/...). See :doc:`Using NaCl I/O 509 ``<embed>``.
510 <devguide/coding/nacl_io>` for more details. 510 * Code that needs to do local file I/O. Native Client is restricted to accessing
511 URLs and to local storage in the browser (the Pepper :doc:`File IO API
512 <devguide/coding/file-io>` has access to the same per-application storage that
513 JavaScript has via Local Storage). HTML5 File System can be used, among
514 others. For POSIX compatabiliy the Native Client SDK includes a library called
515 nacl_io which allows the application to interact with all these types of files
516 via standard POSIX I/O functions (e.g. ``open`` / ``fopen`` / ``read`` /
517 ``write`` / ...). See :doc:`Using NaCl I/O <devguide/coding/nacl_io>` for more
518 details.
511 519
512 .. _faq_troubleshooting: 520 .. _faq_troubleshooting:
513 521
514 Troubleshooting 522 Troubleshooting
515 =============== 523 ===============
516 524
517 My ``.pexe`` isn't loading, help! 525 My ``.pexe`` isn't loading, help!
518 --------------------------------- 526 ---------------------------------
519 527
520 * You must use Google Chrome version 31 or greater for Portable Native 528 * You must use Google Chrome version 31 or greater for Portable Native
521 Client. Please `upgrade now <http://www.google.com/chrome/>`_ if you are 529 Client. Find your version of chrome by opening ``about:chrome``, and `update
522 not. If you're already using a recent version, open ``about:components`` and 530 Chrome <http://www.google.com/chrome/>`_ if you are on an older version. If
523 "Check for update" for PNaCl. Find your version of chrome by openning 531 you're already using a recent version, open ``about:components`` and "Check
524 ``about:chrome``. 532 for update" for PNaCl. Note that on ChromeOS PNaCl is always up to date,
533 whereas on other operating systems it updates shortly after Chrome updates.
525 * A PNaCl ``.pexe`` must be compiled with pepper_31 SDK or higher. :ref:`Update 534 * A PNaCl ``.pexe`` must be compiled with pepper_31 SDK or higher. :ref:`Update
526 your bundles <updating-bundles>` and make sure you're using a version of 535 your bundles <updating-bundles>` and make sure you're using a version of
527 Chrome that matches the SDK version. 536 Chrome that matches the SDK version.
528 * Your application can verify that Portable Native Client is supported 537 * Your application can verify that Portable Native Client is supported
529 in JavaScript with ``navigator.mimeTypes['application/x-pnacl'] !== 538 in JavaScript with ``navigator.mimeTypes['application/x-pnacl'] !==
530 undefined``. This is preferred over checking the Chrome version. 539 undefined``. This is preferred over checking the Chrome version.
531 540
532 My ``.nexe`` files never finish loading. What gives? 541 My ``.nexe`` files never finish loading. What gives?
533 ---------------------------------------------------- 542 ----------------------------------------------------
534 543
(...skipping 44 matching lines...) Expand 10 before | Expand all | Expand 10 after
579 .. _Rust: http://www.rust-lang.org/ 588 .. _Rust: http://www.rust-lang.org/
580 .. _Go: https://golang.org 589 .. _Go: https://golang.org
581 .. _native-client-discuss: https://groups.google.com/group/native-client-discuss 590 .. _native-client-discuss: https://groups.google.com/group/native-client-discuss
582 .. _deprecated in Chrome: http://blog.chromium.org/2013/09/saying-goodbye-to-our -old-friend-npapi.html 591 .. _deprecated in Chrome: http://blog.chromium.org/2013/09/saying-goodbye-to-our -old-friend-npapi.html
583 .. _OpenGL ES 2.0: https://www.khronos.org/opengles/ 592 .. _OpenGL ES 2.0: https://www.khronos.org/opengles/
584 .. _GLES2 file: https://code.google.com/p/chromium/codesearch#chromium/src/ppapi /lib/gl/gles2/gles2.c 593 .. _GLES2 file: https://code.google.com/p/chromium/codesearch#chromium/src/ppapi /lib/gl/gles2/gles2.c
585 .. _Google Chrome privacy policy: https://www.google.com/chrome/intl/en/privacy. html 594 .. _Google Chrome privacy policy: https://www.google.com/chrome/intl/en/privacy. html
586 .. _Google Chrome Terms of Service: https://www.google.com/chrome/intl/en/eula_t ext.html 595 .. _Google Chrome Terms of Service: https://www.google.com/chrome/intl/en/eula_t ext.html
587 .. _naclports: https://code.google.com/p/naclports 596 .. _naclports: https://code.google.com/p/naclports
588 .. _CORS: http://en.wikipedia.org/wiki/Cross-origin_resource_sharing 597 .. _CORS: http://en.wikipedia.org/wiki/Cross-origin_resource_sharing
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698