Commit graph

102 commits

Author SHA1 Message Date
Michael Telatynski
c7a935777d Fix the jitsi qs parsing, as the ? after # here is optional, unlike in EW 2021-07-16 19:37:48 +01:00
Michael Telatynski
b03b4582c0 Merge branch 'develop' of github.com:vector-im/element-web into t3chguy/querystring
 Conflicts:
	package.json
	src/@types/global.d.ts
	src/vector/app.tsx
	src/vector/jitsi/index.ts
	src/vector/platform/WebPlatform.ts
	yarn.lock
2021-07-16 12:45:37 +01:00
J. Ryan Stinnett
491b179971 Auto-fix lint errors 2021-06-30 13:28:31 +01:00
David Baker
b910fcd38a Add option for audio live streaming
Starts jitsi streaming to a specially configured URL so that the
jitsi server can start an audio-only stream, in combination with an
API to manage audio streams by room ID.
2021-03-04 18:00:55 +00:00
Travis Ralston
c67951f254 Jitsi widget: Read room name from query parameters
This is an aesthetic change to the Jitsi widget and has no bearing on the widget's functionality.

Paired with https://github.com/matrix-org/matrix-react-sdk/pull/5649
2021-02-15 08:54:56 -07:00
Travis Ralston
5cb323feed Supply server_name for optional federation-capable Jitsi auth
See https://github.com/matrix-org/prosody-mod-auth-matrix-user-verification/pull/3
2021-01-19 10:23:23 -07:00
J. Ryan Stinnett
d05c022d4f Rebrand some GitHub links 2020-11-25 14:16:55 +00:00
Michael Telatynski
0bdf979c46 fix the Jitsi bg colour to not be transparent as the app colours may be anything and bleed through 2020-10-27 11:26:41 +00:00
Michael Telatynski
7c895bd8c0 Fix theme variable handling with invalid values 2020-10-27 11:26:41 +00:00
Michael Telatynski
593a56e2d7 Jitsi accept theme variable and restyle
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-10-19 19:40:53 +01:00
J. Ryan Stinnett
dfb1579625 Adjust for new widget messaging APIs
As part of changing to the `events` package, the API surface changed slightly.

Related to https://github.com/vector-im/element-web/issues/15493
2020-10-19 16:43:55 +01:00
Travis Ralston
917a85ead9 Don't fatally end the Jitsi widget when it's not being used as a widget 2020-10-14 16:16:08 -06:00
Travis Ralston
9cb823b210 Fix join button 2020-10-01 09:59:13 -06:00
Travis Ralston
cdf9547220 Appease the linter 2020-09-30 20:51:31 -06:00
Travis Ralston
7b93c56bd0 Fix custom hangup button 2020-09-30 20:09:42 -06:00
Travis Ralston
c56368cdbb Fix hangup button handler 2020-09-29 13:20:16 -06:00
Travis Ralston
15a8ee6663 Merge branch 'develop' into travis/widget-api 2020-09-29 13:17:18 -06:00
Travis Ralston
20c6e6dd73
Merge pull request #15316 from vector-im/travis/jitsi-widget
Give the Jitsi widget an icon to help with discovery
2020-09-29 11:06:42 -06:00
Travis Ralston
7ef0702df4 re-todo 2020-09-29 11:04:08 -06:00
Travis Ralston
a1e6b019d2 Give the Jitsi widget an icon to help with discovery
We think users will be expecting to follow a series of icons into their conference, so we'll remind them here of what is going on with a giant icon.

