Commit Graph

872 Commits

Author SHA1 Message Date
JC Brand
85dab7367b Use pubsub#access_model to publish keys and devices publically 2018-12-21 04:35:28 +01:00
JC Brand
9c05ca9a09 Add test for sending/receiving MUC OMEMO messages
While adding support for MUCs, I refactored converse-omemo somewhat to move functions
out of `overrides` and to use async/await

Updates #1180
2018-12-20 21:51:16 +01:00
JC Brand
f64fdb8088 Render the OMEMO lock icon in MUC toolbars as well
updates #1180
2018-12-20 21:51:16 +01:00
JC Brand
d75e47db6f Also test that MUC title changes automatically 2018-12-18 11:21:36 +01:00
JC Brand
078281d0db Add a test for configuring a MUC 2018-12-17 15:18:36 +01:00
JC Brand
9c812157ee Use async/await 2018-12-17 15:16:43 +01:00
JC Brand
7ec6a0576e Fixes #1379 No longer an indication of unread messages in MUC 2018-12-16 12:30:41 +01:00
JC Brand
a389f52adb Fixes #1353 Don't expect delivery receipts to have type chat 2018-12-16 11:22:13 +01:00
JC Brand
b7c01993b7 User-facing term is "groupchat", not "room" 2018-12-16 11:22:12 +01:00
Christoph Scholz
216a684904 prevent message delivery receipts for carbons and own 2018-12-15 20:04:31 +01:00
JC Brand
935ca52b03 Test that open groupchats are shown with their bookmarked names 2018-12-15 19:31:19 +01:00
JC Brand
d5485d09ae Always render the OMEMO lock icon
When OMEMO isn't possible, render it as grey.

This change makes OMEMO for MUCs easier, since there I anticipate that
OMEMO support might change dynamically based on who enters/exits the
room.

updates #1180
2018-12-14 11:25:57 +01:00
JC Brand
a8ed46f672 Use async/await in spec 2018-12-12 17:40:14 +01:00
JC Brand
c55e25fa5f Fix failing test 2018-12-06 15:04:18 +01:00
JC Brand
2857293ad1 Fix failing tests by waiting and slightly improve code 2018-12-06 13:10:34 +01:00
JC Brand
5f00987578 Bugfix. Pass original_stanza to isDuplicate 2018-12-06 13:10:33 +01:00
JC Brand
79bfb45639 Use async/await in MAM code and tests 2018-12-06 13:10:33 +01:00
JC Brand
118bc20478 Rename isSingleton to isUniView
We distinguish between UniView and MultiView instances.

UniView means that only one chat is visible, even though there might be multiple ongoing chats.
MultiView means that multiple chats may be visible simultaneously.
2018-12-04 13:50:15 +01:00
JC Brand
714da6f0df Wait until push services are disabled as well 2018-11-29 13:22:58 +01:00
JC Brand
36d2db78c4 Use async/await and remove jquery in some tests 2018-11-29 12:37:21 +01:00
JC Brand
4e6ac905b8 Async/await in controlbox tests 2018-11-26 12:58:06 +01:00
JC Brand
c22fe41aef Use async/await in tests 2018-11-22 14:25:56 +01:00
JC Brand
cb3ba7bdf6 Use async/await in spec/chatbox.js 2018-11-22 09:31:00 +01:00
JC Brand
b91f488491 Use async/await 2018-11-21 13:03:32 +01:00
JC Brand
7beeada087 Don't use outerHTML in tests, it's not consistent across browsers 2018-11-20 18:01:09 +01:00
JC Brand
c9b540289c Use async/await 2018-11-20 18:01:09 +01:00
Christoph Scholz
267d91a4f3 don't send receipt requests in MUCs 2018-11-20 17:38:59 +01:00
JC Brand
d341c6a13b Revert "Use getter to lazily create Strophe.Connection"
This reverts commit 7af73c3471.

