Commit Graph

51 Commits

Author SHA1 Message Date
lilia 00989962d8 Rename worker script file 2015-04-15 14:42:01 -07:00
Patrick Connolly b5d724ffc3 Replaced frontend getString calls broken in d3c158f.
Closes #224
2015-04-15 11:56:36 -07:00
lilia 13ce354ab8 Registration UX improvements
Add some nice modal dialogs instead of confirmation alerts.
2015-03-26 15:20:17 -07:00
lilia bfe23d86aa Run key generation in a worker
Ground work for a smoother registration flow. Overall UX still needs
some polish but at least now we can have a progress gif or animation or
whatever. Also adds the phonenumber-confirmation step as a simple alert
box, which will be replaced with a nice dialogue in a later commit.
2015-03-26 10:49:52 -07:00
Matt Corallo 454b4726bd Replace load/decode/index around our own number with helpers 2015-03-25 11:54:55 -07:00
lilia fa3699cdd3 Trigger desktop notifications
Notifications show the conversation name, avatar, and new message text.
Clicking the notification opens the conversation.
2015-03-18 16:29:01 -07:00
Matt Corallo d3c158f4cf Move libaxolotl out-of-tree 2015-03-17 14:43:23 -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 44a31f3ed9 Remove unneeded function 2015-03-05 15:36:48 -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
Matt Corallo bb32a51d66 s/textsecure.protocol/axolotl.protocol/ 2015-02-12 15:11:58 -08:00
lilia 05a5b7e76c Fixes #152
Android client was crashing any time the base64-encoded public key
included a '+' due to lack of url encoding.
2015-02-12 15:09:52 -08:00
Matt Corallo 02d0c58e5e Mostly done device-bringup stuff 2015-02-11 14:03:54 -08:00
Matt Corallo 29b2ffc769 Update to real server provisioning API 2015-01-19 10:23:25 -10:00
lilia 5d044bd00e Fire an event on phone number validation
Fix a bug introduced by recent phone number input work that prevented
the call and sms buttons from being clickable.
2015-01-17 22:51:32 -10:00
Emily Chao 5d3020b9ed Refactor phone number input view
Moves validation logic to its own view to be shared on index and options
pages.
2015-01-15 11:51:32 -10:00
lilia 5a0e199fc5 Namespace registration helpers 2014-11-13 15:53:56 -08:00
lilia 4119c13ba2 Registration ux tweaks 2014-11-10 16:24:00 -08:00
lilia a1a528ccdd Finish abstracting native client
Firstly, don't initialize textsecure.nativclient unless the browser
supports it. The mimetype-check trick is hewn from nacl-common.js.

Secondly, nativeclient crypto functions will all automatically wait for
the module to load before sending messages, so we needn't register any
onload callbacks outside nativeclient.js. (Previously, if you wanted to
do crypto with native client, you would have to register a call back and
wait for the module to load.) Now that the native client crypto is
encapsulated behind a nice interface, it can handle all that
onload-callback jazz internally: if the module isn't loaded when you
call a nativeclient function, return a promise that waits for the load
callback, and eventually resolves with the result of the requested
command. This removes the need for textsecure.registerOnLoadCallback.

Finally, although native client has its quirks, it's significantly
faster than the alternative (emscripten compiled js), so this commit
also lets the crypto backend use native client opportunistically, if
it's available, falling back to js if not, which should make us
compatible with older versions of chrome and chromium.
2014-11-09 15:23:23 -08:00
lilia 9f676af9bb Refactor crypto.js and native client interface
NB: this diff is best viewed with --ignore-whitespace

Distills crypto.js down to the hard cryptoey bones. It pulls from
webcrypto for aes and hmac, and from native client for curve25519 stuff
or potentially another object implementing the handful of needed
curve25519 functions.

Everything else formerly known as crypto, including session storage and
management, axolotl, etc.. is now protocol.js. The separation is not
quite perfect, but it's a big step.

nativeclient.js now enables talking to the native client module through
a high level interface as well as registering callbacks that will be
executed once the module is loaded. And it has tests!

