Commit graph

288 commits

Author SHA1 Message Date
Travis Ralston
2dcb40f1be Track OpenID automatic permissions by (widgetLocation, widgetUrl) 2019-03-23 23:25:31 -06:00
J. Ryan Stinnett
2ac7dd4ca3 Explicitly create cryptoStore in React SDK
The React SDK has a client creation path that starts 2 out of 3 stores, but then
leaves the other one for the JS SDK's default value handling.

We'll soon be adding additional code to check the health of stores, so it would
be simpler to follow and think about if we create them all in one place.
2019-03-22 15:03:03 +00:00
Bruno Windels
bab2730d40 use ResizeNotifier as well to relayout room list 2019-03-15 10:16:21 +01:00
Bruno Windels
891e343df6 create ResizeNotifier to derive which areas of the app resize and emit 2019-03-15 10:16:21 +01:00
David Baker
1e7af106b0 Merge branch 'master' into develop 2019-03-06 11:28:54 +00:00
David Baker
610a6d935a Only show hosting link if domain == matrix.org
Fixes https://github.com/vector-im/riot-web/issues/9059
2019-03-06 10:22:19 +00:00
David Baker
7aa451067e Add utm_campaign to the hosting links
According to where in the app the link was clicked
2019-03-05 18:33:22 +00:00
David Baker
0244990731 Add utm_campaign to the hosting links
According to where in the app the link was clicked
2019-03-05 16:42:22 +00:00
Travis Ralston
4c4b2eedaf Check if users are already in the room before inviting them
Fixes https://github.com/vector-im/riot-web/issues/8965

This also addresses another issue where inviting a banned user shows up as "Unknown server error".
2019-03-01 13:36:24 -07:00
David Baker
e5e355ed2d Remove the white screen of welcome
If there's no home page configured, view the first room.
2019-02-14 12:35:09 +00:00
J. Ryan Stinnett
319369d1be Fix remaining warnings for enabled files 2019-01-23 18:38:49 -06:00
Travis Ralston
7f6ce69c3e Merge branch 'experimental' into travis/develop2 2019-01-17 16:03:45 -07:00
Bruno Windels
a7d21ebb8e re-apply Timer linting fixes that happened in the tiled ui PR 2019-01-17 10:44:12 +01:00
Bruno Windels
8c30d05eb8 Revert "Merge pull request #2348 from matrix-org/bwindels/roomgridview-experimental"
This reverts commit ece5cb1fcc, reversing
changes made to 64a3d2521c.
2019-01-17 10:29:37 +01:00
David Baker
55889d5491 Change wording of 'invite anyway' setting
https://github.com/vector-im/riot-web/issues/7922
2019-01-16 15:07:30 +00:00
Travis Ralston
177d9f245a
Merge pull request #2441 from matrix-org/develop
Merge develop -> experimental
2019-01-14 14:45:20 -07:00
Travis Ralston
a05c0f9214 Rephrase everything to be "invite anyways" rather than "retry"
Also handle profile errors better
2019-01-11 15:46:03 -07:00
Travis Ralston
5333114d7b Give a route for retrying invites for users which may not exist
Fixes https://github.com/vector-im/riot-web/issues/7922

