JC Brand
cce27fac99
Avoid unnecessary promise wrapping
2018-09-02 14:18:05 +02:00
JC Brand
16deecd468
All API methods of converse-core are now documented with jsdoc
2018-09-02 12:15:26 +02:00
JC Brand
45fc71c05d
More jsdoc docstrings as well as an intro page and JSON config
2018-09-02 10:11:37 +02:00
JC Brand
6f13676ee1
Show OMEMO error messages only in debug mode
2018-08-31 21:33:46 +02:00
JC Brand
1d5cf8eb7c
Fix AES-GCM encryption/decryption so that it works with Conversations
...
Fixes #497
2018-08-31 21:13:33 +02:00
JC Brand
c2184ce8e1
Always create a new session
2018-08-31 18:44:24 +02:00
JC Brand
fc6982ce08
Merge branch 'omemo-debug'
2018-08-31 18:39:01 +02:00
JC Brand
bd1fd7eef1
Key should be AES-128, not AES-256
2018-08-31 18:33:03 +02:00
JC Brand
c2f1b2543f
Pass array buffer to libsignal decrypt
2018-08-31 18:24:08 +02:00
JC Brand
c8211085fd
Pass array buffer to libsignal encrypt/decrypt methods
2018-08-31 18:10:09 +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
bb6d4f75bf
Fade out enter/leave messages sooner and add check
2018-08-31 10:36:51 +02:00
JC Brand
86a0fa280b
Call clearSession
when disconnecting
...
So that the chatboxes get closed/removed.
Also, don't render the login form when we're just reconnecting.
2018-08-31 10:17:24 +02:00
JC Brand
1294d682e1
Automatically remove leave/enter and enter/leave messages
...
after 10 seconds.
2018-08-30 23:13:28 +02:00
JC Brand
4b5b517390
Update bookmark form with proper bootstrap markup
2018-08-30 22:32:16 +02:00
JC Brand
a44f38329c
Only create bookmark after succesfully setting it on the server
2018-08-30 13:39:50 +02:00
JC Brand
34541d6410
Add check before resetting
2018-08-30 13:39:33 +02:00
JC Brand
f947bcc4b1
Also notify if the chat is not visible in the page.
2018-08-29 13:56:18 +02:00
JC Brand
33c2d4614f
Remove unused method
2018-08-29 10:33:43 +02:00
JC Brand
f72ace506f
Replace the onChatBoxAdded override with event handlers
2018-08-28 15:08:38 +02:00
JC Brand
934e86536e
Remove another vestige of OTR
2018-08-28 14:58:07 +02:00
JC Brand
21178add98
Remove converse-otr
2018-08-27 22:09:22 +02:00
JC Brand
4f8b5a4022
Use built-in crypto instead of CryptoJS
2018-08-27 21:54:29 +02:00
JC Brand
1dc1c1f98a
Properly generate and render fingerprints
2018-08-27 21:02:31 +02:00
JC Brand
c142437320
Create new message for correction if the original is not available
...
Fixes #1172
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
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
7959855891
Move publishBundle
to OMEMOStore
...
updates #497
2018-08-24 16:32:40 +02:00
JC Brand
d784e4a73a
Show an icon to indicate that a message is encrypted
...
updates #497
2018-08-24 16:26:54 +02:00
JC Brand
4c5ea34acf
New build
2018-08-24 15:39:14 +02:00
JC Brand
3eb5e93f81
Finally able to send a message and decrypt it on the other side
...
Updates #497
2018-08-24 14:40:48 +02:00
JC Brand
2dd5976f65
Fix bugs in the OMEMO store and in the decrypt
method.
...
Updates #497
2018-08-24 13:17:32 +02:00
JC Brand
9e56858aae
Remove unnecessary promise wrapper
2018-08-24 10:51:59 +02:00
JC Brand
7bb7f8f4dc
Can now successfully send an encrypted stanza
...
updates #497
2018-08-23 14:03:16 +02:00
JC Brand
c1123fd6a0
Used wrong registration id and identity key when building a session
...
updates #497
2018-08-23 14:03:12 +02:00
JC Brand
058905134e
Serialize all array buffers to base64 before storing
...
Array Buffers can't be JSON serialized as is.
updates #497
2018-08-23 14:03:09 +02:00
JC Brand
d4ccf20e7f
Update modals when devices get added
...
updates #497
2018-08-23 14:03:06 +02:00
JC Brand
b17579501f
Provide error output to user when encrypted message can't be sent
...
updates #497
2018-08-23 14:03:00 +02:00
JC Brand
7692a46e17
Nonsencical to wrap a promise in try/catch
2018-08-23 14:02:53 +02:00
JC Brand
069d4a9fae
Remove unnecessary promise wrapper
...
updates #497
2018-08-23 14:02:50 +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
781ad3d643
Update to use _converse.config
2018-08-23 09:49:51 +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
76a2192afa
Singleton models need an id attribute via its getter
...
Setting it on the model itself is not sufficient and then causes
changes which should be type `update` become type `create`, causing
multiple versions of the model... resulting in chaos.
2018-08-22 23:39:42 +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
f01b6c29c8
Collections shouldn't have id attributes
...
Otherwise the collection's items aren't fetched but it's own properties.
The way to persistently remove items from a collection is to destroy
them, NOT to call `remove`.
2018-08-22 19:26:38 +02:00
JC Brand
5ded22207b
identity_key should be stored as base64, not array buffer
2018-08-22 18:32:31 +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
a422f07866
Bugfix. beforeTearDown
event handler not fired in tests
2018-08-22 14:33:09 +02:00
JC Brand
75bd24c19e
Update device lists in modals if devices get removed
2018-08-22 14:33:09 +02:00
JC Brand
21a04d9de5
Avoid unnecessary promise-wrapping
2018-08-22 14:33:08 +02:00
JC Brand
de077ba9af
Various small fixes while trying to get it to work
2018-08-22 14:33:08 +02:00
JC Brand
24d86c7edd
Wrap in try/catch, otherwise handler gets removed upon error
2018-08-22 14:33:08 +02:00
JC Brand
235b24d1d4
Bugfixes.
...
- Use sizzle xmlns selector (which doesn't work with `querySelector`)
- PEP Subscription didn't have `+` before `notify`
2018-08-22 14:33:08 +02:00
JC Brand
cf3a33a82e
__super__ is undefined because it's not an override
2018-08-22 14:33:00 +02:00
JC Brand
23a26cfdf5
__super__ is undefined because it's not an override
2018-08-22 11:41:38 +02:00
JC Brand
0339c59390
Clear old modals upon logout
2018-08-21 18:32:16 +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
JC Brand
a06d2c494a
Implement own device removal via stanza
2018-08-21 17:35:17 +02:00
JC Brand
26e936583f
Add devices section to own profile modal
...
Allow for devices to be removed.
2018-08-21 09:28:16 +02:00
JC Brand
8cc69ee5fb
No need for a toJSON call, it's already an object
2018-08-20 11:17:26 +02:00
JC Brand
7d1db66056
Less explicit Promise declarations.
...
It's usually not necessary to wrap a promise inside another one, instead
the original promise can just be returned.
2018-08-20 11:16:06 +02:00
JC Brand
cda426bc82
Merge branch 'master' into converse-omemo
2018-08-20 10:34:04 +02:00
JC Brand
f98b11afeb
Fix linting error
2018-08-20 08:59:48 +02:00
Emmanuel Gil Peyrot
958e8a98a8
Use the roster name or vCard nickname before falling back to vCard fullname or JID.
2018-08-20 08:59:01 +02:00
JC Brand
e7f211bacf
Avoid an unnecessary promise and create message as soon as possible
...
under non-OMEMO circumstances. Otherwise, when messages are fetched in
bulk via MAM, then a message referring to a previous one (e.g.
a correction) may be processed before the message being referred to has
been created.
2018-08-19 10:32:43 +02:00
JC Brand
9a7f56db7d
Fix format of stanza that queries for devices.
2018-08-19 10:09:43 +02:00
JC Brand
4ed43854bd
Bugfix. Items need to go inside the list
2018-08-18 18:25:52 +02:00
JC Brand
c4ac73cc88
prekey id must be an int.
2018-08-18 18:24:29 +02:00
JC Brand
ca9229a906
createMessage
now returns a promise.
...
Also, fix all broken tests, mostly related to this.
2018-08-18 17:12:22 +02:00
JC Brand
b4110dc162
Merge branch 'master' into converse-omemo
2018-08-18 10:24:55 +02:00
JC Brand
299fa4f3f8
Nicer error logging when translations are not found
2018-08-18 10:22:31 +02:00
JC Brand
e123c690f0
Add autocomplete support for occupants with only a JID
2018-08-16 17:11:04 +02:00
JC Brand
2db3db9bab
Add support for editing messages containing mentions
2018-08-16 15:17:54 +02:00
JC Brand
d9c5867ff2
Check references when incrementing unread messages counter
2018-08-16 15:17:54 +02:00
JC Brand
b7eb19e225
Render mentions in a message
2018-08-16 15:17:54 +02:00
JC Brand
15df9b8605
Inlcude references in the outgoing XMPP stanza
2018-08-16 15:17:54 +02:00
JC Brand
f2b017ec89
Add method to determine references from message text
2018-08-16 15:17:53 +02:00
JC Brand
70b953ab84
Change selected item to the one the mouse is hovering over
2018-08-16 15:17:53 +02:00
JC Brand
324ffd5e40
Let @
trigger autocomplete with all possible options shown
2018-08-16 15:17:53 +02:00
JC Brand
cc3a158b57
Initial work on showing all options on @
2018-08-16 15:17:53 +02:00
JC Brand
b6f5cd2cc9
Use the auto_first setting
2018-08-16 15:17:53 +02:00
JC Brand
9a8d3b695e
Generic message which works for both single and groupchats
2018-08-16 15:17:53 +02:00
JC Brand
73deaf24c0
Make sure occupants toggle gets shown
2018-08-16 15:17:53 +02:00
JC Brand
13c9612a8a
Let an additional tab select the currently highlighted element
2018-08-16 15:17:53 +02:00
JC Brand
2abd1c1db1
Get selection via up/down arrow to work
2018-08-16 15:17:53 +02:00
JC Brand
86fab99c54
Expand test case and improve code.
2018-08-16 15:17:53 +02:00
JC Brand
5ded3b6cb9
Make list an executable
2018-08-16 15:17:53 +02:00
JC Brand
ad73abbd12
Rewrite as ES2015 class
2018-08-16 15:17:53 +02:00
JC Brand
b6f4f05b9e
Add converse-autocomplete and use that in the chat textarea
2018-08-16 15:17:53 +02:00
linkmauve
f0ad326e2e
Simplify an error message on MUC service shutdown ( #1161 )
2018-08-16 11:36:44 +02:00
JC Brand
ddfe35b2c8
Set proper content type for file upload
2018-08-14 18:45:45 +02:00
JC Brand
45d1440684
Cancel message correction by pressing escape.
...
Also fixes #1153
2018-08-10 11:48:07 +02:00
JC Brand
c652568a03
Clear color after submitting a corrected message
2018-08-09 16:33:25 +02:00
JC Brand
c25cc4c76b
Bugfix. Existing occupants weren't found because query was only by jid
...
Which meant that occupants were being duplicated.
updates #1146
2018-08-09 15:46:49 +02:00
JC Brand
1aceaa9c40
Avoid creating unnecesary promises
...
by returning existing promises and by using _converse.api.sendIQ
2018-08-09 14:44:39 +02:00
JC Brand
daf470e311
Check permissions before attempting to execute action on behalf of user
2018-08-09 14:43:40 +02:00
JC Brand
5e42bb2d49
Bugfix. Don't only set
, save to storage.
...
Otherwise the flag doesn't persist across page loads.
2018-08-08 10:01:26 +02:00
JC Brand
8d40d5f108
Bugfix. Stanza passed in as 2nd parameter
2018-08-08 09:43:32 +02:00
JC Brand
2d05487862
More code reuse between chatboxview and chatroomview
2018-08-07 15:32:13 +02:00
JC Brand
d852721933
Place cursor at the end when correcting a message
2018-08-07 10:09:36 +02:00
JC Brand
08dce556f9
When correcting a message, also highlight the textarea.
2018-08-07 10:09:35 +02:00
JC Brand
27bc33ba09
Use nickname from global settings when entering a room
2018-08-07 10:09:35 +02:00
JC Brand
2884549bb3
Test decryption of incoming OMEMO message
...
updates #497
2018-08-04 23:49:01 +02:00
JC Brand
713f49453f
Working example of AES-GCM encryption and decryption
...
with key import and export.
updates #497
2018-08-04 21:32:08 +02:00
JC Brand
f2c283c907
More work on decrypting messages
2018-08-04 19:41:06 +02:00
JC Brand
be0eaecff9
Parse incoming OMEMO encrypted messages
2018-08-04 09:26:23 +02:00
JC Brand
bb1fdd843a
Use ternary operator to make more compact
2018-08-04 09:07:59 +02:00
JC Brand
4c3645c559
Merge branch 'master' into converse-omemo
2018-08-03 14:47:20 +02:00
JC Brand
b027f0f784
Fixes #1143 Disallow sending of empty messages
2018-08-01 18:48:02 +02:00
JC Brand
f120fbd209
Bugfix. Own groupchat messages weren't being recognized
2018-08-01 18:37:54 +02:00
JC Brand
dc4c832fce
Add jsdoc docstrings to chats
API.
...
Link to the jsdoc output from the Sphinx docs
2018-08-01 12:11:10 +02:00
JC Brand
506aa33131
Wait for promises before opening chats in API methods
2018-08-01 11:12:00 +02:00
JC Brand
cb118b9cd0
Extract inline code into method
2018-08-01 11:10:43 +02:00
JC Brand
cbe6092c33
Handle case where chat content is empty
2018-08-01 11:10:43 +02:00
JC Brand
1443fdd447
(WIP) Wait for promises before opening chats in API methods
2018-08-01 11:10:43 +02:00
Emmanuel Gil Peyrot
8de78dfaf5
Fix disco#info result stanza
...
Converse forgot to add the wrapping query element, making the iq
invalid[1].
Thanks to lovetox for reporting this bug!
[1] https://pastebin.com/raw/T7h3FKHu
2018-07-31 17:52:07 +02:00
JC Brand
7a47b7b992
Don't require a chat JID to be specified in embedded mode
...
We might want to only open a chat later.
2018-07-30 16:42:54 +02:00
JC Brand
964b10dc33
Set default BOSH wait
time to 59
...
to avoid timing conflicts with the webserver
2018-07-28 17:13:13 +02:00
JC Brand
e774e9d1af
Test that own devices (from other clients) get included
...
when sending out encrypted messages.
updates #497
2018-07-28 16:36:56 +02:00
JC Brand
a3593dbc7d
Implement and test sending of encrypted messages
...
updates #497
2018-07-28 15:37:36 +02:00
JC Brand
f40e4b4dbb
Merge branch 'master' into converse-omemo
2018-07-25 12:06:42 +02:00
JC Brand
4cefc7cdf9
Fix failing tests due to renames
2018-07-25 12:05:09 +02:00
JC Brand
bcd6845756
Show fingerprints in the user details modal
...
updates #497
2018-07-25 11:33:16 +02:00
JC Brand
ce447e4035
Merge branch 'master' into converse-omemo
2018-07-22 12:15:16 +02:00
JC Brand
5abb9f8bb2
Found more instance of room
to be replaced with groupchat
2018-07-22 11:31:45 +02:00
JC Brand
114e46dfab
Fix broken test and refactor slightly. updates #497
2018-07-22 10:33:57 +02:00
JC Brand
b80a77a21c
Include signedPreKeySignature in published bundle
...
updates #497
2018-07-21 21:53:31 +02:00
JC Brand
bf13927946
Merge branch 'master' into converse-omemo
2018-07-21 11:34:51 +02:00
JC Brand
87406f5f93
Allow messages to be edited by clicking a pencil icon
...
updates #421
2018-07-21 10:41:10 +02:00
JC Brand
6a790916d3
Only own messages should be editable.
...
Fixes #1139
2018-07-21 08:12:33 +02:00
JC Brand
acd9a18696
Update with new message markup
2018-07-21 07:34:03 +02:00
linkmauve
d25b227ba4
Remove @locked_domain if it has been provided in the JID. ( #1132 )
...
Fixes #917 .
2018-07-17 08:15:27 +02:00
JC Brand
bb5dff9a74
Merge branch 'better-chat_status' of https://github.com/linkmauve/converse.js into linkmauve-better-chat_status
2018-07-16 01:05:45 +02:00
JC Brand
6717315d05
Add support for message corrections in MUC.
2018-07-16 00:49:00 +02:00
JC Brand
16faf62d3f
Fixes #1129 Hide "Contacts" section when logged in anonymously
2018-07-16 00:09:54 +02:00
Emmanuel Gil Peyrot
d518596a2e
Add missing closing quote in label_download.
2018-07-14 18:27:25 +02:00
Emmanuel Gil Peyrot
d643d4c9cf
Remove order constraint in file upload error message.
2018-07-14 18:26:42 +02:00
Emmanuel Gil Peyrot
3fcf9acfcc
Remove order constraint in chatstate message.
2018-07-14 18:26:42 +02:00
Emmanuel Gil Peyrot
422757832b
Remove order constraint in chat_status message.
2018-07-14 18:26:42 +02:00
JC Brand
b4d2007972
Allow any earlier message to be edited.
...
updates #421
2018-07-08 15:20:58 +02:00
JC Brand
a9bb99a1a7
Show animation when a message has been corrected
...
updates #421
2018-07-08 13:43:28 +02:00
JC Brand
84a10d77d9
Cancel message correction by pressing the down arrow
...
Also, add a class `correcting` to the message being corrected, to
provide a visual cue.
updates #421
2018-07-08 11:30:15 +02:00
JC Brand
2929647e16
Add support for correcting the last message sent
...
fixes #421
2018-07-08 00:39:28 +02:00
JC Brand
f3f58a8da4
Test multiple corrections of the same message
2018-07-06 01:51:27 +02:00