Commit graph

174 commits

Author SHA1 Message Date
Scott Nonnenberg
fd7372e67e
Fixes for appveyor build: path formats, correct electron binary 2017-09-14 16:53:47 -07:00
Scott Nonnenberg
fd8b8910a3
Eliminate HIDE_DEV_TOOLS environment variable. Hide in test env.
FREEBIE
2017-09-14 16:53:47 -07:00
Scott Nonnenberg
f43a5986da
Increase unit-tests timeout, improve error display, add set -e
FREEBIE
2017-09-14 16:53:47 -07:00
Scott Nonnenberg
cb296fcfaa
Cleanup: Add unit-tests task to grunt test, fix style checks
And improve success logging in unit-tests.

FREEBIE
2017-09-14 16:53:47 -07:00
Scott Nonnenberg
5635095d1a
Initial version of grunt unit-tests, tests from command-line
FREEBIE
2017-09-14 16:53:47 -07:00
lilia
2a7993309a
Fix build bucket path 2017-09-14 16:53:46 -07:00
lilia
cf9523f1f8
Restructure prep-release script slightly
Order of operations is now:
- regenerate local assets
- clean the release dir
- download linux/windows releases
- build osx release
- smoke all test releases

// FREEBIE
2017-09-14 16:53:46 -07:00
lilia
ab8edd8690
Add spectron tests to grunt:test-release
// FREEBIE
2017-09-14 16:53:45 -07:00
lilia
bc71f4aa2b
CI builds and uploads all targets
// FREEBIE
2017-09-14 16:53:45 -07:00
lilia
9fe6bce0cc
Add task to download releases from s3
// FREEBIE
2017-09-14 16:53:45 -07:00
lilia
81d8b78d05
Switch to grunt-sass + node-sass-import-once
These modules together allow us to import css files from third party
components without maintaining symlinks that essentially rename them as
sass partials, which doesn't work on windows.

// FREEBIE
2017-09-14 16:53:44 -07:00
lilia
65362e9a81
Temporarily remove sauce from the build 2017-09-14 16:53:43 -07:00
lilia
112f5a00ca
Delete unused files
// FREEBIE
2017-09-14 16:53:39 -07:00
lilia
7627bddcfa
Update default grunt task 2017-09-14 16:53:38 -07:00
lilia
e7e030a5e2
Build expiration date
Add the buildExpiration config and add it to the renderer's config
object. Use grunt to write the build expiration to
config/local-production.json which will override the default value (no
expiration) in production. Finally, run this grunt task as part of the
build process.

// FREEBIE
2017-09-14 16:53:38 -07:00
Scott Nonnenberg
9db0a58260 Whenever adding something to a queue, include a timeout
No more wedged queues!

FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
7b55fde92d Gruntfile: Remove firefox target in sauce labs task
FREEBIE
2017-08-04 12:03:25 -07:00
Scott Nonnenberg
bd0050b6c6 Cache messages on receipt, remove from cache when processed
FREEBIE
2017-08-04 12:03:25 -07:00
lilia
1f7ef8529c Fix missing emojis in production build
Grunt was failing to pack emoji images into dist.

// FREEBIE
2017-05-01 11:08:04 -07:00
lilia
611bbaef35 Don't hardcode the attachment server url
There may come a day when we may need to change this url from the server
side. On that day, clients should continue to operate normally. The
service should be able to change attachment server locations without
requiring a client update.

// FREEBIE
2017-03-10 15:24:19 -08:00
lilia
e4a84d6850 Remove unused html file 2017-03-05 20:39:30 -08:00
lilia
b1a37da68b Add audio to prod build
// FREEBIE
2017-02-03 18:21:53 -08:00
lilia
0487fa3cd1 Add server fallback port 8443
// FREEBIE
2016-09-08 14:31:19 -07:00
lilia
4f46a164ba Add voice notes
// FREEBIE
2016-08-23 16:16:31 -07:00
lilia
186c597e24 Use port 4433 on staging
Now with over 9000% more CA-signed cert!

