Commit Graph

56 Commits (002ff453120d1e2aa9ec1b1268b0a582250d335f)

Author SHA1 Message Date
lilia 002ff45312 Adapt window management to chrome app window api
Appify tabs, windows, browserAction

Port the extension.windows.focus function to new window api and
generalize its error handling in the case where the requested window
does not exist. An error will be passed to the callback.

Port extension.browserAction and rename it to the more generic
extension.onLaunched.

Use of the id option when opening a window ensures that attempting to
open a duplicate window merely focuses the existing window.

Finally, after registration, close the options window and open the
inbox.

Port extension.remove
10 years ago
lilia ddbaf87741 Load notifications script from background page 10 years ago
lilia 76e170686a Make getBackground async 10 years ago
lilia f465bdddbf Add textsecure.AccountManager
This class should be used for account registration and for refreshing
prekeys for your account.
10 years ago
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
10 years ago
lilia 00989962d8 Rename worker script file 10 years ago
Patrick Connolly b5d724ffc3 Replaced frontend getString calls broken in d3c158f.
Closes #224
10 years ago
lilia 13ce354ab8 Registration UX improvements
Add some nice modal dialogs instead of confirmation alerts.
10 years ago
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.
10 years ago
Matt Corallo 454b4726bd Replace load/decode/index around our own number with helpers 10 years ago
lilia fa3699cdd3 Trigger desktop notifications
Notifications show the conversation name, avatar, and new message text.
Clicking the notification opens the conversation.
10 years ago
Matt Corallo d3c158f4cf Move libaxolotl out-of-tree 10 years ago
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
10 years ago
lilia 44a31f3ed9 Remove unneeded function 10 years ago
lilia ec43a0b633 jshint all the things
Small style fixes here and there. Removed one unused file.
10 years ago
Matt Corallo bb32a51d66 s/textsecure.protocol/axolotl.protocol/ 10 years ago
lilia 05a5b7e76c Fixes #152
Android client was crashing any time the base64-encoded public key
included a '+' due to lack of url encoding.
10 years ago
Matt Corallo 02d0c58e5e Mostly done device-bringup stuff 10 years ago
Matt Corallo 29b2ffc769 Update to real server provisioning API 10 years ago
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.
10 years ago
Emily Chao 5d3020b9ed Refactor phone number input view
Moves validation logic to its own view to be shared on index and options
pages.
10 years ago
lilia 5a0e199fc5 Namespace registration helpers 11 years ago
lilia 4119c13ba2 Registration ux tweaks 11 years ago
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.
11 years ago
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.
11 years ago
lilia ca7ba43b13 Fix overly hidden elements on registration page
Latest bootstrap css is really aggressive about hiding things.
11 years ago
lilia 2bd77693e1 Refactor options page and style using bootstrap 11 years ago
lilia 81e4af5827 Move phonenumbery utils to libphonenumber object
Slowly whittling away at helpers.js...
11 years ago
lilia 75e78caec8 Function-wrap options.js 11 years ago
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.
11 years ago
Matt Corallo 90eb9cb0c8 Remove ping, update to latest spec proposal 11 years ago
Matt Corallo a6b0d1f84b Add entirely untested secondary device init 11 years ago
Marco 13a9329bcf improved number validation (based on google's libphonenumber) 11 years ago
Marco 5cddcb59aa improved some css for options.html 11 years ago
Matt Corallo 5cea7b6857 Few typos blocking registration 11 years ago
Matt Corallo 56433bd9af One more tiny error refactor 11 years ago
Matt Corallo 68131a6e2a Add human readable version of errors 11 years ago
Matt Corallo 753a950816 Redo registration process 11 years ago
Matt Corallo 18f1eed70f Some number verification refactor stuff 11 years ago
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.
11 years ago
Matt Corallo d9bf0a41fb textsecure.storage, chromium.js 11 years ago
Matt Corallo 6bc19ef558 More namespacing 11 years ago
Matt Corallo 05101b69b0 Some initial helpers.js namespaceing 11 years ago
Matt Corallo e3097746c0 Check registration ID on prekeymsg 11 years ago
Matt Corallo 8d408e6d8f THOUGH SALL USE TABSTOP AND SHIFTWIDTH 4 (so that indents read right) 11 years ago
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.
11 years ago
Matt Corallo 5752a772d1 promises, type conversion errors 11 years ago
Matt Corallo caa363b929 FINALLY report crypto, etc errors to console thanks to promises... 11 years ago
lilia 1d95fcc027 Fix exception in options.js on first run
Fixes #22 Uncaught ReferenceError: getRandomBytes is not defined
options.js:41
11 years ago
Matt Corallo 3e60368a16 LGPL license (I'd like to be an axolotl/TS JS lib in the future) 11 years ago