Commit graph

1099 commits

Author SHA1 Message Date
lilia
ebc8846fcb Fix bug in panels controller
Previously, we'd create a new model instance even when one already
existed in the inbox.
2015-03-23 12:19:33 -07:00
lilia
9474b16eba In rare cases, a group has no members 2015-03-23 12:19:32 -07:00
lilia
5ffa265559 Revert "Popout inbox"
This reverts commit 31e7d285e3.

This seemed like a nice feature, but the popup bubble isn't very
conducive to nontrivial user inputs, e.g. file inputs.

Fixes #211
2015-03-23 12:19:32 -07:00
lilia
06f4d4456d Fix empty notification on key conflicts 2015-03-20 10:47:58 -07:00
lilia
ebdc8650ed Fix copy task 2015-03-20 10:47:45 -07:00
lilia
ea492ed85b Fix registration page styling 2015-03-20 10:19:46 -07:00
lilia
c526dbda5f Set up production build task
`grunt copy`

Closes #191
2015-03-19 18:34:56 -07:00
lilia
66fb673e6a Add missing error.png 2015-03-19 18:34:11 -07:00
lilia
db3d97b576 Move icon.png to /images 2015-03-19 18:34:11 -07:00
lilia
718f1a5e3d Improve notification contents
Include sensible descriptions of non-content messages. For group
messages, display the sender's name and avatar rather than the group's.
2015-03-19 18:34:10 -07:00
lilia
43ec4099c9 Reset the name field on new group form 2015-03-19 13:55:13 -07:00
lilia
11b822eaf3 Allow unknown groups
Save groups even if we've never heard of them. Previously
we would fail to save due to a missing 'type' attribute.
2015-03-19 13:54:03 -07:00
lilia
84237cae6f Fix standalone registration page 2015-03-18 18:14:21 -07:00
lilia
9930937707 Move handlePushMessageContent to message model
And retool message handling flow to helps us avoid instantiating
duplicate message and conversation models.
2015-03-18 16:29:03 -07:00
lilia
897d391817 Improve identity key conflict ux
Clicking on a key conflict message opens the message detail view,
which displays the contact(s) in this conversation. If the message
contains a key conflict with any of these contacts, a button is
displayed which attempts to resolve that conflict and any other
conflicts in the conversation that are related to that contact.
2015-03-18 16:29:02 -07:00
lilia
857eee5003 Divorce identity wipe from tryAgain functions
We'd like to live in a world where we can retry all the pending
conflicts in a conversation as a batch, which means we don't want to
wipe the identity key before processing each message. Thus, remove that
step from these handlers and encapsulate in a method on the conversation
model.
2015-03-18 16:29:02 -07:00
lilia
c642854ddf Extract app-level logic from libtextsecure
Ensure that both tryAgain functions return promises, allowing the
application to take appropriate action in the result of success or
failure. This lets us remove all dependency from libtextsecure on
app-level constructs like message objects/ids and the `extenion.trigger`
function.

Corresponding frontend changes to follow in another commit.
2015-03-18 16:29:02 -07:00
lilia
e88d4d8170 Tweak replayable errors
1. Return the value returned by the registered function, to expose the
underlying promise to the caller.

2. Stop accepting extra arguments to the replay function. The caller
should be able to do what they want with the returned promise instead.

3. Add a timestamp argument to the outgoing case, needed to re-try
sending a message.
2015-03-18 16:29:01 -07:00
lilia
31e7d285e3 Popout inbox
Rather than opening the inbox in its own window, let it appear as a
browser action popup by default, but allow promotion to its own window
if requested.
2015-03-18 16:29:01 -07:00
lilia
cecb438a52 Simplify avatar rendering 2015-03-18 16:29:01 -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
f8e69fa8e7 Remove now-unused X11 license file 2015-03-17 14:43:23 -07:00
Matt Corallo
d3c158f4cf Move libaxolotl out-of-tree 2015-03-17 14:43:23 -07:00
Matt Corallo
e2e06b2d3c Remove axolotl.storage usage from libtextsecure 2015-03-17 13:59:25 -07:00
lilia
b790f82849 Remove libaxolotl dependency on textsecure/errors.js
Let libaxolotl throw a generic error instead of a replayable error, and
add an helper function in libtextsecure's axolotl_wrapper to catch and
convert from the generic error to the replayable one. This allows the
ReplayableError to remain a libtextsecure-level concept only.

