A private messenger for Windows, macOS, and Linux.
Go to file
lilia 73f4f64351 Grunt preen and concat
Set up grunt with tasks for:
  * preen - deletes unused files from bower_components, configured in
      bower.json
  * concat - concatenates preened bower components, configured
      automagically from the preen config

It's worth noting that this setup assumes the order of files within a
package doesn't matter. This is usually true since we often include only
one file from the package.
2014-10-29 20:50:51 -07:00
bower_components Switch to bower dependencies 2014-10-29 20:50:51 -07:00
css Refactor options page and style using bootstrap 2014-10-14 13:59:43 -07:00
images Default avatars 2014-10-29 16:05:51 -07:00
js Don't warn on missing message bodies 2014-10-29 20:50:51 -07:00
js-deps Grunt preen and concat 2014-10-29 20:50:51 -07:00
nacl JS ed25519 2014-07-20 16:49:40 -04:00
protos Fix a missing function and dont blow up on delivery receipts 2014-07-26 01:53:24 -04:00
stylesheets Switch to bower dependencies 2014-10-29 20:50:51 -07:00
test Grunt preen and concat 2014-10-29 20:50:51 -07:00
.gitignore Grunt preen and concat 2014-10-29 20:50:51 -07:00
Gruntfile.js Grunt preen and concat 2014-10-29 20:50:51 -07: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 Grunt preen and concat 2014-10-29 20:50:51 -07: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 Grunt preen and concat 2014-10-29 20:50:51 -07:00
bower.json Grunt preen and concat 2014-10-29 20:50:51 -07:00
icon.png Random things from James-Firth incl update icon 2014-05-26 00:55:38 +02:00
index.html Grunt preen and concat 2014-10-29 20:50:51 -07:00
manifest.json use new index page for popup 2014-08-25 19:01:18 -07:00
options.html Grunt preen and concat 2014-10-29 20:50:51 -07:00
package.json Grunt preen and concat 2014-10-29 20:50:51 -07:00

README.md

TextSecure Chromium Implementation

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

Dependencies are managed by bower. You'll need to install node, npm, and bower to change them.

Adding a bower component

Add the package 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": {
    "new-package": ["path/to/main.js", "directory/**/*.js"],
    ...
  }

Now, run grunt to delete unused package files and concatenate the remaining javascript files into js-deps/bower_components.js. Note that packages will be concatenated in order as specified in the preen config.

Finally, stage and commit changes to bower.json, js-deps/bower_components.js, and bower_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:

Tips/Tricks

  • Loading the test.html page may read, write or clear localStorage. To avoid having to choose between running tests and preserving your existing messages, keys, and other extension data, much of the test suite can be run by starting a local webserver in the repository root, e.g. python -m SimpleHTTPServer. You can then access the test page at http://0.0.0.0:8000/test.html.