Commit graph

317 commits

Author SHA1 Message Date
Michael Telatynski
949b8d9afe Rename apps back to widgets
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-09-18 16:35:42 +01:00
David Baker
b7058a33ad lint 2020-09-10 14:37:44 +01:00
David Baker
eeb4c5696f Don't show 'unpin' for persistent widgets
This will mostly fix https://github.com/vector-im/element-web/issues/15139
although it could still break in a race condition.
2020-09-10 14:30:35 +01:00
David Baker
62556c2afe
Merge pull request #5184 from matrix-org/dbkr/always_allow_local_widgets
Always allow widgets when using the local version
2020-09-09 15:52:31 +01:00
David Baker
f9079975a1 write correct jsdoc 2020-09-09 15:42:25 +01:00
David Baker
99b0a0a78e Always allow widgets when using the local version
Since we're not loading the widget URL, there's no need to ask
for permission to load it: it's just another part of the app.
2020-09-09 15:35:05 +01:00
Michael Telatynski
98b59fb217 Consolidate all the work thus far 2020-09-08 15:43:38 +01:00
Michael Telatynski
87b72de25f
Merge pull request #5176 from matrix-org/t3chguy/dpsah/6785.4
Fix WatchManager for global room watchers and tidy widget code a little
2020-09-08 15:24:10 +01:00
Jason Robinson
75518254fb
Merge pull request #5173 from matrix-org/jaywink/jitsi-openidjwt-auth
Support creation of Jitsi widgets with "openidtoken-jwt" auth
2020-09-08 17:16:50 +03:00
Michael Telatynski
48d9c94c88 Extract editWidget into WidgetUtils 2020-09-08 11:12:14 +01:00
Jason Robinson
13dbfa6b85 Remove debug statement 2020-09-04 12:44:43 +03:00
Jason Robinson
baa6d8a294 Correctly template in Jitsi widget auth if such exists
Also add roomId to the widget data and URL template. It's needed by
the Element Web Jitsi code to produce auth for the Jitsi backend.
2020-09-04 12:42:46 +03:00
Michael Telatynski
243af3c9f2 Merge branch 'develop' of https://github.com/matrix-org/matrix-react-sdk into t3chguy/dpsah/6785 2020-09-02 09:27:06 +01:00
Michael Telatynski
2823156ef6 Merge branch 'develop' of https://github.com/matrix-org/matrix-react-sdk into t3chguy/display-capture 2020-08-28 17:26:10 +01:00
Michael Telatynski
b9cfa95ceb Add display-capture to iframe allow 2020-08-28 17:06:56 +01:00
Michael Telatynski
ae65ed5c2e Merge branch 'develop' of https://github.com/matrix-org/matrix-react-sdk into resizable-appsdrawer
 Conflicts:
	res/css/views/rooms/_AppsDrawer.scss
2020-08-20 10:26:35 +01:00
Travis Ralston
96087d61f6 Convert feature setting usages to regular settings 2020-08-17 13:12:18 -06:00
J. Ryan Stinnett
538e222d1f
Merge pull request #5081 from matrix-org/msuess/fix-edit-multiple-widget-instances
get screen type from app prop
2020-08-10 14:14:25 +01:00
J. Ryan Stinnett
ce226ab534 Replace Riot with Element in docs and comments
This only covers the simple cases of references to issues and repos. More
complex areas, such as deployment scripts, will be handled separately.

Part of https://github.com/vector-im/element-web/issues/14864
2020-08-03 18:33:36 +01:00
Marco Süß
5b8a8ecc5e get screen type from app prop 2020-08-03 16:26:25 +02:00
Travis Ralston
1f7f40736b Fix imports for SettingLevel to point at new file 2020-07-28 11:53:43 -06:00
Jorik Schellekens
b110639c76 Merge remote-tracking branch 'origin' into joriks/eslint-config 2020-06-29 16:49:33 +01:00
Andrew Morgan
6ea5dc7b7c Change the look of the spinner 2020-06-26 01:19:38 +01:00
Jorik Schellekens
7699aafcaf Use new eslint package- fix lint issues in ts and js 2020-06-23 17:01:19 +01:00
Travis Ralston
e4aeabe5a6
Merge pull request #4444 from pv/jitsi-popout-immediate-join
Ensure active Jitsi conference is closed on widget pop-out
2020-06-07 20:22:39 -06:00
Travis Ralston
90a898d03f Move dispatcher into a subdirectory
We're expecting to have a whole bunch of types for the dispatched payloads, so pull the thing into a directory we can throw them in.
2020-05-13 21:07:50 -06:00
David Baker
50107ebe47 Re-fix OpenID requests from widgets
https://github.com/matrix-org/matrix-react-sdk/pull/4591 reverted
https://github.com/matrix-org/matrix-react-sdk/pull/4459. We need
to pass both URLs as we need both the wURL (for the widget's 'identity'
ie. OpenID) and the URL that's actually in the iframe (for the
messaging).
2020-05-13 16:10:40 +01:00
David Baker
92824411e8 Fix persistent widgets on desktop / http
WidgetMessaging needs the URL of the widget that gets rendered into
the iframe because that's where the postmessages will be coming from.

Fixes https://github.com/vector-im/riot-web/issues/13369
2020-05-13 12:33:10 +01:00
Pauli Virtanen
2e7bd2e3f0 Use flexboxes in AppTile/AppDrawer CSS for automatic resizing
Using flexboxes removes the need for pixel constants, and the app
content now resizes to fill the tiles.