Doesn't look like the right approach for adding support for XEP-0156.
Work on that will continue in a branch in the meantime.
2018-11-20 17:31:53 +01:00
JC Brand
7af73c3471 Use getter to lazily create Strophe.Connection 2018-11-18 18:05:47 +01:00
JC Brand
86593dc378 Don't render http (i.e. non-TLS) resources
Causes "Mixed Content" TLS errors
2018-11-18 18:05:47 +01:00
JC Brand
e07bb52d2a Use async/await 2018-11-18 18:05:46 +01:00
JC Brand
d3a684a57d Move some functions outside of the initialize closure 2018-11-15 23:10:40 +01:00
JC Brand
88e74975c9 Fix failing tests due to avatar changes 2018-11-14 16:37:16 +01:00
JC Brand
067d87a73e Fix failing test 2018-11-14 15:15:29 +01:00
JC Brand
7cb889b065 Fixes #1317 Don't show errors for CSI messages 2018-11-14 14:34:23 +01:00
Christoph Scholz
12b7687a89 Implement sending presences according to XEP-0319: Last User Interaction in Presence 2018-11-13 18:39:13 +01:00
Christoph Scholz
da5ca0b585 implement XEP-0184: Message Delivery Receipts 2018-11-13 17:13:35 +01:00
JC Brand
9e33279fc2 Fix failing test and use async/await 2018-11-12 12:04:56 +01:00
Emmanuel Gil Peyrot
87c77385d8 Improve XEP-0245 support.
Namely:
- Only match messages which start with exactly "/me ".
- Simplify the match, checking a string instead of a complex regex.
- Always remove the first four characters in the case of a match, to not
leave an extra leading space.
2018-11-05 14:02:14 +01:00
JC Brand
9a4bceba60 Add make recipes for zip files of webfonts and locales 2018-10-29 22:11:01 +01:00
JC Brand
11a53608d9 Right Align badges of room occupants
fixes #1264

Also...

- hide the badges in overlayed view mode
- hide the features list in overlayed view mode
2018-10-28 23:20:29 +01:00
JC Brand
11ac846b31 Fixes #1259 2018-10-27 22:56:05 +02:00
JC Brand
53b3f2d0d6 Fix failing tests and rewrite to use async/await 2018-10-26 12:53:24 +02:00
JC Brand
c583678c86 Use _coverse.api.sendIQ instead of _converse.connection.sendIQ
So that we know an event will be emitted when the stanza is sent.
2018-10-25 18:29:29 +02:00
JC Brand
6ebf6f6ecc Fix failing test by making sure notifications are cleared 2018-10-25 08:21:38 +02:00
JC Brand
6904f9a897 Use es2015 modules instead of UMD 2018-10-23 12:25:58 +02:00
JC Brand
f2c1455762 Bump waiting time for room opened via modal in test utils
Convert more promise-based tests to async/await
2018-10-22 09:59:53 +02:00
JC Brand
0d3e94c60b Minor testing changes
- Use async/await instead of promises.
- Use different room jids (to try and see whether this fixes heisenbugs on travis)
2018-10-22 09:40:24 +02:00
JC Brand
abd9786c0f Fix failing test and update changelog. updates #1185 2018-10-17 22:31:21 +02:00
JC Brand
a5a600bade Fixes #1193 Properly handle OMEMO messages without body tag 2018-10-15 23:47:22 +02:00
JC Brand
439d13d311 Use async/await instead of promise callbacks 2018-10-15 23:18:06 +02:00
JC Brand
e181aaf99b Make the message view's render method async
So that we first render dynamic content (e.g. images) before inserting
it into the chat.

Also, add the `show_images_inline` setting (which is the cause of this
whole change).

Updated tests to handle this new change and start using async/await
instead of promise callbacks.
2018-10-15 22:19:04 +02:00
JC Brand
99c0687684 Fixes #537 Open xmpp: URIs inside Converse 2018-10-13 20:16:00 +02:00
JC Brand
2c44127932 Remove jquery from spec/chatroom.js 2018-10-13 17:47:52 +02:00
JC Brand
d77802da86 Avoid showing notification messages twice
For example `This groupchat is not anonymous`
2018-10-13 14:41:16 +02:00
JC Brand
15579692a9 Some work on removing jQuery from the MUC tests 2018-10-13 14:14:02 +02:00
JC Brand
7b9c97dfd3 Also squash leave/join messages
And fix an HTML rendering bug for info messages and nicks that contain spaces
2018-10-11 19:04:06 +02:00
JC Brand
71cc98d6f6 Reduce join/leave clutter by removing subsequent ones
Previously we checked only if the last message was a join message from
the same person.