Finally, this commit removes all references to the "testing_only"
object, preferring to run tests on textsecure.crypto instead.
2014-11-06 04:33:43 -08:00
lilia ca7ba43b13 Fix overly hidden elements on registration page
Latest bootstrap css is really aggressive about hiding things.
2014-10-30 14:20:42 -07:00
lilia 2bd77693e1 Refactor options page and style using bootstrap 2014-10-14 13:59:43 -07:00
lilia 81e4af5827 Move phonenumbery utils to libphonenumber object
Slowly whittling away at helpers.js...
2014-10-13 22:49:39 -07:00
lilia 75e78caec8 Function-wrap options.js 2014-10-10 16:58:44 -07:00
lilia 683c373943 Relaxes verification code validation
When codes are sent they are formatted as xxx-xxx. Previously when I
would paste these from GVoice they failed validation thanks to the dash
and whatever whitespace I happened to grab.
2014-10-10 16:32:22 -07:00
Matt Corallo 90eb9cb0c8 Remove ping, update to latest spec proposal 2014-07-26 18:15:24 -04:00
Matt Corallo a6b0d1f84b Add entirely untested secondary device init 2014-07-26 01:32:05 -04:00
Marco 13a9329bcf improved number validation (based on google's libphonenumber) 2014-06-29 16:39:05 -07:00
Marco 5cddcb59aa improved some css for options.html 2014-06-01 22:31:19 +02:00
Matt Corallo 5cea7b6857 Few typos blocking registration 2014-05-28 04:03:23 +02:00
Matt Corallo 56433bd9af One more tiny error refactor 2014-05-28 03:45:40 +02:00
Matt Corallo 68131a6e2a Add human readable version of errors 2014-05-28 03:45:40 +02:00
Matt Corallo 753a950816 Redo registration process 2014-05-28 03:45:40 +02:00
Matt Corallo 18f1eed70f Some number verification refactor stuff 2014-05-26 00:45:55 +02:00
lilia de0a1df3ca Fix broken registration flow
Better load the functions defined in chromium.js before trying to use
them. Hmm.. also, options.js should probably wait for the DOM to load
before it tries to initialize things in it.
2014-05-20 21:39:29 -07:00
Matt Corallo d9bf0a41fb textsecure.storage, chromium.js 2014-05-20 22:21:07 -04:00
Matt Corallo 6bc19ef558 More namespacing 2014-05-17 01:53:58 -04:00
Matt Corallo 05101b69b0 Some initial helpers.js namespaceing 2014-05-17 00:54:12 -04:00
Matt Corallo e3097746c0 Check registration ID on prekeymsg 2014-05-14 18:15:46 -04:00
Matt Corallo 8d408e6d8f THOUGH SALL USE TABSTOP AND SHIFTWIDTH 4 (so that indents read right) 2014-05-14 17:21:49 -04:00
lilia e3b00e08f3 Generate and submit registrationId, fixes #25
If we're expecting to get registrationIds from others, it's only fair
that we also supply our own.
2014-05-13 20:10:30 -07:00
Matt Corallo 5752a772d1 promises, type conversion errors 2014-05-13 15:15:45 -04:00
Matt Corallo caa363b929 FINALLY report crypto, etc errors to console thanks to promises... 2014-05-13 04:40:29 -04:00
lilia 1d95fcc027 Fix exception in options.js on first run
Fixes #22 Uncaught ReferenceError: getRandomBytes is not defined
options.js:41
2014-05-12 13:45:52 -07:00
Matt Corallo 3e60368a16 LGPL license (I'd like to be an axolotl/TS JS lib in the future) 2014-05-04 02:34:13 -04:00
Ventero 3d7db4dbc3 Correctly extract string data for password.
btoa expects a string argument, so when passing it the ArrayBuffer
object returned by getRandomBytes(), it's converted to a string by
calling .toString() on it. This always results in "[object ArrayBuffer]",
effectively resulting in a completely non-random password.
2014-04-17 15:56:50 +02:00
Matt Corallo 000a5e1440 Fix up a few things so registration works 2014-03-23 13:19:53 -04:00
lilia be52e4c3a4 Fix infinite recursion in ensureStringed(Array)
To ensureStringed(thing), you must first ensureStringed(thing)...
This was causing an infintel loop in multidevice mode.
2014-03-20 00:57:29 -07:00
lilia 6934ba0b92 Refactor Server API functions
The details of the server API are now mostly relegated to api.js, and
accessed through the API container object, improving modularity and
readability, and setting us up to derive a FakeAPI for serverless
development.
2014-03-15 19:57:40 -07:00
Matt Corallo 8db3885659 Updates, NaCL 2014-01-22 06:23:41 +00:00