This supports the current style of errors (M_NOT_FOUND) as well as the errors presented by MSC1797: https://github.com/matrix-org/matrix-doc/pull/1797
2019-01-10 21:43:21 -07:00
Bruno Windels
c6952ba5b6 fix some more lint warnings, as limit is 16 now 2019-01-07 16:56:35 +01:00
Bruno Windels
aedc220b62 fix (some) lint warnings 2019-01-07 16:33:23 +01:00
Travis Ralston
8017f0a4a1 Merge remote-tracking branch 'origin/experimental' into travis/develop-for-real 2019-01-03 16:00:23 -07:00
David Baker
f928be6f59 Revert "Merge pull request #2395 from matrix-org/dbkr/merge_develop_experimental"
This reverts commit ad47144355.
2019-01-03 15:37:03 -07:00
David Baker
7d161de35b Partial merge of develop to experimental
Does not include #2336 as the file has been moved out from underneath it:
will do this separately
2019-01-03 15:02:58 +00:00
J. Ryan Stinnett
a597ad10b0 Add a few more zxcvbn strings
Signed-off-by: J. Ryan Stinnett <jryans@gmail.com>
2018-12-19 17:46:37 +00:00
Bruno Windels
8045009d81 remove logging 2018-12-11 16:26:23 +01:00
Bruno Windels
5cd5615b69 Timer class, promise based, so clear/setTimeout doesn't grow unwieldly 2018-12-11 15:43:41 +01:00
Travis Ralston
0f348a7c78 Merge branch 'develop' into travis/invite-errors 2018-12-05 11:25:45 -07:00
Travis Ralston
987ad0b0db Check if users exist before inviting them and communicate errors
Fixes https://github.com/vector-im/riot-web/issues/3283
Fixes https://github.com/vector-im/riot-web/issues/3968
Fixes https://github.com/vector-im/riot-web/issues/4308
Fixes https://github.com/vector-im/riot-web/issues/1597
Fixes https://github.com/vector-im/riot-web/issues/6790

This does 3 things:
* Makes the `MultiInviter` check for a user profile before attempting an invite. This is to prove the user exists.
* Use the `MultiInviter` everywhere to avoid duplicating the logic. Although a couple places only invite one user, it is still worthwhile.
* Communicate errors from the `MultiInviter` to the user in all cases. This is done through dialogs, where some existed previously but were not invoked.

Specifically to the 403 error not working: What was happening was the `MultiInviter` loop was setting the `fatal` flag, but that didn't resolve the promise it stored. This caused a promise to always be open, therefore never hitting a dialog.
2018-11-29 15:05:53 -07:00
David Baker
075c13a5bd Add password strength meter to backup creation UI
https://github.com/vector-im/riot-meta/issues/227
2018-11-23 15:50:23 +00:00
Bruno Windels
ba83166661 Merge branch 'develop' into experimental 2018-10-31 14:54:22 +01:00
Aaron Raimist
49ce4ef117
eslint --fix src/
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2018-10-26 22:50:38 -05:00
Bruno Windels
f2efbc15f4 apply color categories to sender profile name 2018-10-23 10:49:44 +02:00
Aaron Raimist
752d816780
Fix some more lint errors
Signed-off-by: Aaron Raimist <aaron@raim.ist>
2018-10-11 22:06:01 -05:00
David Baker
18661e042d Fall back to another store if indexeddb start fails
If we can't start indexeddb, fall back to a different store.

Previously we just ignored the exception and ploughed on anyway, on
the assumption that startup() was just for the indexeddb store to
load data anyway, and if that failed it would just do an initial
/sync instead (and also we'd keep trying to save the sync back which
would fail...). Then, in the previous release we started pulling
the settings out of the store on startup, making the assumpton that
the store actually worked, so the read obviously failed and the app
failed to start up.

This makes Riot work in Tor browser / firefox in daft mode again.
2018-10-04 13:40:56 +01:00
David Baker
1ec0f04baf Remove old migration code
...as instructed!
2018-10-03 18:33:34 +01:00
David Baker
fa669bf096 Error on splash screen if sync is failing
Display an error on the splash screen with the spinner if the sync
request is not working, rather than just sitting there with a spinner
as if nothing is wrong.

