Commit graph

77 commits

Author SHA1 Message Date
lilia
12276e691b Refactor contents of sendMessageProto
This function dynamically declares a bunch of functions which bind to
its input arguments. Instead, use a new prototypal class to define
these functions within the context of a particular message.

// FREEBIE
2015-10-23 15:53:20 -07:00
lilia
b9b01330fe Move jquery from libtextsecure components
Jquery is not required by libtextsecure, but our test coverage tool,
blanket, depends on it.

// FREEBIE
2015-10-19 12:51:59 -07:00
lilia
b0112e8c2e Remove unnecessary check in gruntfile
There's only one reference to the server url nowadays.

// FREEBIE
2015-10-16 18:19:25 -07:00
lilia
bc0c9bd133 Remove attachment host string replace
This host is no longer hard coded anywhere.

// FREEBIE
2015-10-02 18:00:40 -07:00
lilia
e30ac86c8a Remove deleted file from concatentation list
// FREEBIE
2015-10-01 18:43:17 -07:00
lilia
0ec9e691d8 Tweak dev and default grunt tasks
Preen is only needed when installing new components so take that out of
the default task.

Dev task was set up to run sass after watch which can't happen since
watch loops forever, watching. Instead, do a rebuild of js and sass
files before starting the watch.

// FREEBIE
2015-08-31 16:45:49 -07:00
lilia
c89d5e59a3 Fixup saucelabs
For some reason, today, firefox sessions fail to spin up when the
platform is not explicitly set to linux.
2015-07-29 17:45:57 -07:00
lilia
05e81a3604 Let grunt-saucelabs wait a little longer for status 2015-07-28 17:36:59 -07:00
lilia
9f8b632fb5 Fix up sauce config 2015-07-28 17:08:30 -07:00
lilia
8851a64bce Increase saucelabs test timeout
We now have 4 tests that take roughly a minute each since they are
testing keepalive timeouts.
2015-07-28 15:42:19 -07:00
lilia
cd363bd84d Integrate keepalives into websocket resources 2015-07-28 13:07:34 -07:00
lilia
d9d4e281cc Keepalive provisioning socket
Fixes #315

// FREEBIE
2015-07-27 18:16:47 -07:00
lilia
1f8856fa69 MessageReceiver accepts a server websocket url
// FREEBIE
2015-07-23 16:10:43 -07:00
lilia
9f1af24b9c Remove old curve25519 build task 2015-06-24 13:40:45 -07:00
lilia
a833d62a71 Implement sync protocol changes
Update protobuf definitions and refactor message receive and decrypt
codepath to support new protocol, including various flavors of sync
messages (sent messages, contacts, and groups).

Also cleans up background.js and lets libtextsecure internalize
textsecure.processDecrypted and ensure that it is called before handing
DataMessages off to the application.

The Envelope structure now has a generic content field and a
legacyMessage field for backwards compatibility. We'll send outgoing
messages as legacy messages, and sync messages as "content" while
continuing to support both legacy and non-legacy messages on the receive
side until old clients have a chance to transition.
2015-06-17 12:29:39 -07:00
lilia
37086fde19 Modify default grunt task to include copy 2015-05-20 14:24:25 -07:00
lilia
88f0aa471f Correct production server url 2015-05-15 14:03:12 -07:00
lilia
242f1e80a7 Fix image corruption in /dist 2015-05-15 14:02:29 -07:00
lilia
7da9a1d5a7 Use production server in /dist 2015-05-07 15:01:46 -07:00
lilia
7d0aeac8cb Use a worker to facilitate key generation 2015-05-05 17:44:55 -07:00
lilia
f465bdddbf Add textsecure.AccountManager
This class should be used for account registration and for refreshing
prekeys for your account.
2015-05-05 17:44:55 -07:00
lilia
96eafc7750 Integrate libaxolotl async storage changes
* Session records are now opaque strings, so treat them that way:
  - no more cross checking identity key and session records
  - Move hasOpenSession to axolotl wrapper
  - Remote registration ids must be fetched async'ly via protocol wrapper
* Implement async AxolotlStore using textsecure.storage
* Add some db stores and move prekeys and signed keys to indexeddb
* Add storage tests
* Rename identityKey storage key from libaxolotl25519KeyidentityKey to
  simply identityKey, since it's no longer hardcoded in libaxolotl
* Rework registration and key-generation, keeping logic in libtextsecure
  and rendering in options.js.
* Remove key_worker since workers are handled at the libaxolotl level
  now
