| Left: | ||
| Right: |
| LEFT | RIGHT |
|---|---|
| 1 function get(url, callback) | 1 function get(url, callback) |
| 2 { | 2 { |
| 3 let request = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"] | 3 let request = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"] |
| 4 .createInstance(Ci.nsIXMLHttpRequest); | 4 .createInstance(Ci.nsIXMLHttpRequest); |
| 5 request.mozBackgroundRequest = true; | 5 request.mozBackgroundRequest = true; |
| 6 request.open("GET", url); | 6 request.open("GET", url); |
| 7 if (callback) | 7 if (callback) |
| 8 request.addEventListener("load", function() | 8 request.addEventListener("load", callback.bind(undefined, request)); |
| 9 { | |
|
Wladimir Palant
2012/09/21 15:36:18
How about request.addEventListener("load", callbac
| |
| 10 callback(request); | |
| 11 }); | |
| 12 request.send(); | 9 request.send(); |
| 13 } | 10 } |
| 14 | 11 |
| 15 function postFile(url, window, filePath, callback) | 12 function postFile(url, filePath, callback) |
| 16 { | 13 { |
| 17 let formData = Cc["@mozilla.org/files/formdata;1"] | 14 let formData = Cc["@mozilla.org/files/formdata;1"] |
| 18 .createInstance(Ci.nsIDOMFormData); | 15 .createInstance(Ci.nsIDOMFormData); |
| 19 formData.append("file", new window.File(filePath)); | 16 formData.append("file", new File(filePath)); |
|
Wladimir Palant
2012/09/21 15:36:18
If you use window.File then you can also use windo
| |
| 20 | 17 |
| 21 let request = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"] | 18 let request = Cc["@mozilla.org/xmlextras/xmlhttprequest;1"] |
| 22 .createInstance(Ci.nsIXMLHttpRequest); | 19 .createInstance(Ci.nsIXMLHttpRequest); |
| 23 request.mozBackgroundRequest = true; | 20 request.mozBackgroundRequest = true; |
| 24 request.open("POST", url); | 21 request.open("POST", url); |
| 25 if (callback) | 22 if (callback) |
| 26 request.addEventListener("load", function() | 23 request.addEventListener("load", callback.bind(undefined, request)); |
|
Wladimir Palant
2012/09/21 15:36:18
Same as above, better use Function.bind().
| |
| 27 { | |
| 28 callback(request); | |
| 29 }); | |
| 30 request.send(formData); | 24 request.send(formData); |
| 31 } | 25 } |
| 32 | 26 |
| 33 let Client = exports.Client = {}; | 27 let Client = exports.Client = {}; |
| 34 | 28 |
| 35 Client.fetchCrawlableSites = function(backendUrl, callback) | 29 Client.fetchCrawlableSites = function(backendUrl, callback) |
| 36 { | 30 { |
| 37 get(backendUrl + "/crawlableSites", function(request) | 31 get(backendUrl + "/crawlableSites", function(request) |
| 38 { | 32 { |
| 39 let sites = request.responseText.trim().split("\n"); | 33 let sites = request.responseText.trim().split("\n"); |
| 40 callback(sites); | 34 callback(sites); |
| 41 }); | 35 }); |
| 42 }; | 36 }; |
| 43 | 37 |
| 44 Client.sendCrawlerDataFile = function(backendUrl, window, dataFilePath, callback ) | 38 Client.sendCrawlerDataFile = function(backendUrl, dataFilePath, callback) |
| 45 { | 39 { |
| 46 postFile(backendUrl + "/crawlerData", window, dataFilePath, callback); | 40 postFile(backendUrl + "/crawlerData", dataFilePath, callback); |
| 47 }; | 41 }; |
| LEFT | RIGHT |