Fixes https://github.com/vector-im/riot-web/issues/7148
2018-09-07 12:18:25 +01:00
Bruno Windels
3b29b7aab6 fix getDMRoomsForUserId not calling _getUserToRooms first (thanks e2e tests) 2018-09-04 17:36:50 +02:00
Bruno Windels
44a53cfc0d use lodash for unique function instead of rolling our own 2018-09-04 16:03:15 +02:00
Bruno Windels
e171296d51 patch self-chats lazily in favor of awaiting sync state 2018-09-04 16:00:40 +02:00
Bruno Windels
6c7cb380e0 add warning in console when patching rooms, so it appears in rage shakes 2018-09-04 13:12:26 +02:00
Bruno Windels
441036ff93 remove duplicates from room lists 2018-09-04 13:12:26 +02:00
Bruno Windels
245dfbf957 only put NON-guessed rooms in self-chats 2018-09-04 13:12:26 +02:00
Bruno Windels
c12abab52d wait until rooms are available
as accountData get processed before rooms, during initial sync
or loading sync from cache, accountData gets emitted
before any room is available, hence our patching wasn't doing
anything. Just as well, because it would have failed (see next commits)
2018-09-04 13:12:26 +02:00
Bruno Windels
fb0a0d5d9e allow self-chats 2018-08-30 12:36:53 +02:00
Bruno Windels
d8f15e1159 make sure we still have the room 2018-08-30 12:06:34 +02:00
Bruno Windels
85b6f157c1 only patch m.direct data on server once per session to avoid request storm 2018-08-30 12:01:13 +02:00
Bruno Windels
379ddfff29 dont reassign userToRooms as we're just patching it up, also better check if we really have self DMs 2018-08-30 11:50:57 +02:00
Bruno Windels
caff60d56d fix var decl 2018-08-30 11:37:13 +02:00
Bruno Windels
5afb3bfb29 patch up DMs marked to self (can happy if any client has a bug here) 2018-08-30 10:53:25 +02:00
Bruno Windels
cead4096d8
Merge pull request #2118 from matrix-org/bwindels/feature_lazyloading
Lazy loading of room members
2018-08-16 18:14:55 +02:00
David Baker
8567ce585b Factor out duplication of resource limit i18n 2018-08-16 13:31:17 +01:00
Bruno Windels
c8b6ccba25 fallback to room summary for dm detection 2018-08-14 11:43:03 +02:00
Bruno Windels
908de56c6d replace getMember(myId).membership with getMyMembership
This works with rooms which haven't had their members
loaded yet.
2018-08-02 11:42:05 +02:00
Bruno Windels
d87d34030a fix dm detection and conf call code with lazy loading 2018-07-25 16:10:49 +02:00
Bruno Windels
e237a02fa5 use more consistent naming 2018-07-25 16:10:49 +02:00
Bruno Windels
54904c9282 use member helper method instead of digging inside member 2018-07-25 16:10:49 +02:00
David Baker
7aab6fa6f1 Merge remote-tracking branch 'origin/develop' into dbkr/widget_echo 2018-07-18 09:35:57 +01:00
David Baker
983dc3ad2e lint 2018-07-16 16:19:18 +01:00
David Baker
0f32c3a018 PR feedback 2018-07-16 13:18:10 +01:00
David Baker
e56feea9ec Put always-on-screen widgets in top left
always-on-screen widgets now appear in the top-left where the
call preview normally is if you're not in the room that they're in.

Fixes https://github.com/vector-im/riot-web/issues/7007
Based off https://github.com/matrix-org/matrix-react-sdk/pull/2053
2018-07-12 18:43:49 +01:00
David Baker
c26b300f30 more comments 2018-07-05 19:58:10 +01:00
David Baker
eb552e5cef Just pass the roomId into WidgetEchoStore 2018-07-05 18:43:20 +01:00
David Baker
c665ab8a22 Add error dialog if widget remove fails
Also up the timeout because matrix.org is that slow
2018-07-03 11:55:41 +01:00
David Baker
8b64ddcbe8 Do some level of local echo for widgets
* Show a spinner while we wait for widgets to be deleted
 * Hide widgets while they're pending deletion
 * Don't put another jitsi widget into the room if there's already
   one pending
2018-07-03 11:16:44 +01:00
David Baker
c780cd05a8 Change argument order of setRoomWidget
So when deleting a widget we can just omit the ones we don't need
2018-06-26 16:33:28 +01:00
David Baker
cb89406d3e Indent 2018-06-26 15:42:29 +01:00
David Baker
4a39297e65 PR feedback 2018-06-26 15:41:43 +01:00
David Baker
0a6450507e Bits of PR feedback 2018-06-26 15:21:22 +01:00
David Baker
ca8a4a0c3f Remove unused function 2018-06-26 12:08:33 +01:00
David Baker
6cf11a15e6 Move WidgetUtils to utils dir 2018-06-26 11:59:16 +01:00
David Baker
0f2c47937c Merge the two different widget utils files 2018-06-26 11:52:21 +01:00
Travis Ralston
210fcf0d52 Correctly identify sticker picker widgets
Widgets added to account data have the `type` of "m.widget", meaning we have to look at the `content.type` which will tell us what it is. 