2015-05-05 17:44:55 -07:00
lilia
849a407433 Add mock-socket for testing socket stuff 2015-04-30 15:43:11 -07:00
lilia
36b1e87214 Add textsecure.MessageReceiver
Encapsulate the websocket resources and socket setup process in a
friendly OO class. The MessageReceiver constructor expects an instance
of EventTarget on which to fire message events asynchronously. The
provider of the EventTarget can then add/remove listeners as desired.
2015-04-29 16:50:20 -07:00
lilia
c68bf07409 Don't jscs the generated key_worker.js 2015-04-15 17:06:06 -07:00
lilia
bdecf5cc44 Generate key_worker.js
Instead of calling importScripts, which is prone to relative path
issues, generate the worker script with everything it needs included.
2015-04-15 15:38:57 -07:00
lilia
23feeecbcf Wrap libts, don't leak into global namespace 2015-04-05 16:42:08 -07:00
lilia
9effa85e40 Remove libaxolotl concat task 2015-04-05 16:42:07 -07:00
Matt Corallo
454b4726bd Replace load/decode/index around our own number with helpers 2015-03-25 11:54:55 -07:00
lilia
ebdc8650ed Fix copy task 2015-03-20 10:47:45 -07:00
lilia
c526dbda5f Set up production build task
`grunt copy`

Closes #191
2015-03-19 18:34:56 -07:00
Matt Corallo
d3c158f4cf Move libaxolotl out-of-tree 2015-03-17 14:43:23 -07:00
lilia
5df56663ef Let jscs ignore libtextsecure.js
Fix warnings about mixed tabs and spaces. They are in compiled code.
2015-03-16 16:28:53 -07:00
lilia
9e04910124 Recompile curve25519 with emcc 1.29.0
Now with actual malloc/free implementations. Had to drop back to -O1
optimization because the ed25519 signature test broke with -O2. :(

Closes #153

The toolchain install and build process, for reference:
```
wget https://s3.amazonaws.com/mozilla-games/emscripten/releases/emsdk-portable.tar.gz
tar xvfz emsdk-portable.tar.gz
cd emsdk-portable
./emsdk update
./emsdk install latest
./emsdk activate latest
source ./emsdk_env.sh
cd ../TextSecure-Browser
grunt build
```
2015-03-16 16:07:47 -07:00
lilia
8ee282b1aa Restyle registration page
When first intalling, users will no longer be presented with the option
to register as a standalone client.

For developer convenience, the standalone form can still be found at
chrome-extension://.../register.html

Closes #159
2015-03-06 15:27:49 -08:00
lilia
a9cf4bd93e Update test config to run against latest Chrome
Break up some long lines while I'm here.
2015-03-05 18:29:00 -08:00
lilia
f35e8f347e Add grunt watch tasks to rebuild libs 2015-02-23 11:58:21 -08:00
lilia
ec43a0b633 jshint all the things
Small style fixes here and there. Removed one unused file.
2015-02-19 00:22:23 -08:00
lilia
76da5bb4f9 Add background.js to jshint 2015-02-18 23:59:41 -08:00
Matt Corallo
148410a826 Move jquery dep from libaxolotl to libaxolotl tests 2015-02-12 15:12:02 -08:00
Matt Corallo
1806210b26 Rewrite most of the device storage stuff 2015-02-12 15:12:00 -08:00
Matt Corallo
3e648b0ea0 Move groups storage back to libtextsecure 2015-02-12 15:12:00 -08:00
Matt Corallo
403ae4376d Move attachment/websocket [en|de]cryption to libtextsecure 2015-02-12 15:11:58 -08:00
Matt Corallo
a9617068a2 Move key updating and retry handling to libtextsecure 2015-02-12 15:11:58 -08:00
Matt Corallo
184b1ec89c Move protocol protobufs to libaxolotl/, handling DeviceControl 2015-02-12 15:11:58 -08:00
Matt Corallo
66cf5b08db Naively move textsecure.crypto into axolotl.crypto 2015-02-12 15:11:58 -08:00
Matt Corallo
849fdb7ae4 Move group storage into window.axolotl 2015-02-12 15:11:57 -08:00
Matt Corallo
83c6fe9008 Moveish the first files to libaxolotl/ 2015-02-12 15:11:57 -08:00
lilia
ec01d33b50 Reorganize stylesheets and global styles
Simplifies the grunt watch task for sass. Renames sass partials with
leading underscores. Flattens stylesheet directory. The only remaining
raw css file is options.css.

Move globally-relevant styles to _global. Shrink overall font size.
2015-02-11 17:38:03 -08:00
lilia
ed13d47125 Break up grunt watch tasks 2015-02-11 17:38:00 -08:00