Chromium Code Reviews| OLD | NEW |
|---|---|
| (Empty) | |
| 1 | |
|
Sam Clegg
2014/02/18 23:39:31
Please add copyright to all files in naclports.
| |
| 2 var createEmbed = function(id) { | |
| 3 var embed = document.createElement('object'); | |
| 4 embed.width = 0; | |
| 5 embed.height = 0; | |
| 6 embed.data = 'python.nmf'; | |
| 7 embed.type = 'application/x-nacl'; | |
| 8 document.body.appendChild(embed); | |
| 9 | |
| 10 return embed; | |
| 11 }; | |
| 12 | |
| 13 | |
| 14 chrome.runtime.onConnectExternal.addListener(function(port) { | |
| 15 var embed = null; | |
| 16 // Create an embed element that runs the NaCl kernel | |
| 17 | |
| 18 port.onMessage.addListener(function(msg) { | |
| 19 if (msg.type === 'create') { | |
| 20 embed = createEmbed(msg.id); | |
| 21 | |
| 22 // forward all messages across port | |
| 23 embed.addEventListener('message', function(e) { | |
| 24 var msg = e.data; | |
| 25 msg.type = 'message'; | |
| 26 port.postMessage(msg); | |
| 27 }); | |
| 28 embed.addEventListener('progress', function(e) { | |
| 29 var progress = Math.round(100 * e.loaded / e.total); | |
| 30 if (isNaN(progress)) { progress = 100; } | |
| 31 port.postMessage({type: 'progress', progress: progress}); | |
| 32 }); | |
| 33 embed.addEventListener('loadend', function(e) { | |
| 34 port.postMessage({'type': 'loadend'}) | |
| 35 }); | |
| 36 embed.addEventListener('crash', function() { | |
| 37 port.disconnect(); | |
| 38 }); | |
| 39 } else if (msg.type === 'message') { | |
| 40 embed.postMessage({json: msg.json}); | |
| 41 } | |
| 42 }); | |
| 43 port.onDisconnect.addListener(function() { | |
| 44 console.log("disconnected"); | |
| 45 }); | |
| 46 }); | |
| OLD | NEW |