1311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff<!DOCTYPE html>
264fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com<html>
364fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com  <!--
464fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com  Copyright 2013 Google Inc.
564fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com
664fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com  Use of this source code is governed by a BSD-style license that can be
764fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com  found in the LICENSE file.
864fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com  -->
964fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com<head>
1064fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com
1164fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com  <title>Skia Sample App</title>
1264fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com
1364fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com  <script type="text/javascript">
1464fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com    "use strict";
1564fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com
1664fe2324403ea78dbd781073f4e5b34768676e2copenvcdiff@gmail.com    var SkiaModule = null;  // Global application object.
17311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff
18311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff    // Force a re-draw of the given element.
19311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff    function refresh(elem) {
20311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff      var old_display_style = elem.style.display;
21311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff      elem.style.display = "none";
22311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff      elem.style.display = old_display_style;
23311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff    }
24311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff
25311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff    // When the module loads, begin running the application.
26311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff    function moduleDidLoad() {
27311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff      SkiaModule = document.getElementById("skia_nacl");
28311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff      run();
29d18457863096b3685e56f5a8919959f6afbdb121openvcdiff    }
30311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff
31311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff    function handleMessage(message_event) {
32311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff      var skdebugf_cmd = "SkDebugf:";
33311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff      if (message_event.data.indexOf(skdebugf_cmd) == 0) {
34311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff        var msg_contents = message_event.data.slice(skdebugf_cmd.length)
35311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff        console.log("Skia: " + msg_contents);
36311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff      } else {
37311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff        alert(message_event.data);
38311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff      }
39311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff    }
40311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff
41311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff    // Run the application.
42311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff    function run() {
43311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff      if (SkiaModule) {
44311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff        var cmd = "init";
45311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff        SkiaModule.postMessage(cmd);
46311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff      } else {
47311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff        alert("The Skia module has not properly loaded...");
48d18457863096b3685e56f5a8919959f6afbdb121openvcdiff      }
49d18457863096b3685e56f5a8919959f6afbdb121openvcdiff    }
50311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff  </script>
51311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff</head>
52311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff<body>
53311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff
54311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff<h1>Skia Sample App</h1>
55311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff<p>
56311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff  <div id="listener">
57311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff    <script type="text/javascript">
58311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff      var listener = document.getElementById('listener');
59311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff      listener.addEventListener('load', moduleDidLoad, true);
60311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff      listener.addEventListener('message', handleMessage, true);
61311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff    </script>
62311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff
63311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff    <embed name="nacl_module"
64311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff       id="skia_nacl"
65311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff       width=0 height=0
66311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff       src="SampleApp.nmf"
67d18457863096b3685e56f5a8919959f6afbdb121openvcdiff       type="application/x-nacl" />
68d18457863096b3685e56f5a8919959f6afbdb121openvcdiff  </div>
69311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff</p>
70311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff</body>
71311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff</html>
72311c71486f5f6074e5ba62a7f4c5397c8700b868openvcdiff