This also fixes a bug where all user widgets become sticker picker widgets under the right conditions.

Signed-off-by: Travis Ralston <travpc@gmail.com>
2018-05-13 17:15:35 -06:00
Luke Barnard
6ec9e5f670
Merge pull request #1866 from matrix-org/luke/luke/group-store-refactor
Refactor GroupStores into one global GroupStore
2018-05-01 12:33:06 +01:00
Luke Barnard
023daef4b7 Refactor GroupStores into one global GroupStore
Take a step closer to a flux-like architecture for group data, for
the purposes of providing features that require it.

Now the app has a single GroupStore that can be poked to fetch
updates for a particular group.
2018-05-01 11:24:17 +01:00
Matthew Hodgson
bffd5bb891 fix constness 2018-04-29 03:09:17 +01:00
Matthew Hodgson
9701fd32b7 switch back to blob urls for rendering e2e attachments
Based on @walle303's work at https://github.com/matrix-org/matrix-react-sdk/pull/1820
Deliberately reverts 8f778f54fd
Mitigates XSS by whitelisting the mime-types of the attachments so that malicious ones
should not be recognised and executed by the browser.
2018-04-29 03:07:31 +01:00
Matthew Hodgson
70f3804227 move room directory logic over from riot-web 2018-04-11 23:58:46 +01:00
Richard Lewis
11915b0cdf Fix user widget event type.
Add comments for clarity.
2018-04-02 10:02:41 +01:00
Richard Lewis
93804e80b8 Return promise 2018-03-29 20:37:24 +01:00
Richard Lewis
b1e7dcf216 Cleanup / simplify code. 2018-03-29 17:52:34 +01:00
Richard Lewis
a33859326e Use getUserWidgets where possible. 2018-03-09 09:15:16 +00:00
Richard Lewis
e249e3d622 Correct stickerpicker naming, 2018-02-25 22:10:38 +00:00
Richard Lewis
9ae89e2b43 Reduce logging. 2018-02-23 15:27:55 +00:00
Richard Lewis
f3943bef51 Check for empty user widgets. 2018-02-07 10:05:50 +00:00
Richard Lewis
393236ba34 Update / remove stickerpacks 2018-02-07 09:23:00 +00:00
Richard Lewis
34de3729fe Add method to remove all stickerpacks. 2018-02-05 11:49:26 +00:00
Richard Lewis
1a994b88f5 Move widget utility functions in to their own file. 2018-01-11 10:32:37 +00:00
Luke Barnard
7ec4010881 Make GroupStore use MatrixClientPeg
To avoid weirdness with using a cached matrix client
2017-11-28 11:54:05 +00:00
Richard van der Hoff
dff76f7db1
Merge pull request #1552 from matrix-org/t3chguy/header_access_token
Send Access Token in Headers to help prevent it being spit out in errors
2017-11-22 16:44:36 +00:00
Luke Barnard
dad797d4a2 Run linting --fix 2017-11-16 13:19:36 +00:00
Travis Ralston
de6fc32a87 Show an indicator when there are any pins in the room
Signed-off-by: Travis Ralston <travpc@gmail.com>
2017-11-03 20:00:48 -06:00
Michael Telatynski
44ec57358b
Send Access Token in Headers to help prevent it being spit out in errors
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2017-10-30 10:40:10 +00:00
Luke Barnard
0799e5cde4 Refresh group member lists after inviting users 2017-10-23 16:04:26 +01:00
Luke Barnard
d3f9a3aeb5 Run eslint --fix
Fixing 1000s of lint issues. Some rules cannot be `--fix`ed but this goes some way to linting the entire codebase.
2017-10-11 17:56:17 +01:00
David Baker
ddf1017799 Make group invites work 2017-08-16 14:58:30 +01:00
David Baker
81273ec855 Move non-invite specific stuff to UserAddress 2017-08-15 13:42:23 +01:00
David Baker
7cfef04c1f Remove other promise notify 2017-07-18 11:27:21 +01:00
David Baker
b261c89a63 Fix inviting multiple people to a room
Removes the promise notify as bluebird doesn't support it. It's
also not used anywhere now.

