diff options
author | Sukhbir Singh <sukhbir@torproject.org> | 2017-12-12 02:59:34 -0500 |
---|---|---|
committer | Ruben Pollan <meskio@sindominio.net> | 2017-12-17 18:21:06 +0200 |
commit | 8c50952bb542a09ebe591d9dba3b4d89d4837b54 (patch) | |
tree | 902a832f999c1198da3e3094a3d9bbcb6c1e8804 | |
parent | 2acf226ac3503f349422ae29fee4145f459e66db (diff) |
[feat] Add support for calling bitmask.js from Firefox/Thunderbird
- To be able to call bitmask.js from Thunderbird (for the Bitmask
Thunderbird extension), we need to set `api_url' and also read the
`authtoken' file from disk. This commit adds support for that and
restricts the changes by using window.location.protocol.
- Add function for fetching bitmaskd status.
Signed-off-by: Ruben Pollan <meskio@sindominio.net>
-rw-r--r-- | ui/app/lib/bitmask.js | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/ui/app/lib/bitmask.js b/ui/app/lib/bitmask.js index 31a1e938..6ab87ff3 100644 --- a/ui/app/lib/bitmask.js +++ b/ui/app/lib/bitmask.js @@ -48,6 +48,29 @@ var bitmask = function(){ api_token = window.location.hash.replace('#', '') } + // If the script is running from a Firefox (or Thunderbird) extension, get + // the api_token from ~/.config/leap/authtoken, and also set the api_url. + if (window.location.protocol === "chrome:") { + // Use the correct URL for the API. + api_url = 'http://localhost:7070/API/'; + + // Now fetch the token file and set api_token. + Components.utils.import("resource://gre/modules/osfile.jsm") + + let tokenPath = OS.Path.join(OS.Constants.Path.homeDir, ".config", "leap", "authtoken") + let decoder = new TextDecoder(); + + setInterval(function get_token_file() { + let promise = OS.File.read(tokenPath); + promise = promise.then(array => { + api_token = decoder.decode(array); + }, ex => { + api_token = null; + }); + return get_token_file; + }(), 3000); + } + function call(command) { var url = api_url + command.slice(0, 3).join('/'); var data = JSON.stringify(command.slice(3)); @@ -131,6 +154,13 @@ var bitmask = function(){ */ stop: function() { return call(['core', 'stop']); + }, + + /** + * Get bitmaskd status + */ + status: function() { + return call(['core', 'status']); } }, |