Now instead we check the last n messages that are join or leave
notifications.
2018-10-11 15:59:52 +02:00
JC Brand
cf75d37587 join/leave notification fixes.
* Don't show leave notification twice when someone leaves, joins and then leaves again
* Add a test case for a member joining and then leaving
2018-10-11 14:05:52 +02:00
JC Brand
dffcc13dea Fixes #1140 Add support for destroyed chatrooms 2018-10-10 22:57:12 +02:00
JC Brand
7cc59b9ef3 Check in test that headliness box is not created.
Updates #1221
2018-10-10 20:17:56 +02:00
Emmanuel Gil Peyrot
e9007146aa Improve the moderated and not moderated explanations 2018-10-06 19:32:03 +02:00
JC Brand
9bc8bdf34c Test updates after updating to use latest strophe.js
`toLocaleString` now returns element attributes in alphabetical order
(for better cross-browser consistency).

Also, `toLocaleString` is now used in favor of `outerHTML` because
browsers aren't consistent with one another in their output.
2018-10-03 21:11:20 +02:00
JC Brand
defe32d172 Make sure omemo tests pass on Firefox 2018-09-25 14:05:56 +02:00
JC Brand
6f7328a62f Fix failing tests 2018-09-25 10:20:18 +02:00
JC Brand
4129c0ea3b Fix failing test 2018-09-13 17:04:44 +02:00
JC Brand
93c956ba4b Bugfix. Should be && not || 2018-09-13 16:42:54 +02:00
JC Brand
cd05b89726 Fix failing tests due to MUC disco refactoring 2018-09-13 10:52:25 +02:00
JC Brand
603708a9c9 Update test openAndEnterChatRoom to handle re-opening of rooms
in which case a disco query is not sent out again because we still have
it cached.
2018-09-13 09:04:21 +02:00
JC Brand
71370f5b45 Add the /register command for registering yourself 2018-09-12 15:32:37 +02:00
JC Brand
17401cb903 Improvements to automatic nick registrations
Also expand and fix the associated test.
2018-09-12 12:36:25 +02:00
JC Brand
acef8feaaa Refactoring of fetching of reserved nick
- Move `getDefaultNickName` to the model and rename to `getDefaultNick`
- Let `checkForReservedNick` return a promise and save `nick` once received
- Updated `openAndEnterChatRoom` to wait appropriately and remove presence-wrapper
- Update tests to wait appropriately
- Remove presence-wrapper in `getRoomFeatures`
2018-09-12 12:36:13 +02:00
JC Brand
2df9b24211 Add option to auto-register your nickname to a room
See https://xmpp.org/extensions/xep-0045.html#register
2018-09-12 12:36:13 +02:00
JC Brand
764686dd19 Enable push services for a MUC domain
As soon as a chatroom from that domain is opened and if the MUC supports it.
2018-09-11 11:29:02 +02:00
JC Brand
c8eea72831 Fix failing test.
Looks like Chromium strips the forward slash from `<br/>` when printing
innerHTML.
2018-09-10 16:07:06 +02:00
Martin/Geno
dbe88535f1 [BUGFIX] html br 2018-09-10 15:58:17 +02:00
JC Brand
014354d075 Fixes #986 Affiliation changes aren't displayed in the chat 2018-09-07 11:54:29 +02:00
JC Brand
27378068c0 Fixes #1064 /topic without argument sets topic to "undefined" 2018-09-07 10:21:47 +02:00
JC Brand
2acc11f776 Fixes #1158. Fall back to bookmark JID if name is not available 2018-09-06 17:25:10 +02:00
JC Brand
f5d41db18a Fix failing test by using the right API 2018-09-03 09:45:04 +02:00
JC Brand
866f2737da More JSDoc docstrings for API methods 2018-09-02 23:43:39 +02:00
JC Brand
6a061b4525 Use raw key format and not jwk. Set correct key size. 2018-08-31 17:15:03 +02:00
JC Brand
ed9afe9afb Only include key and not whole payload from libsignal 2018-08-31 13:57:49 +02:00
JC Brand
18c7ba4ad8 Bugfix. Need to first create bookmark
Otherwise we don't include it in the stanza.
So if an error occurs, remove the bookmark again.
2018-08-31 11:24:05 +02:00
JC Brand
f72ace506f Replace the onChatBoxAdded override with event handlers 2018-08-28 15:08:38 +02:00
JC Brand
21178add98 Remove converse-otr 2018-08-27 22:09:22 +02:00
JC Brand
1dc1c1f98a Properly generate and render fingerprints 2018-08-27 21:02:31 +02:00
JC Brand
3e7c8655ad Add a <store> hint to OMEMO messages.
updates #497
2018-08-27 16:44:19 +02:00
JC Brand
15a4bcd11e Add method to generate missing prekeys
When receiving a PreKeySignalMessage, then a prekey has been chosen and
should now be removed from the list of available prekeys in the bundle,
so that a different device doesn't choose it as well.

