1 // Copyright (c) 2012 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 5 // Called by the common.js module. 6 function attachListeners() { 7 document.getElementById('fileInput').addEventListener('change', 8 handleFileInput); 9 document.getElementById('listener').addEventListener('drop', 10 handleFileDrop, true); 11 } 12 13 function postFileContents(file) { 14 var reader = new FileReader(); 15 reader.onload = function(load_event) { 16 if (common.naclModule) 17 common.naclModule.postMessage(load_event.target.result); 18 } 19 reader.readAsArrayBuffer(file); 20 } 21 22 // Handle a file being dropped on to the plugin's rectangle. 23 function handleFileDrop(dropEvent) { 24 if (!dropEvent.dataTransfer || !dropEvent.dataTransfer.files) 25 return; 26 dropEvent.stopPropagation(); 27 dropEvent.preventDefault(); 28 var files = dropEvent.dataTransfer.files; 29 for(var i = 0; i < files.length; ++i) 30 postFileContents(files[i]); 31 } 32 33 // Handle a file being chosen from the <input type=file...> tag. 34 function handleFileInput() { 35 var file_input = document.getElementById("fileInput"); 36 var files = file_input.files; 37 for(var i = 0; i < files.length; ++i) 38 postFileContents(files[i]); 39 } 40