var tcpUI = tcpUI || {}; var tcpServer; var commandWindow; tcpUI.create = function() { if (commandWindow && !commandWindow.contentWindow.closed) { commandWindow.focus(); } else { chrome.app.window.create('index.html', {id: "mainwin", innerBounds: {width: 500, height: 309, left: 0}}, function(w) { commandWindow = w; }); } } /** * Listens for the app launching then creates the window * * @see https://developer.chrome.com/apps/app_runtime * @see https://developer.chrome.com/apps/app_window */ chrome.app.runtime.onLaunched.addListener(tcpUI.create); // event logger var log = (function(){ var logLines = []; var logListener = null; var output=function(str) { if (str.length>0 && str.charAt(str.length-1)!='\n') { str+='\n' } logLines.push(str); if (logListener) { logListener(str); } }; var addListener=function(listener) { logListener=listener; // let's call the new listener with all the old log lines for (var i=0; i0) { var info="["+socketInfo.peerAddress+":"+socketInfo.peerPort+"] "+line; log.output(info); var cmd=line.split(/\s+/); try { tcpConnection.sendMessage(Commands.run(cmd[0], cmd.slice(1))); } catch (ex) { tcpConnection.sendMessage(ex); } } } }); }; function startServer(addr, port) { if (tcpServer) { tcpServer.disconnect(); } tcpServer = new TcpServer(addr, port); tcpServer.listen(onAcceptCallback); } function stopServer() { if (tcpServer) { tcpServer.disconnect(); tcpServer=null; } } function getServerState() { if (tcpServer) { return {isConnected: tcpServer.isConnected(), addr: tcpServer.addr, port: tcpServer.port}; } else { return {isConnected: false}; } } tcpUI.startServer = function(addr, port) { startServer(addr, port); } tcpUI.stopServer = function() { stopServer(); }