Somewhat unrelatedly, but nearby, fix some whitespace and add missing
semicolon.
2015-03-17 13:59:24 -07:00
lilia
676ad04958 Add device storage method to wipe an identity 2015-03-17 13:59:24 -07:00
lilia
45a053b3a8 Break long links in message bubbles / Fixes #204 2015-03-16 18:08:45 -07:00
lilia
f86d6d51e3 Only init emoji map once.
`emoji.init_colons` creates and populates `emoji.map.colons`, a global
map from common names to emoji code points. It's safe to call
repeatedly, but unecessary.
2015-03-16 17:44:49 -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
08ccdf8d97 Move most scripts to the background page
Dramatically improve load times for frontend pages.

Closes #133
2015-03-16 11:57:41 -07:00
lilia
5405b062d2 Update CONTRIBUTING.md 2015-03-15 12:20:13 -07:00
lilia
651b6341fa Unbind frontend listeners when window closes 2015-03-14 20:46:00 -07:00
lilia
69d5a6a33c Improve group update ui/ux
Promote group update to its own screen. Add typeahead contact selector
from new conversation view. Restyle to match android (more or less).

Closes #186
2015-03-13 17:33:02 -07:00
lilia
7e3961891b Tweak menu styles 2015-03-13 17:29:28 -07:00
lilia
d20e23402d Refactor RecipientsInputView from NewConversationView
For reuse on group update screen.
2015-03-13 17:29:28 -07:00
Florian Groh
617b7686f7 Register Input Handling
I had some trouble with the registration..
Quickly checked TextSecure Server API and found the problems:
number has to be valid PSTN. (Including regionCode, precisely what validateNumber() returns)
verificationCode has to be all numbers, no dashes or spaces

Closes #193
2015-03-13 10:33:07 -07:00
lilia
0ac323961b Close the inbox if the background page is refreshed 2015-03-12 11:23:41 -07:00
lilia
36319d6458 Fix crash when sending :invalid_emoji: 2015-03-12 11:03:11 -07:00
lilia
04796e56d1 Fix tests 2015-03-11 20:41:15 -07:00
lilia
f1309b71c1 Don't scale or compress gifs
If a gif is too large, it's too large.

Fixes #196
2015-03-11 20:20:54 -07:00
lilia
8e54aa1401 Plumb contact avatars into conversations 2015-03-11 17:49:01 -07:00
lilia
019a9d1fbc Unread counts
Update unreadCounts per-conversation on incoming messages. Render unread
conversations with font-weigh: bold in the inbox view.

To ensure that the inbox and conversation views remain in sync, the
background page now ensures that the same models objects are used for
both views.
2015-03-11 15:13:36 -07:00
lilia
b9969b14b6 Always reconnect the socket except when there is an error
Turns out we can get ABNORMAL_CODE (1006) for disconnects where (for
instance) we pause the background page too long. However, in these cases
there is no preceeding ErrorEvent. In contrast, when we have bad
authentication credentials, there is an ErrorEvent. Thus, this change
ensures that we only reconnect if there was no Error.
2015-03-11 14:12:25 -07:00
lilia
5becd80fe9 Show an error if a conversation window fails to init
I saw this happen once. Seems to be a race condition.
2015-03-11 14:12:25 -07:00
lilia
0cbad730ce Don't send keepalive if socket has closed
Also shorten the timeout to see if it improves websocket connection
reliability.
2015-03-11 14:12:25 -07:00
lilia
2b073f3365 Reset keepalive timer if we're about to send
No sense in sending more keepalives than necessary.
2015-03-11 11:12:14 -07:00
lilia
ed707db4ba Support :emoji_name: syntax for emoji text input 2015-03-10 18:54:07 -07:00
lilia
01092075ac Add js-emoji as a component 2015-03-10 18:15:31 -07:00
lilia
254131488e Render emoji in conversation and inbox views. 2015-03-10 18:15:31 -07:00