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. 6function attachListeners() { 7 document.getElementById('fileInput').addEventListener('change', 8 handleFileInput); 9 document.getElementById('listener').addEventListener('drop', 10 handleFileDrop, true); 11} 12 13function 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. 23function 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. 34function 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