This does not change depending on the call type because the jitsi widget doesn't understand the call type anyways - it's always a video conference.
2020-09-29 11:01:26 -06:00
Travis Ralston
82749c3de3 Fix Jitsi for new widget-api 2020-09-24 13:25:59 -06:00
Travis Ralston
c7617c2538 Fix bad merge 2020-09-22 09:01:55 -06:00
Travis Ralston
465a2ce314 Merge branch 'develop' into travis/widget-api 2020-09-22 09:00:48 -06:00
Travis Ralston
05d5e3f680 Remove debugging 2020-09-17 14:59:43 -06:00
Travis Ralston
737fa7dca5 Jitsi widget wrapper updates for hangup button
See https://github.com/matrix-org/matrix-react-sdk/pull/5223
2020-09-16 14:39:40 -06:00
Jason Robinson
7018a498a7 Quieten some IDE warnings 2020-09-08 12:52:17 +03:00
Jason Robinson
579650a1dd Move most of the OpenID token flow to WidgetAPI 2020-09-08 12:50:53 +03:00
Jason Robinson
a7abd8599e More usage of constants 2020-09-08 11:44:11 +03:00
Jason Robinson
3309b2ec55 Block on matrix-org/matrix-react-sdk#5172
And shuffle code around a bit.
2020-09-08 11:37:50 +03:00
Jason Robinson
151dd5709c
Fix import
Co-authored-by: Travis Ralston <travpc@gmail.com>
2020-09-08 11:32:09 +03:00
Jason Robinson
21c862fe2b Remove console.log 2020-09-07 20:47:07 +03:00
Jason Robinson
3b434a70d2 Fix typo 2020-09-07 20:36:26 +03:00
Jason Robinson
acfd7252bd Remove todo 2020-09-07 20:26:05 +03:00
Jason Robinson
4164df647c Improve error messsage of Jitsi widget
If openidtoken request fails, show
an error. Also render error a bit nicer
in generic widget load errors.
2020-09-07 19:51:16 +03:00
Jason Robinson
2205f0611e Add some links to the openidtoken-jwt spec 2020-09-07 19:25:44 +03:00
Jason Robinson
0410a6b3be Use Jitsi domain in the JWT issuer 2020-09-07 19:23:36 +03:00
Jason Robinson
8534328921 Implement OpenID token fetch from Jitsi widget
Using MSC1960 to fetch an OpenID token via postmessage API. This is needed
for Jitsi openidtoken-jwt auth.
2020-09-07 18:10:19 +03:00
Travis Ralston
2fa8b0f8b2 Make the types happy 2020-09-04 22:02:18 -06:00
Travis Ralston
69745bbd40 Switch to using the Widget API SDK for Jitsi widgets 2020-09-04 21:55:50 -06:00
Jason Robinson
5108697ac8 Add support for Jitsi openidtoken-jwt auth
If the widget URL specifies this auth, generate a JWT token
containing the info needed by the Jitsi backend.
2020-09-04 13:14:52 +03:00
Jorik Schellekens
9bb1f99bd9 Confiure eslint package and fix lint issues 2020-07-21 11:30:28 +01:00
J. Ryan Stinnett
ffab08bd60 Update various brand instances in code 2020-07-13 17:32:17 +01:00
Michael Telatynski
8fdb41412f Use URLSearchParams instead of transitive dependency querystring
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
2020-04-12 01:45:58 +01:00
Travis Ralston
ab29ec123e
Merge pull request #12968 from vector-im/travis/jitsi-errors
Add a console warning that errors from Jitsi Meet are fine
2020-04-01 10:54:06 -06:00
David Baker
0bf05e3c7b Make widget API use optional
So we can work when popped out into a browser
2020-04-01 11:08:53 +01:00
David Baker
421fcb115f Give the jitsi wrapper its own external api script 2020-04-01 10:38:49 +01:00
Travis Ralston
13a7b71e08 Add a console warning that errors from Jitsi Meet are fine
See diff for info.

We use the fragment to avoid sending conference information to the web server where possible.
2020-03-31 12:19:17 -06:00
Travis Ralston
bde5679d11 Ask for Riot config over postMessage for the Jitsi widget
Fixes https://github.com/vector-im/riot-web/issues/12839 by not using the app load order that doesn't detect the right platform anyways.
2020-03-24 09:54:15 -06:00
Travis Ralston
4087ba0c5c
Revert "Remove useless app preloading from Jitsi widget wrapper" 2020-03-24 09:14:59 -06:00
Travis Ralston
350a52b44e Remove useless app preloading from Jitsi widget wrapper
We should always have conference information, and if we don't then the widget is invalid.
2020-03-23 10:38:10 -06:00
Travis Ralston
09e26d0882 Misc case changes, comment updates 2020-03-19 11:47:43 -06:00
Travis Ralston
e1eb16ce46 Use a local widget wrapper for Jitsi calls
Effectively fixes https://github.com/vector-im/riot-web/issues/11074
Effectively fixes https://github.com/vector-im/riot-web/issues/7112
Fixes https://github.com/vector-im/riot-web/issues/6930
Fixes Jitsi widgets not working for guests (https://github.com/vector-im/riot-web/issues/8933)
Fixes https://github.com/vector-im/riot-web/issues/5048

Previously we were relying on an integration manager to be defined, functional, and alive in order to join Jitsi calls. This commit changes this so we aren't reliant on an integration manager for Jitsi calls at all, and gives people the option of choosing a Jitsi server via the config.json.

This side is just the wrapper/shell: the logic is mostly in the react-sdk (to be linked via PRs). This layer simply has an HTML file exported that can be used to render a Jitsi widget, and the react-sdk constructs a URL to access it locally. This is similar to how the mobile apps handle Jitsi widgets: instead of iframing the widget URL directly into the app, they pull apart the widget information and natively render it. We're effectively doing the same here by parsing the widget options and using our local wrapper instead of whatever happens to be defined in the widget state event.

Integration managers should still continue to offer a widget URL for Jitsi widgets as this is what the spec requires.

A large part of this is based upon Dimension's handling of Jitsi and widgets in general: a license has been granted to allow Riot (and therefore the react-sdk) to use the code and be inspired by it.
2020-03-18 15:48:02 -06:00