runner.js (1153B)
1 netscape.security.PrivilegeManager.enablePrivilege('UniversalBrowserRead UniversalBrowserWrite UniversalXPConnect'); 2 3 // handle communication with the server 4 var Server = function (requestHandler) { 5 var that = this; 6 this.requestHandler = requestHandler; 7 var socket = this.socket = new io.Socket('localhost', { 8 port: 1234, 9 transports: ['websocket', 'htmlfile', 'xhr-multipart', 'xhr-polling'] 10 }); 11 socket.connect(); 12 socket.on('message', function (data) { that.readMessage(data); }); 13 }; 14 Server.prototype.sendMessage = function (obj) { 15 var json = JSON.stringify(obj); 16 this.socket.send(json); 17 }; 18 Server.prototype.readMessage = function (json) { 19 var obj = JSON.parse(json); 20 this.requestHandler(obj); 21 }; 22 23 var Cc = Components.classes, 24 Ci = Components.interfaces; 25 26 var Tab = function (url) { 27 var windowManager = Cc["@mozilla.org/appshell/window-mediator;1"]. 28 getService(Ci.nsIWindowMediator); 29 var chromeWindow = windowManager.getMostRecentWindow("navigator:browser"); 30 var gBrowser = chromeWindow.gBrowser; 31 var tab = gBrowser.addTab(url); 32 }; 33 34 var server = new Server(function (request) { 35 new Tab(request.url); 36 }); 37