AFAICT, libsignal removes the prekey, so it's then up to us to
regenerate it and republish our bundle.

updates #497
2018-08-27 16:43:58 +02:00
JC Brand
3d015c787f Extract common code into helper functions 2018-08-27 10:41:54 +02:00
JC Brand
ea5144c7e5 Refactor the OMEMOStore to not duplicate prekeys
Before these changes, prekeys were stored in two places, one place that
converse-omemo accessed and one that libsignal accessed and when
libsignal deleted a prekey the other store wasn't updated.

Now we let the methods called by libsignal store/remove prekeys (and the
signed_prekey) in the same place as used by the code in converse-omemo.
2018-08-25 23:22:18 +02:00
JC Brand
5406e9739c Trying to fix timing issue on Travis 2018-08-25 01:04:17 +02:00
JC Brand
9e240c5647 Increase timeouts to try and avoid timing issues on Travis 2018-08-25 00:43:05 +02:00
JC Brand
fd639e2da6 Remove the active flag for devices.
Instead of setting `active` to `false`, we remove the device entirely
(unless its the current device).

Doing it this way means more fetching of bundles for devices that
disappear and then reappear from a user's devicelist.

However, there might be caching invalidation concerns with just reusing
a cached bundle for a device id that disappeared and then reappears.

Additionally this change simplifies the showing of a contact's device
fingerprints in the modal, since we don't have to take active/inactive
into consideration.

updates #497
2018-08-23 14:02:43 +02:00
JC Brand
5e9d6c3d6a Merge branch 'master' into converse-omemo 2018-08-23 09:45:13 +02:00
JC Brand
9f8d30dde3 Create a new store, _converse.config to store trusted
The `_converse.session` store gets cleared after logout, but we want the
`trusted` flag to persist after logout.

Also update the documentation no that the `storage` config option has
been removed in favor of `trusted`.
2018-08-23 09:41:39 +02:00
JC Brand
62cecbec5f Merge branch 'master' into converse-omemo 2018-08-22 23:41:36 +02:00
JC Brand
9ed2ad631a Store whether this is a trusted device in _converse.session
So that it persists across page loads. Otherwise storage falls back to
the default, causing records to be in both local- and sessionStorage.

Additionally, update singleton models to have the 'id' available as a getter.

Otherwise multiple records gets stored in browserStorage, causing random
results being returned.
2018-08-22 23:36:54 +02:00
JC Brand
fa0e7aeff5 Updated so that own device is properly created and published
Based on live testing. Updated tests accordingly.
2018-08-22 18:16:36 +02:00
JC Brand
3ec426e11d Don't render OMEMO stuff in profile modal if OMEMO's not enabled 2018-08-21 18:03:34 +02:00