Fixes https://github.com/vector-im/riot-web/issues/4614
2017-07-18 11:11:42 +01:00
Richard van der Hoff
0d7cc59d99 replace q method calls with bluebird ones
```
find src test -name '*.js' |
    xargs perl -i -pe 's/q\.(all|defer|reject|delay|try|isFulfilled)\(/Promise.$1(/'
```
2017-07-12 18:05:40 +01:00
Richard van der Hoff
0254d2b3a2 q(...) -> Promise.resolve
```
find src test -name '*.js' | xargs perl -i -pe 's/\b[qQ]\(/Promise.resolve(/'
```
2017-07-12 18:05:08 +01:00
Richard van der Hoff
a06bd84213 replace imports of q with bluebird
update `package.json`

```
find src test -name '*.js' |
   xargs perl -i -pe 'if (/require\(.[qQ].\)/) { $_ = "import Promise from '\''bluebird'\'';\n"; }'

find src test -name '*.js' |
   xargs perl -i -pe 'if (/import [qQ]/) { $_ = "import Promise from '\''bluebird'\'';\n"; }'
```
2017-07-12 18:05:08 +01:00
Richard van der Hoff
b124ac21fd Fix load failure in firefox when indexedDB is disabled 2017-06-22 15:07:54 +01:00
Richard van der Hoff
e9ab667d29 Use the web worker when clearing js-sdk stores
It turns out that Firefox doesn't let you use indexeddb from private tabs,
*unless* you are *also* in a webworker. We need to either consistently use it
or not use it - so let's use it.
2017-06-21 17:43:34 +01:00
Richard van der Hoff
939f6d0798 Factor createMatrixClient out from MatrixClientPeg
... so that it can be used elsewhere.
2017-06-13 12:46:49 +01:00
Richard van der Hoff
175599beda Improve error logging/reporting in megolm import/export
I saw a rageshake where somebody had apparently failed to import a key file.
I have no idea why it happened.

