antimony

drive firefox from node.js
git clone https://wehaveforgeathome.hates.computer/antimony.git
Log | Files | Refs | Submodules | LICENSE

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