Signed-off-by: Pauli Virtanen <pav@iki.fi>
2020-04-30 20:14:48 +03:00
Pauli Virtanen
38962560ac Style fixes
Signed-off-by: Pauli Virtanen <pav@iki.fi>
2020-04-28 02:29:20 +03:00
Travis Ralston
50783c2432 Appease the linter 2020-04-23 23:25:53 -06:00
Travis Ralston
28865e27bc Don't overwrite the 'domain' data key for all widgets
Some widgets, which aren't Jitsi widgets, might need this to be something else.
2020-04-23 15:24:27 -06:00
Travis Ralston
efaf4fbbda Decode dollar signs in safe widget URLs before rendering/templating
Fixes https://github.com/vector-im/riot-web/issues/13344
2020-04-23 15:24:27 -06:00
Travis Ralston
d66d497638
Merge pull request #4460 from matrix-org/travis/integ-logging
Update logging for unmanaged widgets, and add TODO comments for other areas
2020-04-23 08:17:54 -06:00
Pauli Virtanen
798f5d401b Ensure active Jitsi conference is closed on widget pop-out
Signed-off-by: Pauli Virtanen <pav@iki.fi>
2020-04-22 20:44:05 +03:00
Pauli Virtanen
cf4137d4b2 Make WidgetAPI an EventEmitter + use for terminate + cleanups
Use EventEmitter for emitting events, rename terminate event code,
plus misc cleanups from review.

Signed-off-by: Pauli Virtanen <pav@iki.fi>
2020-04-22 19:37:52 +03:00
Pauli Virtanen
352ea29d17 Implement widget ReceiveTerminate capability
Signed-off-by: Pauli Virtanen <pav@iki.fi>
2020-04-22 19:37:52 +03:00
Pauli Virtanen
94745e9407 Minimize widget immediately, and end it later
Signed-off-by: Pauli Virtanen <pav@iki.fi>
2020-04-22 19:37:52 +03:00
Pauli Virtanen
4fac781051 Tell widgets to terminate gracefully in AppTile:_endWidgetActions
If the widget fails to terminate in two seconds, proceed with disposing
the iframe nevertheless.

This allows e.g. Jitsi to hangup the conference when minimizing the
widget, instead of abrupt disconnect that can leave ghost users behind.

Signed-off-by: Pauli Virtanen <pav@iki.fi>
2020-04-22 19:37:52 +03:00
Travis Ralston
3a360b91b9 Update logging for unmanaged widgets, and add TODO comments for other areas
Just a minor thing that is bothersome. Renaming classes and functions is a bit more of an impact than is worth right now, so have settled for littering TODO comments all over the place.
2020-04-22 00:34:08 -06:00
Travis Ralston
d851f2e45f Fix OpenID requests from widgets
Fixes https://github.com/vector-im/riot-web/issues/13131

Widgets can request an OpenID token to authenticate the user when the widget is missing authentication information. A common case for this is the Dimension sticker picker: sometimes the Riot is running in doesn't have the configuration to match the Dimension instance, so Riot rightly refuses to send an auth token to the widget. When this happens, it requests a token through postMessage().

There's a toggle on the permission dialog to remember the setting, which is the widget's security key. As an added measure, the security key generation ensures the widget URL matches as the 'remember this choice' toggle will silently work in the background, and it could be dangerous if the widget's URL changed and Riot secretly allows the widget to identify the user. This check was failing because the WidgetMessaging class was being set up with the rendered URL, which will not match the widget's URL at all. To fix this, we simply use the widget's URL to set up the messaging, which by proxy uses the right URL in calculating the security key.
2020-04-22 00:27:20 -06:00
Travis Ralston
dc92f557fd Support m.jitsi-typed widgets as Jitsi widgets
Fixes https://github.com/vector-im/riot-web/issues/9268
2020-04-09 15:11:57 -06:00
Travis Ralston
db3c7a8f1c Obliterate widgets when they are minimized
Fixes https://github.com/vector-im/riot-web/issues/12810

We do this to all widgets as we can't guarantee what sorts of other widgets might need similar treatment.
2020-04-09 14:31:46 -06:00
Travis Ralston
b5aaae1c27 Fix encoding of widget arguments
Fixes https://github.com/vector-im/riot-web/issues/12985

This is done by using a more modern API and de-encoding dollar signs.
2020-04-08 12:58:52 -06:00
Travis Ralston
5c2841323e Appease the linter by turning it off 2020-04-01 14:45:54 -06:00
Travis Ralston
47e5cfecf2 Silence usages of componentWillReceiveProps
For https://github.com/vector-im/riot-web/issues/12877
2020-04-01 14:35:39 -06:00
Travis Ralston
ba0a9c8439 Use console.log in place of console.warn for less warnings
These aren't react warnings, but they are distracting in the logs.
2020-04-01 13:59:48 -06:00
Travis Ralston
0fcbe40bec
Merge pull request #4314 from matrix-org/travis/react-warnings/2-code-quality
Fix a number of minor code quality issues
2020-04-01 11:13:46 -06:00
Travis Ralston
59a99bbad8
Merge pull request #4313 from matrix-org/travis/react-warnings/1-componentDidMount
Use componentDidMount in place of componentWillMount where possible
2020-04-01 11:13:04 -06:00
David Baker
8aa24f8987 Fix jitsi popout URL
Needs the template variables filled in
2020-04-01 14:42:17 +01:00