// FREEBIE
2016-07-28 18:39:55 -07:00
lilia
58452066aa Move device storage methods to outgoing message
This is the only place they are called.

// FREEBIE
2016-05-18 13:15:56 -07:00
lilia
ffa702c934 Update libsignal-protocol v0.9.0
* Exposes crypto APIs.
* Move worker methods to libsigna.worker.
* Move ProvisioningCipher to libtextsecure.
2016-05-17 12:03:37 -07:00
lilia
b160556d6e Change filename
// FREEBIE
2016-04-22 13:43:31 -07:00
lilia
c1e1dd97ba Change libsignal-protocol filenames
// FREEBIE
2016-04-21 18:42:43 -07:00
lilia
b1d370755a Rename AxolotlStore
// FREEBIE
2016-04-21 18:36:17 -07:00
lilia
c442a02cb6 Add build support for expiring old releases
Builds expire after 90 days.
2016-04-03 20:55:53 -07:00
lilia
0247a885ef Fix up locale-patch
// FREEBIE
2016-03-11 12:00:55 -08:00
lilia
4f3d1ed55a Reorder grunt watch tasks
Move style and syntax checks to the end.

// FREEBIE
2016-02-22 17:11:17 -08:00
lilia
173e037fa6 Fix minor style errors
And keep it that way, by making jscs config more opinionated.

// FREEBIE
2016-02-18 13:45:22 -08:00
lilia
b09cb228f7 Disallow trailing whitespace
// FREEBIE
2016-02-18 12:22:44 -08:00
lilia
015bbdacc7 Run jshint on more things
// FREEBIE
2016-02-18 12:22:43 -08:00
lilia
3624887d73 Remove unused requires in Gruntfile
Artifacts from the libaxolotl curve25519 compilation task.

// FREEBIE
2016-02-01 15:54:24 -08:00
lilia
3383505377 Fix jshint errors
jshint complains:
  ^ ['placeholders'] is better written in dot notation.
  ^ Missing semicolon.

// FREEBIE
2016-01-25 14:21:46 -08:00
lilia
693dd2bb46 Remove locale-patch from default grunt task
// FREEBIE
2016-01-25 14:21:46 -08:00
Sam Lanning
b7fd862aa6 Create tx task which performs 'tx pull' followed by 'locale-patch'
// FREEBIE
2016-01-25 14:21:46 -08:00
Sam Lanning
c5a9714a0a Automatically patch translations with placeholders
fixes #630

// FREEBIE
2016-01-25 14:21:46 -08:00
lilia
f7c4fd2fed DRY up event target implementations
Dedupe event target code and make it extensible.

// FREEBIE
2016-01-14 15:44:42 -08:00
lilia
925c1bdb33 Add SyncRequest class
Similar in function to an xhr request, a textsecure.SyncRequest object
is initialized from a message sender and receiver pair and initiates a
request for sync from the master device. It later fires a success event
when both contacts and groups are done syncing, or a timeout event after
one minute.

// FREEBIE
2016-01-14 15:44:42 -08:00
lilia
e9d3272e87 Prepare for i18n
// FREEBIE
2016-01-02 02:51:23 -08:00
lilia
4cc6b1ff9a Validate attachment urls
// FREEBIE
2015-11-24 16:20:07 -08:00
lilia
4358a46ac4 Remove unused file // FREEBIE 2015-11-20 14:17:58 -08:00
lilia
038e263023 Fix the build
1. Update chrome version because v40 fails to clear the session store
2. Add message view to test page and fix bad reference to chrome
3. Update the message view template in tests with new timestmap markup

// FREEBIE
2015-11-08 10:35:24 -08:00
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
lilia
c230b47ef2 Rebuild curve25519 for free
Add free to the list of exposed functions so that it can be called,
then `grunt compile concat:curve25519`
2015-02-11 02:55:42 -08:00
Riley Shaw
ffa0b2b94f Add Sass task to watch and dev 2015-01-21 18:58:32 -10:00
Matt Corallo
76cc4f305a Fix re-concat on build task 2015-01-14 11:39:36 -10:00