(function(context){ document.getElementById("appid").value=chrome.runtime.id; var remoteAppID =""; chrome.storage.local.get('remoteappid',function (result) { remoteAppID=result.remoteappid; sendId.value=remoteAppID; }); var logField = document.getElementById("log"); var selectSave=document.getElementById("selectSave"); var sendId=document.getElementById("sendId"); var clearLog=document.getElementById("clearLog"); var saveId=document.getElementById("saveId"); saveId.addEventListener('click', function() { var remoteID=sendId.value; appendLog("Saved"); chrome.storage.local.set({'remoteappid': remoteID}); //alert (remoteID); }); var chosenFileEntry=null; clearLog.addEventListener('click', function() { logField.innerText=''; }); errorHandler = function (obj) { sendResponse({"result":"Something Went Wrong."}); console.log(obj); }; selectSave.addEventListener('click', function() { chrome.fileSystem.chooseEntry({type: 'saveFile', suggestedName: 'output.csv'}, function(writableFileEntry) { chosenFileEntry=writableFileEntry; writableFileEntry.createWriter(function(writer) { writer.seek(0); writer.truncate(0); writer.onwriteend = function(e) { }; writer.write(new Blob(['0123456789'], {type: 'text/plain'} )); }, errorHandler); }); }); chrome.runtime.onMessageExternal.addListener( function(request, sender, sendResponse) { if (request.myAction) { appendLog("Action from "+sender.id+": "+request.myAction); //appendLog("Message from "+sender.id+": "+request.myCustomMessage); if (request.myAction=='save' && chosenFileEntry==null){ sendResponse({"result":"No Save File Configured","Success":"false"}); } if (request.myAction=='save' && chosenFileEntry!=null){ var arrData = typeof JSONData != 'object' ? JSON.parse(request.myCustomMessage) : request.myCustomMessage; var CSV = ''; for (var i = 0; i < arrData.length; i++) { var row = ""; for (var index in arrData[i]) { //row += '"' + arrData[i][index] + '",'; row += arrData[i][index] + ','; } row.slice(0, row.length - 1); CSV += row + '\r\n'; } appendLog("Saving CSV : "); chosenFileEntry.file(function(file) { var reader = new FileReader(); reader.onload = function(e) { var contents =e.target.result; if (request.myIndex==1){ contents=''; appendLog("Clearing Contents"); } appendLog("Saving Index : " + request.myIndex);//+CSV); CSV=contents+CSV; chrome.fileSystem.getWritableEntry(chosenFileEntry, function(writableFileEntry) { writableFileEntry.createWriter(function(writer) { writer.onwriteend = function(e) { appendLog("Save Complete - Sending Message"); sendReply("true","Ok Saved :",request.myIndex); }; chosenFileEntry.file(function(file) { writer.write(new Blob([CSV], {type: 'text/plain'})); }); }, errorHandler); }); }; reader.readAsText(file); }); } } else { sendResponse({"result":"Ops, I don't understand this message :" + request}); } }); function sendReply(myResult,myResultAction,pageIndex){ chrome.runtime.sendMessage( sendId.value, {result: myResult, myResultAction : myResultAction, myResultIndex : pageIndex}, function(response) { console.log("response: "+JSON.stringify(response)); appendLog("response: "+JSON.stringify(response)); } ) } var appendLog = function(message) { logField.innerText+="\n"+message; }; context.appendLog = appendLog; })(window)