Commit 0ad1d41b authored by jmedley's avatar jmedley Committed by Commit bot

Rearrange tables so that navigation can be added back to certain pages.

BUG=none
R= mkearney@chromium.org, smain@chromium.org
TEST=none
NOTRY=true
(documentation only change)

Review URL: https://codereview.chromium.org/511963004

Cr-Commit-Position: refs/heads/master@{#295114}
parent b7d5c878
{{+bindTo:partials.standard_nacl_api}} {{+bindTo:partials.standard_nacl_article}}
<section id="progress-events"> <section id="progress-events">
<h1 id="progress-events">Progress Events</h1> <span id="devcycle-progress-events"></span><h1 id="progress-events"><span id="devcycle-progress-events"></span>Progress Events</h1>
<div class="contents local" id="contents" style="display: none"> <div class="contents local" id="contents" style="display: none">
<ul class="small-gap"> <ul class="small-gap">
<li><a class="reference internal" href="#module-loading-and-progress-events" id="id3">Module loading and progress events</a></li> <li><a class="reference internal" href="#module-loading-and-progress-events" id="id3">Module loading and progress events</a></li>
...@@ -34,29 +34,26 @@ events types reported by the Native Client runtime:</p> ...@@ -34,29 +34,26 @@ events types reported by the Native Client runtime:</p>
</colgroup> </colgroup>
<thead valign="bottom"> <thead valign="bottom">
<tr class="row-odd"><th class="head">Event</th> <tr class="row-odd"><th class="head">Event</th>
<th class="head">Description</th> <th class="head">Times
<th class="head">Number of
times
triggered</th> triggered</th>
<th class="head">When event is <th class="head">When
triggered</th> triggered</th>
<th class="head">How you might <th class="head">How you might
react to respond</th>
event</th>
</tr> </tr>
</thead> </thead>
<tbody valign="top"> <tbody valign="top">
<tr class="row-even"><td><code>loadstart</code></td> <tr class="row-even"><td><dl class="first last docutils">
<td>Native Client has <dt><code>loadstart</code></dt>
started to load a <dd>Native Client has started to
Native Client load a Native Client module.</dd>
module.</td> </dl>
</td>
<td>once</td> <td>once</td>
<td>This is the <td>The
first first
progress progress
event event
triggered
after the after the
Native Client Native Client
module is module is
...@@ -69,9 +66,12 @@ message, such ...@@ -69,9 +66,12 @@ message, such
as as
&#8220;Loading...&#8221;</td> &#8220;Loading...&#8221;</td>
</tr> </tr>
<tr class="row-odd"><td><code>progress</code></td> <tr class="row-odd"><td><dl class="first last docutils">
<td>Part of the module <dt><code>progress</code></dt>
has been loaded.</td> <dd>Part of the module has been
loaded.</dd>
</dl>
</td>
<td>zero or <td>zero or
more</td> more</td>
<td>After <td>After
...@@ -81,31 +81,24 @@ dispatched.</td> ...@@ -81,31 +81,24 @@ dispatched.</td>
<td>Display a <td>Display a
progress bar.</td> progress bar.</td>
</tr> </tr>
<tr class="row-even"><td><code>error</code></td> <tr class="row-even"><td><dl class="first last docutils">
<td>The Native Client <dt><code>error</code></dt>
module failed to <dd>The Native Client module failed
start execution to start execution (includes any
(includes any error before or during
error before or initialization of the module).
during The <code>lastError</code> attribute
initialization of (mentioned later) provides
the module). The details on the error
<code>lastError</code> (initialization failed, sel_ldr
attribute did not start, and so on).</dd>
(mentioned later) </dl>
provides details </td>
on the error
(initialization
failed, sel_ldr
did not start,
and so on).</td>
<td>zero or <td>zero or
once</td> once</td>
<td>After the <td>After the last
last
<code>progress</code> <code>progress</code>
event has event has been
been
dispatched, dispatched,
or after or after
<code>loadstart</code> <code>loadstart</code>
...@@ -119,21 +112,19 @@ application ...@@ -119,21 +112,19 @@ application
failed to failed to
load.</td> load.</td>
</tr> </tr>
<tr class="row-odd"><td><code>abort</code></td> <tr class="row-odd"><td><dl class="first last docutils">
<td>Loading of the <dt><code>abort</code></dt>
Native Client <dd>Loading of the NativeClient
module was module was aborted by the user.</dd>
aborted by the </dl>
user.</td> </td>
<td>zero or <td>zero or
once</td> once</td>
<td>After the <td>After the last
last
<code>progress</code> <code>progress</code>
event has event has been
been dispatched, or
dispatched, after
or after
<code>loadstart</code> <code>loadstart</code>
if no if no
<code>progress</code> <code>progress</code>
...@@ -145,25 +136,23 @@ will want to ...@@ -145,25 +136,23 @@ will want to
respond to respond to
this event.</td> this event.</td>
</tr> </tr>
<tr class="row-even"><td><code>load</code></td> <tr class="row-even"><td><dl class="first last docutils">
<td>The Native Client <dt><code>load</code></dt>
module was <dd>The Native Client module was
successfully successfully loaded, and
loaded, and execution was started.
execution was (The module was initialized
started. (The successfully.)</dd>
module was </dl>
initialized </td>
successfully.)</td>
<td>zero or <td>zero or
once</td> once</td>
<td>After the <td>After the
last last
<code>progress</code> <code>progress</code>
event has event has been
been dispatched, or
dispatched, after
or after
<code>loadstart</code> <code>loadstart</code>
if no if no
<code>progress</code> <code>progress</code>
...@@ -172,17 +161,15 @@ dispatched.</td> ...@@ -172,17 +161,15 @@ dispatched.</td>
<td>Remove the <td>Remove the
progress bar.</td> progress bar.</td>
</tr> </tr>
<tr class="row-odd"><td><code>loadend</code></td> <tr class="row-odd"><td><dl class="first last docutils">
<td>Loading of the <dt><code>loadend</code></dt>
Native Client <dd>Loading of the Native Client
module has module has stopped. Load
stopped. Load succeeded (<code>load</code>), failed
succeeded (<code>error</code>), or was aborted
(<code>load</code>), (<code>abort</code>).</dd>
failed </dl>
(<code>error</code>), or </td>
was aborted
(<code>abort</code>).</td>
<td>once</td> <td>once</td>
<td>After an <td>After an
<code>error</code>, <code>error</code>,
...@@ -193,28 +180,24 @@ dispatched.</td> ...@@ -193,28 +180,24 @@ dispatched.</td>
<td>Indicate <td>Indicate
loading is loading is
over over
(regardless (regardless of
of failure or failure or
not).</td> not).</td>
</tr> </tr>
<tr class="row-even"><td><code>crash</code></td> <tr class="row-even"><td><dl class="first last docutils">
<td>The Native Client <dt><code>crash</code></dt>
module is not <dd>The Native Client module is not
responding (died responding (died on an
on an <code>assert()</code> or <code>exit()</code>)
<code>assert()</code> or after a successful load. This
<code>exit()</code>) after event is unique to Native Client
a successful and is not part of the W3C
load. This event Progress Events standard. The
is unique to <code>exitStatus</code> attribute
Native Client and provides the numeric exit
is not part of status.</dd>
the W3C Progress </dl>
Events standard. </td>
The <code>exitStatus</code>
attribute provides
the numeric exit
status value.</td>
<td>zero or <td>zero or
once</td> once</td>
<td>After a <td>After a
...@@ -425,4 +408,4 @@ may nevertheless be useful for temporary debugging.</li> ...@@ -425,4 +408,4 @@ may nevertheless be useful for temporary debugging.</li>
</ul> </ul>
</section> </section>
{{/partials.standard_nacl_api}} {{/partials.standard_nacl_article}}
{{+bindTo:partials.standard_nacl_api}} {{+bindTo:partials.standard_nacl_article}}
<section id="view-change-focus-and-input-events"> <section id="view-change-focus-and-input-events">
<h1 id="view-change-focus-and-input-events">View Change, Focus, and Input Events</h1> <span id="view-focus-input-events"></span><h1 id="view-change-focus-and-input-events"><span id="view-focus-input-events"></span>View Change, Focus, and Input Events</h1>
<div class="contents local" id="contents" style="display: none"> <div class="contents local" id="contents" style="display: none">
<ul class="small-gap"> <ul class="small-gap">
<li><a class="reference internal" href="#overview" id="id2">Overview</a></li> <li><a class="reference internal" href="#overview" id="id2">Overview</a></li>
...@@ -50,105 +50,83 @@ and browser events. These functions are listed in the table below:</p> ...@@ -50,105 +50,83 @@ and browser events. These functions are listed in the table below:</p>
</colgroup> </colgroup>
<thead valign="bottom"> <thead valign="bottom">
<tr class="row-odd"><th class="head">Function</th> <tr class="row-odd"><th class="head">Function</th>
<th class="head">Event</th>
<th class="head">Use</th> <th class="head">Use</th>
</tr> </tr>
</thead> </thead>
<tbody valign="top"> <tbody valign="top">
<tr class="row-even"><td><code>DidChangeView</code></td> <tr class="row-even"><td><dl class="first last docutils">
<td>Called when the position, <dt><code>DidChangeView</code></dt>
size, or clip rectangle <dd>Called when the position, size, or
of the module&#8217;s instance in clip rectangle of the module&#8217;s
the browser has changed. instance in the browser has
This event also occurs changed. This event also occurs
when browser window is when the browser window is resized
resized or mouse wheel or the mouse wheel is scrolled.</dd>
is scrolled.</td> </dl>
<td>An implementation </td>
of this function <td>An implementation of this function might
might check the size check the size of the module instance&#8217;s
of the module rectangle has changed and reallocate the
instance&#8217;s rectangle graphcs context when a different size is
has changed and received.</td>
reallocate the
graphics context
when a different
size is received.</td>
</tr> </tr>
<tr class="row-odd"><td><code>DidChangeFocus</code></td> <tr class="row-odd"><td><dl class="first last docutils">
<td>Called when the module&#8217;s <dt><code>DidChangeFocus</code></dt>
instance in the browser <dd>Called when the module&#8217;s instance
has gone in or out of in the browser has gone in or out
focus (usually by of focus (usually by clicking
clicking inside or inside or outside the module
outside the module instance). Having focus means that
instance). Having focus keyboard events will be sent to the
means that keyboard module instance. An instance&#8217;s
events will be sent to default condition is that it does
the module instance. not have focus.</dd>
An instance&#8217;s default </dl>
condition is that it </td>
does not have focus.</td> <td>An implementation of this function might
<td>An implementation start or stop an animation or a blinking
of this function cursor.</td>
might start or stop
an animation or a
blinking cursor.</td>
</tr> </tr>
<tr class="row-even"><td><code>HandleDocumentLoad</code></td> <tr class="row-even"><td><dl class="first last docutils">
<td>Called after <dt><code>HandleDocumentLoad</code></dt>
<code>pp::Instance::Init()</code> <dd><code>pp::Instance::Init()</code> for a
for a full-frame module full-frame module instance that was
instance that was instantiated based on the MIME
instantiated based on type of a DOMWindow navigation.
the MIME type of a This situation only applies to
DOMWindow navigation. modules that are pre-registered to
This situation only handle certain MIME types. If you
applies to modules that haven&#8217;t specifically registered to
are pre-registered to handle a MIME type or aren&#8217;t
handle certain MIME positive this applies to you, your
types. If you haven&#8217;t implementation of this function can
specifically registered just return false.</dd>
to handle a MIME type or </dl>
aren&#8217;t positive this </td>
applies to you, your <td>This API is only applicable when you are
implementation of this writing an extension to enhance the
function can just return abilities of the Chrome web browser. For
false.</td> example, a PDF viewer might implement
<td>This API is only this function to download and display a
applicable when you PDF file.</td>
are writing an
extension to enhance
the abilities of
the Chrome web
browser. For
example, a PDF
viewer might
implement this
function to download
and display a PDF
file.</td>
</tr> </tr>
<tr class="row-odd"><td><code>HandleInputEvent</code></td> <tr class="row-odd"><td><dl class="first last docutils">
<td>Called when a user <dt><code>HandleInputEvent</code></dt>
interacts with the <dd>Called when a user interacts with
module&#8217;s instance in the the module&#8217;s instance in the
browser using an input browser using an input device such
device such as a mouse as a mouse or keyboard. You must
or keyboard. You must register your module to accept
register your module to input events using
accept input events
using
<code>RequestInputEvents()</code> <code>RequestInputEvents()</code>
for mouse events and for mouse events and
<code>RequestFilteringInputEvents</code> <code>RequestFilteringInputEvents()</code>
for keyboard events for keyboard events prior to
prior to overriding this overriding this function.</dd>
function.</td> </dl>
<td>An implementation of </td>
this function <td>An implementation of this function
examines the input examines the input event type and
event type and
branches accordingly.</td> branches accordingly.</td>
</tr> </tr>
</tbody> </tbody>
...@@ -332,4 +310,4 @@ the <code>event_queue_</code> and the worker thread takes events from the ...@@ -332,4 +310,4 @@ the <code>event_queue_</code> and the worker thread takes events from the
thread, so as not to slow down the browser.</p> thread, so as not to slow down the browser.</p>
</section> </section>
{{/partials.standard_nacl_api}} {{/partials.standard_nacl_article}}
{{+bindTo:partials.standard_nacl_api}} {{+bindTo:partials.standard_nacl_article}}
<section id="running"> <section id="running">
<h1 id="running">Running</h1> <span id="devcycle-running"></span><h1 id="running"><span id="devcycle-running"></span>Running</h1>
<div class="contents local" id="contents" style="display: none"> <div class="contents local" id="contents" style="display: none">
<ul class="small-gap"> <ul class="small-gap">
<li><a class="reference internal" href="#introduction" id="id5">Introduction</a></li> <li><a class="reference internal" href="#introduction" id="id5">Introduction</a></li>
...@@ -71,52 +71,70 @@ section below.</p> ...@@ -71,52 +71,70 @@ section below.</p>
<colgroup> <colgroup>
</colgroup> </colgroup>
<thead valign="bottom"> <thead valign="bottom">
<tr class="row-odd"><th class="head">#</th> <tr class="row-odd"><th class="head" colspan="2">Technique</th>
<th class="head">Technique</th> <th class="head">Requires
<th class="head">Requires NaCl flag</th> Web
<th class="head">Requires Web Server</th> Server</th>
<th class="head">Requires CWS Metadata</th> <th class="head">Requires
<th class="head">Description</th> CWS
Metadata</th>
</tr> </tr>
</thead> </thead>
<tbody valign="top"> <tbody valign="top">
<tr class="row-even"><td>1</td> <tr class="row-even"><td colspan="2"><p class="first"><strong>1. Local server</strong></p>
<td>Local server</td> <blockquote class="last">
<td><img alt="CHK" src="/native-client/images/check-red.png" /></td> <div><blockquote>
<div><p>Run a local server and simply point your browser to
your application on the server.</p>
<aside class="note">
This technique requires the NaCl flag.
</aside>
</div></blockquote>
</div></blockquote>
</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>&nbsp;</td> <td>&nbsp;</td>
<td>Run a local server and simply point your browser to your application on
the server.</td>
</tr> </tr>
<tr class="row-odd"><td>2</td> <tr class="row-odd"><td colspan="2"><p class="first"><strong>2. Packaged application loaded as an unpacked
<td>Packaged application loaded as an unpacked extension</td> extension</strong></p>
<td>&nbsp;</td> <blockquote class="last">
<div><blockquote>
<div>Load your packaged application into Chrome as an
unpacked extension and run it without a server. An
unpacked extension is an application whose source and
metadata files are located in an unzipped folder on
your development machine. The CWS manifest file
(explained below) must specify a local_path field.</div></blockquote>
</div></blockquote>
</td>
<td>&nbsp;</td> <td>&nbsp;</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 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>
<tr class="row-even"><td>3</td> <tr class="row-even"><td colspan="2"><p class="first"><strong>3. Hosted application loaded as an unpacked
<td>Hosted application loaded as an unpacked extension</td> extension</strong></p>
<td>&nbsp;</td> <blockquote class="last">
<div><blockquote>
<div>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 web_url field.</div></blockquote>
</div></blockquote>
</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><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>
<tr class="row-odd"><td>4</td> <tr class="row-odd"><td colspan="2"><p class="first"><strong>4. CWS application with untrusted testers</strong></p>
<td>CWS application with untrusted testers</td> <blockquote class="last">
<td>&nbsp;</td> <div><blockquote>
<div>The standard technique for distributing a packaged or
hosted application in the CWS. You can limit the
application to trusted testers. This technique
requires a server if your application is a hosted
application.</div></blockquote>
</div></blockquote>
</td>
<td>&nbsp;</td> <td>&nbsp;</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>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> </tr>
</tbody> </tbody>
</table> </table>
...@@ -424,4 +442,4 @@ you must first unpublish the application. For additional information see ...@@ -424,4 +442,4 @@ you must first unpublish the application. For additional information see
to test accounts</a>.</p> to test accounts</a>.</p>
</section> </section>
{{/partials.standard_nacl_api}} {{/partials.standard_nacl_article}}
{{+bindTo:partials.standard_nacl_api}} {{+bindTo:partials.standard_nacl_article}}
<section id="debugging-with-visual-studio"> <section id="debugging-with-visual-studio">
<h1 id="debugging-with-visual-studio">Debugging With Visual Studio</h1> <span id="devcycle-vs-addin"></span><h1 id="debugging-with-visual-studio"><span id="devcycle-vs-addin"></span>Debugging with Visual Studio</h1>
<div class="contents local" id="table-of-contents" style="display: none"> <div class="contents local" id="table-of-contents" style="display: none">
<p class="topic-title first">Table Of Contents</p> <p class="topic-title first">Table Of Contents</p>
<ul class="small-gap"> <ul class="small-gap">
...@@ -179,11 +179,11 @@ example):</p> ...@@ -179,11 +179,11 @@ example):</p>
</tr> </tr>
</thead> </thead>
<tbody valign="top"> <tbody valign="top">
<tr class="row-even"><td>NACL_SDK_ROOT</td> <tr class="row-even"><td><code>NACL_SDK_ROOT</code></td>
<td>The path to the pepper directory in the SDK. <td>The path to the pepper directory in the SDK.
For example: <code>C:\nacl_sdk\pepper_23</code></td> For example: <code>C:\nacl_sdk\pepper_23</code></td>
</tr> </tr>
<tr class="row-odd"><td>CHROME_PATH</td> <tr class="row-odd"><td><code>CHROME_PATH</code></td>
<td>The path to the .exe file for the version of Chrome you <td>The path to the .exe file for the version of Chrome you
are testing with. For example: are testing with. For example:
<code>C:\Users\fred\AppData\Local\Google\Chrome <code>C:\Users\fred\AppData\Local\Google\Chrome
...@@ -513,4 +513,4 @@ than a Pepper plugin.</dd> ...@@ -513,4 +513,4 @@ than a Pepper plugin.</dd>
</dl> </dl>
</section> </section>
{{/partials.standard_nacl_api}} {{/partials.standard_nacl_article}}
...@@ -143,19 +143,25 @@ each Native Client architecture with two name/value pairs:</p> ...@@ -143,19 +143,25 @@ each Native Client architecture with two name/value pairs:</p>
<colgroup> <colgroup>
</colgroup> </colgroup>
<thead valign="bottom"> <thead valign="bottom">
<tr class="row-odd"><th class="head">Name</th> <tr class="row-odd"><th class="head"><p class="first last">Name</p>
<th class="head">Value</th> </th>
<th class="head"><p class="first last">Value</p>
</th>
</tr> </tr>
</thead> </thead>
<tbody valign="top"> <tbody valign="top">
<tr class="row-even"><td><code>nacl_arch</code></td> <tr class="row-even"><td><p class="first last"><code>nacl_arch</code></p>
<td><code>x86-64</code>, <code>x86-32</code>, or <code>arm</code></td> </td>
<td><p class="first last"><code>x86-64</code>, <code>x86-32</code>, or <code>arm</code></p>
</td>
</tr> </tr>
<tr class="row-odd"><td><code>sub_package_path</code></td> <tr class="row-odd"><td><p class="first last"><code>sub_package_path</code></p>
<td>the path of the directory (starting </td>
<td><p class="first last">the path of the directory (starting
with <code>_platform_specific</code>) that with <code>_platform_specific</code>) that
contains the files for the designated contains the files for the designated
NaCl architecture</td> NaCl architecture</p>
</td>
</tr> </tr>
</tbody> </tbody>
</table> </table>
......
...@@ -115,7 +115,7 @@ ...@@ -115,7 +115,7 @@
<li class="toctree-l2"><a class="reference internal" href="/native-client/devguide/devcycle/debugging.html#debugging-with-other-tools">Debugging with other tools</a></li> <li class="toctree-l2"><a class="reference internal" href="/native-client/devguide/devcycle/debugging.html#debugging-with-other-tools">Debugging with other tools</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l1"><a class="reference internal" href="/native-client/devguide/devcycle/vs-addin.html">Debugging With Visual Studio</a><ul class="small-gap"> <li class="toctree-l1"><a class="reference internal" href="/native-client/devguide/devcycle/vs-addin.html">Debugging with Visual Studio</a><ul class="small-gap">
<li class="toctree-l2"><a class="reference internal" href="/native-client/devguide/devcycle/vs-addin.html#introduction">Introduction</a></li> <li class="toctree-l2"><a class="reference internal" href="/native-client/devguide/devcycle/vs-addin.html#introduction">Introduction</a></li>
<li class="toctree-l2"><a class="reference internal" href="/native-client/devguide/devcycle/vs-addin.html#platforms">Platforms</a></li> <li class="toctree-l2"><a class="reference internal" href="/native-client/devguide/devcycle/vs-addin.html#platforms">Platforms</a></li>
<li class="toctree-l2"><a class="reference internal" href="/native-client/devguide/devcycle/vs-addin.html#installing-the-add-in">Installing the add-in</a></li> <li class="toctree-l2"><a class="reference internal" href="/native-client/devguide/devcycle/vs-addin.html#installing-the-add-in">Installing the add-in</a></li>
...@@ -124,12 +124,9 @@ ...@@ -124,12 +124,9 @@
</ul> </ul>
</li> </li>
<li class="toctree-l1"><a class="reference internal" href="/native-client/devguide/devcycle/dynamic-loading.html">Dynamic Linking and Loading with glibc</a><ul class="small-gap"> <li class="toctree-l1"><a class="reference internal" href="/native-client/devguide/devcycle/dynamic-loading.html">Dynamic Linking and Loading with glibc</a><ul class="small-gap">
<li class="toctree-l2"><a class="reference internal" href="/native-client/devguide/devcycle/dynamic-loading.html#introduction">Introduction</a></li> <li class="toctree-l2"><a class="reference internal" href="/native-client/devguide/devcycle/dynamic-loading.html#c-standard-libraries-glibc-and-newlib">C standard libraries: glibc and newlib</a></li>
<li class="toctree-l2"><a class="reference internal" href="/native-client/devguide/devcycle/dynamic-loading.html#building-a-dynamically-linked-application">Building a dynamically linked application</a></li> <li class="toctree-l2"><a class="reference internal" href="/native-client/devguide/devcycle/dynamic-loading.html#sdk-toolchains">SDK toolchains</a></li>
<li class="toctree-l2"><a class="reference internal" href="/native-client/devguide/devcycle/dynamic-loading.html#generating-a-native-client-manifest-file-for-a-dynamically-linked-application">Generating a Native Client manifest file for a dynamically linked application</a></li> <li class="toctree-l2"><a class="reference internal" href="/native-client/devguide/devcycle/dynamic-loading.html#specifying-and-delivering-shared-libraries">Specifying and delivering shared libraries</a></li>
<li class="toctree-l2"><a class="reference internal" href="/native-client/devguide/devcycle/dynamic-loading.html#deploying-a-dynamically-linked-application">Deploying a dynamically linked application</a></li>
<li class="toctree-l2"><a class="reference internal" href="/native-client/devguide/devcycle/dynamic-loading.html#opening-a-shared-library-at-runtime">Opening a shared library at runtime</a></li>
<li class="toctree-l2"><a class="reference internal" href="/native-client/devguide/devcycle/dynamic-loading.html#troubleshooting">Troubleshooting</a></li>
</ul> </ul>
</li> </li>
<li class="toctree-l1"><a class="reference internal" href="/native-client/devguide/coding/index.html">Coding Your Application</a></li> <li class="toctree-l1"><a class="reference internal" href="/native-client/devguide/coding/index.html">Coding Your Application</a></li>
......
.. _view_focus_input_events: .. _view_focus_input_events:
:template: standard_nacl_api
#################################### ####################################
View Change, Focus, and Input Events View Change, Focus, and Input Events
#################################### ####################################
...@@ -43,71 +41,55 @@ override certain functions in the `pp::Instance ...@@ -43,71 +41,55 @@ override certain functions in the `pp::Instance
</native-client/pepper_stable/cpp/classpp_1_1_instance>`_ class to handle input </native-client/pepper_stable/cpp/classpp_1_1_instance>`_ class to handle input
and browser events. These functions are listed in the table below: and browser events. These functions are listed in the table below:
+-------------------------------------+----------------------------------------+
====================== =============================== ==================== | Function | Use |
Function Event Use +=====================================+========================================+
====================== =============================== ==================== |``DidChangeView`` |An implementation of this function might|
``DidChangeView`` Called when the position, An implementation | Called when the position, size, or |check the size of the module instance's |
size, or clip rectangle of this function | clip rectangle of the module's |rectangle has changed and reallocate the|
of the module's instance in might check the size | instance in the browser has |graphcs context when a different size is|
the browser has changed. of the module | changed. This event also occurs |received. |
This event also occurs instance's rectangle | when the browser window is resized | |
when browser window is has changed and | or the mouse wheel is scrolled. | |
resized or mouse wheel reallocate the +-------------------------------------+----------------------------------------+
is scrolled. graphics context |``DidChangeFocus`` |An implementation of this function might|
when a different | Called when the module's instance |start or stop an animation or a blinking|
size is received. | in the browser has gone in or out |cursor. |
| of focus (usually by clicking | |
``DidChangeFocus`` Called when the module's An implementation | inside or outside the module | |
instance in the browser of this function | instance). Having focus means that | |
has gone in or out of might start or stop | keyboard events will be sent to the| |
focus (usually by an animation or a | module instance. An instance's | |
clicking inside or blinking cursor. | default condition is that it does | |
outside the module | not have focus. | |
instance). Having focus +-------------------------------------+----------------------------------------+
means that keyboard |``HandleDocumentLoad`` |This API is only applicable when you are|
events will be sent to | ``pp::Instance::Init()`` for a |writing an extension to enhance the |
the module instance. | full-frame module instance that was|abilities of the Chrome web browser. For|
An instance's default | instantiated based on the MIME |example, a PDF viewer might implement |
condition is that it | type of a DOMWindow navigation. |this function to download and display a |
does not have focus. | This situation only applies to |PDF file. |
| modules that are pre-registered to | |
``HandleDocumentLoad`` Called after This API is only | handle certain MIME types. If you | |
``pp::Instance::Init()`` applicable when you | haven't specifically registered to | |
for a full-frame module are writing an | handle a MIME type or aren't | |
instance that was extension to enhance | positive this applies to you, your | |
instantiated based on the abilities of | implementation of this function can| |
the MIME type of a the Chrome web | just return false. | |
DOMWindow navigation. browser. For +-------------------------------------+----------------------------------------+
This situation only example, a PDF |``HandleInputEvent`` |An implementation of this function |
applies to modules that viewer might | Called when a user interacts with |examines the input event type and |
are pre-registered to implement this | the module's instance in the |branches accordingly. |
handle certain MIME function to download | browser using an input device such | |
types. If you haven't and display a PDF | as a mouse or keyboard. You must | |
specifically registered file. | register your module to accept | |
to handle a MIME type or | input events using | |
aren't positive this | ``RequestInputEvents()`` | |
applies to you, your | for mouse events and | |
implementation of this | ``RequestFilteringInputEvents()`` | |
function can just return | for keyboard events prior to | |
false. | overriding this function. | |
+-------------------------------------+----------------------------------------+
``HandleInputEvent`` Called when a user An implementation of
interacts with the this function
module's instance in the examines the input
browser using an input event type and
device such as a mouse branches accordingly.
or keyboard. You must
register your module to
accept input events
using
``RequestInputEvents()``
for mouse events and
``RequestFilteringInputEvents``
for keyboard events
prior to overriding this
function.
====================== =============================== ====================
These interfaces are found in the `pp::Instance class These interfaces are found in the `pp::Instance class
......
...@@ -7,9 +7,6 @@ Dynamic Linking and Loading with glibc ...@@ -7,9 +7,6 @@ Dynamic Linking and Loading with glibc
:backlinks: none :backlinks: none
:depth: 2 :depth: 2
Introduction
============
.. Note:: .. Note::
:class: caution :class: caution
...@@ -31,31 +28,30 @@ C standard libraries: glibc and newlib ...@@ -31,31 +28,30 @@ C standard libraries: glibc and newlib
The Native Client SDK comes with two C standard libraries --- glibc and The Native Client SDK comes with two C standard libraries --- glibc and
newlib. These libraries are described in the table below. newlib. These libraries are described in the table below.
+--------+----------+-------------+--------------------------------------------+ +-----------------------------------------------------+----------+-------------+
| Library| Linking | License | Description | | Library | Linking | License |
+========+==========+=============+============================================+ +=====================================================+==========+=============+
| glibc | dynamic | GNU Lesser | glibc is the GNU implementation of the | |glibc | dynamic | GNU Lesser |
| | or static| General | POSIX_ standard runtime library for the C | | The GNU implementation of the POSIX_ standard | or static| General |
| | | Public | programming language. Designed for | | runtime library for the C programming language. | | Public |
| | | License | portability and performance, glibc is one | | Designed for portability and performance, glibc is | | License |
| | | (LGPL) | of the most popular implementations of the | | one of the most popular implementations of the C | | (LGPL) |
| | | | C library. It is comprised of a set of | | library. It is comprised of a set of interdependent| | |
| | | | interdependent libraries including libc, | | libraries including libc, libpthreads, libdl, and | | |
| | | | libpthreads, libdl, and others. For | | others. For documentation, FAQs, and additional | | |
| | | | documentation, FAQs, and additional | | information about glibc, see GLIBC_. | | |
| | | | information about glibc, see GLIBC_ | +-----------------------------------------------------+----------+-------------+
+--------+----------+-------------+--------------------------------------------+ |newlib | static | Berkeley |
| newlib | static | Berkeley | newlib is a C library intended for use in | | newlib is a C library intended for use in embedded | | Software |
| | | Software | embedded systems. Like glibc, newlib is a | | systems. Like glibc, newlib is a conglomeration of | | Distribution|
| | | Distribution| conglomeration of several library parts. | | several libraries. It is available for use under | | (BSD) type |
| | | (BSD) type | It is available for use under BSD-type free| | BSD-type free software licenses, which generally | | free |
| | | free | software licenses, which generally makes it| | makes it more suitable to link statically in | | software |
| | | software | more suitable to link statically in | | commercial, closed-source applications. For | | licenses |
| | | licenses | commercial, closed-source applications. For| | documentation, FAQs, and additional information | | |
| | | | documentation, FAQs, and additional | | about newlib, see newlib_. | | |
| | | | information about newlib, see the newlib_ | +-----------------------------------------------------+----------+-------------+
| | | | documentation. |
+--------+----------+-------------+--------------------------------------------+
For proprietary (closed-source) applications, your options are to either For proprietary (closed-source) applications, your options are to either
statically link to newlib, or dynamically link to glibc. We recommend statically link to newlib, or dynamically link to glibc. We recommend
......
.. _devcycle-running: .. _devcycle-running:
:template: standard_nacl_api
####### #######
Running Running
####### #######
...@@ -67,49 +65,57 @@ below. Each technique has certain requirements (NaCl flag, web server, and/or ...@@ -67,49 +65,57 @@ below. Each technique has certain requirements (NaCl flag, web server, and/or
CWS metadata); these are explained in the :ref:`Requirements <requirements>` CWS metadata); these are explained in the :ref:`Requirements <requirements>`
section below. section below.
.. list-table::
:header-rows: 1 +--------------------------------------------------------+----------+----------+
| Technique | Requires | Requires |
* - # | | Web | CWS |
- Technique | | Server | Metadata |
- Requires NaCl flag +========================================================+==========+==========+
- Requires Web Server |**1. Local server** | |CHK| | |
- Requires CWS Metadata | | | |
- Description | .. | | |
* - 1 | | | |
- Local server | Run a local server and simply point your browser to | | |
- |CHK| | your application on the server. | | |
- |CHK| | | | |
- | .. Note:: | | |
- Run a local server and simply point your browser to your application on | :class: note | | |
the server. | | | |
* - 2 | This technique requires the NaCl flag. | | |
- Packaged application loaded as an unpacked extension +---------------------------------------------+----------+----------+----------+
- |**2. Packaged application loaded as an unpacked | | |CHK| |
- |extension** | | |
- |CHK| | | | |
- 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 | Load your packaged application into Chrome as an | | |
on your development machine. The CWS manifest file (explained below) must | unpacked extension and run it without a server. An | | |
specify a ``local_path`` field. | unpacked extension is an application whose source and | | |
* - 3 | metadata files are located in an unzipped folder on | | |
- Hosted application loaded as an unpacked extension | your development machine. The CWS manifest file | | |
- | (explained below) must specify a local_path field. | | |
- |CHK| +--------------------------------------------------------+----------+----------+
- |CHK| |**3. Hosted application loaded as an unpacked | |CHK| | |CHK| |
- Load your hosted application into Chrome as an unpacked extension and run |extension** | | |
it from a server (which can be a local server). The CWS manifest file | | | |
must specify a ``web_url`` field. | .. | | |
* - 4 | | | |
- CWS application with untrusted testers | 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| | |
- |CHK| | a web_url field. | | |
- This is the standard technique for distributing a packaged or hosted +--------------------------------------------------------+----------+----------+
application in the CWS, but you can limit the application to a few |**4. CWS application with untrusted testers** | | |CHK| |
trusted testers. This technique requires a server if your application is | | | |
a hosted application. | .. | | |
| | | |
| The standard technique for distributing a packaged or | | |
| hosted application in the CWS. You can limit the | | |
| application to trusted testers. This technique | | |
| requires a server if your application is a hosted | | |
| application. | | |
+--------------------------------------------------------+----------+----------+
.. |CHK| image:: /images/check-red.png .. |CHK| image:: /images/check-red.png
......
:template: standard_nacl_api .. _devcycle-vs-addin:
############################ ############################
Debugging With Visual Studio Debugging with Visual Studio
############################ ############################
...@@ -181,10 +181,10 @@ example): ...@@ -181,10 +181,10 @@ example):
+-------------------+----------------------------------------------------------+ +-------------------+----------------------------------------------------------+
| Variable Name | Description | | Variable Name | Description |
+===================+==========================================================+ +===================+==========================================================+
| NACL_SDK_ROOT | The path to the pepper directory in the SDK. | | ``NACL_SDK_ROOT`` | The path to the pepper directory in the SDK. |
| | For example: ``C:\nacl_sdk\pepper_23`` | | | For example: ``C:\nacl_sdk\pepper_23`` |
+-------------------+----------------------------------------------------------+ +-------------------+----------------------------------------------------------+
| CHROME_PATH | The path to the .exe file for the version of Chrome you | | ``CHROME_PATH`` | The path to the .exe file for the version of Chrome you |
| | are testing with. For example: | | | are testing with. For example: |
| | ``C:\Users\fred\AppData\Local\Google\Chrome | | | ``C:\Users\fred\AppData\Local\Google\Chrome |
| | SxS\Application\chrome.exe`` | | | SxS\Application\chrome.exe`` |
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment