<!DOCTYPE html>
<html>
<!--
Copyright 2014 The Chromium Authors
Use of this source code is governed by a BSD-style license that can be
found in the LICENSE file.
-->
<head>
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="-1">
<title>{{title}}</title>
<script type="text/javascript" src="common.js"></script>
<script type ="text/javascript" src="example.js"></script>
</head>
<body {{attrs}}>
<h1>{{title}}</h1>
<h2>Status: <code id="statusField">NO-STATUS</code></h2>
<p>This example demonstrates sending messages from JavaScript to the Native
Client module, and from the Native Client module to JavaScript.</p>
<p>There are two ways to do this: asynchronously and sychronously.</p>
<p><code>postMessage()</code> sends a message from JavaScript to the module
asynchronously. This means that the response must be handled in a callback.
</p>
<p><code>postMessageAndAwaitResponse()</code> sends a message synchronously.
JavaScript execution is blocked while the module generates and sends back
a response. The response from the module is returned from the call to
<code>postMessageAndAwaitResponse()</code>, so no callback is necessary.
</p>
<p>Take a look at <code>example.js</code> to see the difference between these
two methods.</p>
<div>
<div>
<label for="addend1">1st Number:</label>
<input type="number" id="addend1" value="123">
</div>
<div>
<label for="addend2">2nd Number:</label>
<input type="number" id="addend2" value="234">
</div>
<div>
<label for="result">Sum:</label>
<span id="result"></span>
</div>
<input type="button" id="addAsync" value="Add Asynchronously">
<input type="button" id="addSync" value="Add Synchronously">
</div>
<div id="listener"></div>
</body>
</html>