A private messenger for Windows, macOS, and Linux.
Go to file
Markus Rothe bcff1cf991 README.md: make links clickable 2015-01-09 07:55:14 -10:00
build Simplify webcrypto type conversion 2014-11-09 21:52:36 -08:00
components Support for lower-level queries on indexedDB 2014-12-18 19:45:53 -08:00
images Default avatars 2014-10-29 16:05:51 -07:00
js Always listen for (re-)registration events 2015-01-07 19:09:07 -10:00
nacl JS ed25519 2014-07-20 16:49:40 -04:00
protos New websocket protocol 2014-11-14 17:48:57 -08:00
stylesheets s/\t/ /g in stylesheets/options.css 2015-01-06 14:49:04 -08:00
test Remove last \t in crypto_test.js 2015-01-06 14:47:39 -08:00
.bowerrc Rename bower_components 2014-10-30 16:53:08 -07:00
.gitignore Clean up after crazy emscripten fueled rager 2014-11-08 11:03:24 -08:00
.jshintrc Run tests on Sauce Labs 2014-11-22 20:30:57 -08:00
.travis.yml Add secure environment vars for travis 2014-11-24 14:23:51 -08:00
Gruntfile.js Re-enable sauce for PR's 2015-01-07 19:33:23 -10:00
LGPL LGPL license (I'd like to be an axolotl/TS JS lib in the future) 2014-05-04 02:34:13 -04:00
README.md README.md: make links clickable 2015-01-09 07:55:14 -10:00
X11 rm useless GPL, license testvectors under X11 (ie 3-c MIT + advertising provision) 2014-10-26 02:59:59 -07:00
background.html s/\t/ /g in {background,options}.html 2015-01-06 14:51:59 -08:00
bower.json Move message and conversation storage to IndexedDB 2014-11-24 19:25:03 -08:00
icon.png Random things from James-Firth incl update icon 2014-05-26 00:55:38 +02:00
index.html Contact name now overflows into ellipsis 2014-12-22 23:38:26 -08:00
manifest.json s/\t/ /g in manifest.json 2015-01-06 14:52:15 -08:00
options.html s/\t/ /g in {background,options}.html 2015-01-06 14:51:59 -08:00
package.json Update name and repository in package.json 2014-12-12 14:33:18 -08:00

README.md

TextSecure Chromium Implementation

Build Status

This is very early stuff and exists primarily to get the crypto in place. This does not currently work, dont bother trying to use it seriously yet

Getting Started with Development

These steps are for development only.

  • Clone the repo
  • Open Chrome
  • Go to chrome://extensions/
  • Enable developer mode (checkbox on the top right)
  • Click "Load unpacked extension..."
  • Point to the repo's directory

Note that for development, the TextSecure staging environment uses a self-signed certificate, which Chrome will complain is insecure. So first visit https://textsecure-service-staging.whispersystems.org/ in your browser and allow the certificate.

Now, in the extension's options, you can register for TextSecure:

  • Select "Register" under "I'm new to TextSecure".
  • Enter a real phone number (Google Voice numbers work too) and country combination and choose to send an SMS. You will receive a real SMS.
  • Enter the verification code you received by SMS.

You should now be able to use the extension. If you need to reset your development environment, open a browser console within the extension options page (or inspect background.html) and execute localStorage.clear() to clear out the settings.

Dependencies

Note: Unless you need to make changes to dependencies, you can skip this section and just use the checked in versions.

Dependencies are managed by bower and built with grunt. To change them, you'll need to install node and npm, then run npm install to install bower, grunt, and related plugins.

Adding a bower component

Add the package name and version to bower.json under 'dependencies' or bower install package-name --save

Next update the "preen" config in bower.json with the list of files we will actually use from the new package, e.g.:

  "preen": {
    "package-name": [
      "path/to/main.js",
      "directory/**/*.js"
    ],
    ...
  }

If you'd like to add the new dependency to js/components.js to be included on all html pages, simply append the package name to the concat.app list in bower.json. Take care to insert it in the order you would like it concatenated.

Now, run grunt to delete unused package files and build js/components.js.

Finally, stage and commit changes to bower.json, js/components.js, and components/. The latter should be limited to files we actually use.

Tests

Please write tests! Our testing framework is mocha and our assertion library is chai.

To run tests, open test/index.html in your browser. Note that

  • Some tests depend on the native client module. These will fail unless you load the test page from the chrome-extension:// namespace (as opposed to the file:// namespace or via a local webserver.
  • Some tests may read, write or clear localStorage. It is recommended that you create a Chrome user profile just for running tests to avoid clobbering any existing account and message data.