1bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com<!DOCTYPE html>
2bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com<html>
3bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com  <!--
4bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com  Copyright 2013 Google Inc.
5bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com
6bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com  Use of this source code is governed by a BSD-style license that can be
7bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com  found in the LICENSE file.
8bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com  -->
9bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com<head>
10bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com
11bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com  <title>Skia Hello World</title>
12bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com
13bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com  <script type="text/javascript">
14bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com    "use strict";
15bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com
16bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com    var SkiaModule = null;  // Global application object.
17bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com
18bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com    // Force a re-draw of the given element.
19bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com    function refresh(elem) {
20bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com      var old_display_style = elem.style.display;
21bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com      elem.style.display = "none";
22bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com      elem.style.display = old_display_style;
23bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com    }
24bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com
25bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com    // When the module loads, begin running the application.
26bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com    function moduleDidLoad() {
27bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com      SkiaModule = document.getElementById("skia_nacl");
28bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com      run();
29bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com    }
30bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com
31bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com    function handleMessage(message_event) {
32bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com      var skdebugf_cmd = "SkDebugf:";
33bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com      if (message_event.data.indexOf(skdebugf_cmd) == 0) {
34bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com        var msg_contents = message_event.data.slice(skdebugf_cmd.length)
35bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com        console.log("Skia: " + msg_contents);
36bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com      } else {
37bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com        alert(message_event.data);
38bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com      }
39bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com    }
40bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com
41bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com    // Run the application.
42bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com    function run() {
43bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com      if (SkiaModule) {
44bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com        var cmd = "init";
45bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com        SkiaModule.postMessage(cmd);
46bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com      } else {
47bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com        alert("The Skia module has not properly loaded...");
48bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com      }
49bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com    }
50bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com  </script>
51bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com</head>
52bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com<body>
53bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com
54bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com<h1>Skia Hello World</h1>
55bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com<p>
56bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com  <div id="listener">
57bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com    <script type="text/javascript">
58bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com      var listener = document.getElementById('listener');
59bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com      listener.addEventListener('load', moduleDidLoad, true);
60bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com      listener.addEventListener('message', handleMessage, true);
61bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com    </script>
62bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com
63bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com    <embed name="nacl_module"
64bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com       id="skia_nacl"
65bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com       width=300 height=300
66bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com       src="skhello.nmf"
67bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com       type="application/x-nacl" />
68bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com  </div>
69bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com</p>
70bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com</body>
71bb5228888253b21ce81f0a89b605cdd7f88c0efcborenet@google.com</html>
72