example.js revision eb525c5499e34cc9c4b825d6d9e75bb07cc06ace
1// Copyright (c) 2013 The Chromium Authors. All rights reserved. 2// Use of this source code is governed by a BSD-style license that can be 3// found in the LICENSE file. 4 5function moduleDidLoad() { 6} 7 8function postThreadFunc(numThreads) { 9 return function () { 10 common.naclModule.postMessage({'message' : 'set_threads', 11 'value' : numThreads}); 12 } 13} 14 15// Add event listeners after the NaCl module has loaded. These listeners will 16// forward messages to the NaCl module via postMessage() 17function attachListeners() { 18 document.getElementById('benchmark').addEventListener('click', 19 function() { 20 common.naclModule.postMessage({'message' : 'run_benchmark'}); 21 common.updateStatus('BENCHMARKING... (please wait)'); 22 }); 23 document.getElementById('drawPoints').addEventListener('click', 24 function() { 25 var checked = document.getElementById('drawPoints').checked; 26 common.naclModule.postMessage({'message' : 'draw_points', 27 'value' : checked}); 28 }); 29 document.getElementById('drawInteriors').addEventListener('click', 30 function() { 31 var checked = document.getElementById('drawInteriors').checked; 32 common.naclModule.postMessage({'message' : 'draw_interiors', 33 'value' : checked}); 34 }); 35 var threads = [0, 1, 2, 4, 6, 8, 12, 16, 24, 32]; 36 for (var i = 0; i < threads.length; i++) { 37 document.getElementById('radio' + i).addEventListener('click', 38 postThreadFunc(threads[i])); 39 } 40 document.getElementById('pointRange').addEventListener('change', 41 function() { 42 var value = parseFloat(document.getElementById('pointRange').value); 43 common.naclModule.postMessage({'message' : 'set_points', 44 'value' : value}); 45 document.getElementById('pointCount').textContent = value + ' points'; 46 }); 47} 48 49// Handle a message coming from the NaCl module. 50// In the Voronoi example, the only message will be the benchmark result. 51function handleMessage(message_event) { 52 if (message_event.data['message'] == 'benchmark_result') { 53 var x = (Math.round(message_event.data['value'] * 1000) / 1000).toFixed(3); 54 document.getElementById('result').textContent = 55 'Result: ' + x + ' seconds'; 56 common.updateStatus('SUCCESS') 57 } 58} 59 60