Also try to make the errors the users see useful.
2017-06-08 16:55:50 +01:00
Richard van der Hoff
b16e652acc rewrite MegolmExportEncryption using async/await
... to make it easier to add exception handling
2017-06-08 14:45:01 +01:00
Richard van der Hoff
d9bc8ebc53 de-lint MegolmExportEncryption + test 2017-06-08 14:29:53 +01:00
Richard van der Hoff
fc08dc33c6 Group e2e keys into blocks of 4 characters
Hopefully this will make them a bit easier to compare.
2017-05-22 12:01:09 +01:00
Richard van der Hoff
eebc7539f9 Megolm export: Increase to 500000 PBKDF rounds
This takes 370ms on my machine (100000 only took 100ms).
2017-02-02 16:38:19 +00:00
Richard van der Hoff
c5f447260a Megolm import: Fix handling of short files
Make sure we throw a sensible error when the body of the data is too short.
2017-01-31 12:30:30 +00:00
Richard van der Hoff
62c8c20268 Megolm export: fix Android incompatibility
I'd carefully added a workaround to maintain compatibility with the Android
AES-CTR implementation... to the wrong thing.
2017-01-31 12:29:16 +00:00
David Baker
18d4d3392a Fix a bunch of linting errors
eslint --fix and a few manual ones
2017-01-20 14:22:27 +00:00
Richard van der Hoff
8b60cb9df0 Megolm export: Clear bit 63 of the salt 2017-01-19 10:43:41 +00:00
Richard van der Hoff
31df78f946 Use text-encoding-utf-8 as a TextEncoder polyfill
Somebody else seems to have done a good job of polyfilling TextEncoder, so
let's use that.
2017-01-18 11:39:44 +00:00
Richard van der Hoff
09ce74cc76 Fix a couple of minor review comments 2017-01-16 18:44:46 +00:00
Richard van der Hoff
f8e56778ea Encryption and decryption for megolm backups 2017-01-14 01:34:34 +00:00
Richard van der Hoff
1d5d44d63d TextEncoder polyfill
Apparently Safari doesn't sport a TextEncoder, so here's a polyfill for it.
2017-01-14 00:45:51 +00:00
Mark Haines
81e429eb14 Fix e2e attachment download by using iframes. (#562)
* Render attachments inside iframes.

* Fix up the image and video views

* Fix m.audio

* Comments, and only use the cross domain renderer if the attachment is encrypted

* Fix whitespace

* Don't decrypt file attachments immediately

* Use https://usercontent.riot.im/v1.html by default

* typos

* Put the config in the React context.

Use it in MFileBody to configure the cross origin renderer URL.

* Call it appConfig in the context

* Return the promises so they don't get dropped
2016-12-02 14:21:07 +00:00
Mark Haines
72d24f58d0 Make the promises be q promises 2016-11-11 13:57:45 +00:00
Mark Haines
bf5ecbd016 Review comments
Conflicts:
	src/ContentMessages.js
2016-11-11 13:57:42 +00:00
Mark Haines
ee1768f644 Use data:// URI rather than blob: URI to avoid XSS 2016-11-11 13:55:57 +00:00
Mark Haines
a4a0d02848 Move decryptFile into a utility function so that it can be shared between different components
Conflicts:
	src/components/views/messages/MImageBody.js
2016-11-11 13:55:48 +00:00
David Baker
1e163eabf0 Revert "Encrypt attachments in encrypted rooms," 2016-11-11 11:59:08 +00:00
Mark Haines
c838164f40 Make the promises be q promises 2016-11-08 16:26:25 +00:00
Mark Haines
911f9e4e63 Review comments 2016-11-08 11:42:20 +00:00
Mark Haines
8f778f54fd Use data:// URI rather than blob: URI to avoid XSS 2016-11-04 15:39:39 +00:00
Mark Haines
b6653dd0ed Move decryptFile into a utility function so that it can be shared between different components 2016-11-04 12:46:45 +00:00
David Baker
2be1cc9f85 Give DMRoomMap an explicit makeShared
Otherwise it will hang on to the old state client on logout.
2016-09-27 09:56:31 +01:00
David Baker
690309adfc Bring back the little green men without slowness
Introduces a singleton DMRoomMap that subscribes to account data to keep itself up to date so we don't have to keep doing the map inversion for each room tile.
2016-09-26 18:02:14 +01:00
Matthew Hodgson
0046ae50b5 switch to 3-digit formatting for counts 2016-09-17 02:39:19 +01:00
Matthew Hodgson
8508e006f0 Merge pull request #469 from matrix-org/wmwragg/chat-multi-invite
Wmwragg/chat multi invite
2016-09-13 19:30:02 +01:00
David Baker
2fd9e2a98f Pull out multi-inviting from MultiInviteDialog
MultiInviteDialog would otherwise use this, but is about to go away, so it has been left.
2016-09-13 14:47:56 +01:00
David Baker
2943db1072 Flag incoming DMs as such
* Add the 'is_direct' flag to rooms created for DMs
 * For invites, look for the DM flag when getting the DM user ID for a room
 * When accepting an invite, look for the flag and mark the room as a DM room if appropriate.
2016-09-12 18:32:44 +01:00
David Baker
8e518af96c Merge remote-tracking branch 'origin/develop' into dbkr/dont_crash_if_no_dm_rooms 2016-09-09 17:38:13 +01:00
David Baker
f1ed750246 Don't crash if no DM rooms with someone
...when opening MemberInfo.

getDMRoomsForUserId should always return a valid list, since it's a list of what DM rooms you have with somebody.
2016-09-09 17:35:35 +01:00
David Baker
6f2e0a4cdf Make rooms in MemberInfo update when necessary
Factor out the chunk of code that looks through a read receipt event
to see if it contain a read receipt from a given user, now we use it
in 2 places.
2016-09-09 16:59:59 +01:00
David Baker
aa0f15c46e List common rooms in MemberInfo 2016-09-09 16:15:01 +01:00
David Baker
8f6d413ebd Move DMRoomMap to a util subdir 2016-09-07 10:07:43 +01:00