1
Fork 0
Commit Graph

449 Commits

Author SHA1 Message Date
Juliusz Chroboczek d69c517137 Allow auth server to fallback to password auth.
The authorisation server can now reply with 204 (no content)
in order to request that the client should continue with password
authentication.
2022-08-02 18:12:17 +02:00
Juliusz Chroboczek 3bdd82f06d Rework file transfer.
Split into the protocol (in protocol.js) and the user interface
(in galene.js).  Make the state automaton explicit, and improve
error-handling.  The new protocol is incompatible with the old one.
2022-07-25 18:54:52 +02:00
Juliusz Chroboczek 96f39ca315 Change z-level of contextual menu 2022-05-29 01:50:17 +02:00
Juliusz Chroboczek cf495d31b3 Remove dead CSS. 2022-05-29 01:26:55 +02:00
Juliusz Chroboczek b55c9f7a92 Fix wording of Safari warning. 2022-05-19 15:24:15 +02:00
Juliusz Chroboczek 3d807677a7 Make warning against Safari screensharing stronger. 2022-05-19 13:24:44 +02:00
Juliusz Chroboczek 547ff1e6c4 Revert "Don't break lines manually in chat messages."
This reverts commit 2eca0e44d5.
2022-04-20 17:38:55 +02:00
Juliusz Chroboczek 6669a93ae3 Don't use high-quality audio for screenshare.
We used to set high-quality audio by default for screenshare,
but that makes the video blurry under bad network conditions.
Obey the hqaudio setting for all streams.
2022-04-15 00:36:47 +02:00
ericgaspar e673cf1225 Rename lower hand to unraise. 2022-03-26 11:55:30 +01:00
Juliusz Chroboczek eb21c1ab20 Maintain stream information for oneself.
We used to maintain stream information for all users except oneself.
2022-03-25 18:21:03 +01:00
Juliusz Chroboczek e303992e45 Call onuser when deleting stream. 2022-03-25 17:04:31 +01:00
Juliusz Chroboczek 7527aeba3d Factorise out setUserStatus. 2022-03-25 16:49:09 +01:00
Juliusz Chroboczek d8db7567e4 Allow displaying chat messages when unconnected.
This makes commands such as /set work before you connect.
2022-03-25 16:30:31 +01:00
Juliusz Chroboczek 2eca0e44d5 Don't break lines manually in chat messages.
This is no longer necessary since we use "pre-wrap" in the CSS.
2022-03-25 16:23:51 +01:00
Juliusz Chroboczek f66cabd6f4 Fix file transfer error handling. 2022-03-23 00:58:55 +01:00
Juliusz Chroboczek 8aaa6d1466 Obey forceRelay for file transfers. 2022-03-23 00:12:51 +01:00
Juliusz Chroboczek 55ae4a684b Remove parameter from the onpeerconnection callback.
The distinction is not likely to be useful, and it doesn't make
sense in all cases.
2022-03-23 00:11:12 +01:00
Juliusz Chroboczek 8d4bafe05c Tweak documentation of protocol.js. 2022-03-23 00:08:16 +01:00
Juliusz Chroboczek 34b21a2598 Add preference forceRelay.
This may be useful to get around network blocks in some cases.
2022-03-22 18:23:16 +01:00
Juliusz Chroboczek 4053d9ca77 Display warning when joining a locked group. 2022-03-22 18:18:04 +01:00
Juliusz Chroboczek de63449150 More paranoid match for Firefox bandwidth workaround. 2022-03-21 19:40:41 +01:00
Juliusz Chroboczek a698011aef Don't set rid when not simulcasting.
It turns out that the bandwidth limitation is not effective
in Firefox when the rid is set unless we're simulcasting.
2022-03-21 19:19:19 +01:00
Juliusz Chroboczek d798cfec75 Fix simulcast statistics display for Firefox.
Firefox doesn't include the rid in the statistics result.
Use the SSID instead.
2022-03-20 22:34:39 +01:00
Juliusz Chroboczek 148c49d253 Enable simulcast on Firefox.
Firefox uses a non-standard protocol for simulcast, which has been
supported by Pion for a while now.  Enable simulcast in Firefox.
2022-03-20 21:52:24 +01:00
Juliusz Chroboczek 96a46c695a Add presenting files to context menu. 2022-02-21 18:36:36 +01:00
Juliusz Chroboczek 296fe622df Share audio in addition to video. 2022-02-21 18:19:25 +01:00
Juliusz Chroboczek 3c98e15229 Control preprocessing and high-quality audio. 2022-02-21 18:18:03 +01:00
Juliusz Chroboczek aa30c34863 Increase audio quality for presented files. 2022-02-21 17:41:49 +01:00
Juliusz Chroboczek cbcfbb3f74 Make presenting files a chat command. 2022-02-21 17:32:32 +01:00
Juliusz Chroboczek 5ecb3a1f93 Fix file transfer.
We had two functions with the same name.
2022-02-21 16:53:22 +01:00
Juliusz Chroboczek de3a016f4d Set the username in the server when using tokens.
This avoids the need to pass the username in the URL without
requiring the client to parse tokens.
2022-02-20 15:33:11 +01:00
Juliusz Chroboczek a9c9581465 Implement authPortal. 2022-02-19 23:58:31 +01:00
Juliusz Chroboczek a86fb08f6c Replace ClientPermissions with a list of strings.
Now that we support external auth, the permissions list is
open-ended.  Make it a list for simplicity.
2022-02-19 23:44:57 +01:00
Juliusz Chroboczek 439dbabaa5 Replace custom SVG with icon. 2022-02-19 03:50:30 +01:00
Juliusz Chroboczek 4ce9a91c40 Implement passing tokens in URL search parameters.
It is now possible to autojoin by going to a URL such as

  https://galene.example.org/group/test?username=jch&token=...
2022-02-18 20:27:53 +01:00
Juliusz Chroboczek 03811db37d Implement token authentication. 2022-02-18 13:35:17 +01:00
Juliusz Chroboczek b4d1ef398f Fix typo in mute menu entry. 2022-02-16 23:10:43 +01:00
Juliusz Chroboczek 997806ec52 Add contextual menu in user list. 2022-02-16 20:52:23 +01:00
Juliusz Chroboczek 7cbc516679 Import Contextual.js.
https://github.com/LucasReade/Contextual.js
2022-02-16 20:34:20 +01:00
Juliusz Chroboczek 968390942c Keep self at top of user list. 2022-02-16 20:34:20 +01:00
Juliusz Chroboczek d2dff184d1 Move fontawesome to external, upgrade to 6.0.0. 2022-02-16 19:24:32 +01:00
Juliusz Chroboczek 62fb6d853c Move toastify into separate dir, upgrade. 2022-02-16 18:56:21 +01:00
Juliusz Chroboczek 14ca47651b Fix data parameter of ServerConnection.join.
This was broken when we renamed status to data.  Thanks to
Sylvie Tissot.
2022-02-05 13:48:05 +01:00
Juliusz Chroboczek 66e5d2951d Rework file transfer code.
More explicit data structures, better error handling.
2022-02-01 18:46:51 +01:00
Juliusz Chroboczek 60ba4aa727 Fix file transfer for Firefox.
Firefox implements the spec correctly by encapsulatings received
data in a blob by default.  Handle both blobs and ArrayBuffers.

Also improve error handling.
2022-02-01 13:36:16 +01:00
Juliusz Chroboczek 6d250bfa98 Add warnings about disclosing IP addresses. 2022-01-30 19:22:43 +01:00
Juliusz Chroboczek c38c5555b0 Ensure buttons are removed after a transfer is cancelled. 2022-01-30 18:28:35 +01:00
Juliusz Chroboczek c535f67246 Implement peer-to-peer file transfer. 2022-01-30 17:43:19 +01:00
Juliusz Chroboczek 24187430e8 Rename client status to data, add group data.
We now distinguish between status, which is maintained by the server,
and data, which is provided by the client.  In addition to client data,
we now support group data.
2022-01-29 23:28:08 +01:00
Juliusz Chroboczek 710cc3cc14 Add ability to set initial user status.
Setting the status after joining (using the "setstatus" action)
may cause multiple "user" messages to be sent to clients.  Add
the ability to set the initial status at join time.
2022-01-28 22:21:19 +01:00
Juliusz Chroboczek 0b5e40bc7f Set user-status-raisehand when adding user.
Commit 993d66 addes support for displaying raised hands, but it
failed to take into account the possibility that the hand is already
raised when the user is first added.
2022-01-28 22:13:14 +01:00
Juliusz Chroboczek 6bb1ed7ab7 Use playsInline instead of playsinline.
Apparently the field has a different name than the HTML attribute.
2022-01-25 01:28:18 +01:00
Juliusz Chroboczek 29b4734bc4 Adapt typing to TypeScript 4.5.4. 2022-01-25 01:22:59 +01:00
Sascha Silbe 993d664ba2 frontend: add support for showing raised hand
Show the "hand-paper" symbol instead of the "circle" symbol while a
user is raising their hand.
2022-01-04 12:56:05 +01:00
Juliusz Chroboczek 662b8ad9b3 Don't consider system users when deciding simulcast.
This prevents simulcast from being switched on when we enable
recording.
2021-12-02 00:09:28 +01:00
Juliusz Chroboczek f72061996c Fix error handling in gotClose. 2021-11-27 21:30:07 +01:00
Juliusz Chroboczek 4d5e6a319a Avoid saving passwords in session storage. 2021-11-01 00:43:19 +01:00
Juliusz Chroboczek b91d48d4ea Improve media-failed CSS. 2021-10-31 18:28:23 +01:00
Juliusz Chroboczek c7c3c9c6b0 Export group status in .status.json. 2021-10-30 19:12:06 +02:00
Juliusz Chroboczek 06ee4cc30f Add error handling to gotConnected. 2021-10-30 01:12:02 +02:00
Juliusz Chroboczek 8135f6b91d Fix typo in setTitle. 2021-10-26 22:38:05 +02:00
Juliusz Chroboczek de7dc9252f Use /group/name/ as the main page for the group.
We used to omit the slash, which users found confusing.
2021-10-26 19:36:05 +02:00
Alain Takoudjou 5b1bc8141a Allow scrolling in login box.
This makes it possible to login on small devices.
2021-10-01 22:53:56 +02:00
Mathieu 7aefb5e969 Remove scrollbar in side menu 2021-09-18 17:56:51 +02:00
Juliusz Chroboczek 09c5ba0d06 Protect against tracks without a stream. 2021-09-16 17:19:19 +02:00
Antonin Décimo 5db63685a2 Simplify /help code. 2021-08-07 18:12:37 +02:00
Antonin Décimo e99aa7d498 Fix localMessage call to addToChatbox.
Commit b527c8757a added the `kind`
parameter to `addToChatbox`, but the change wasn't reflected here.
2021-08-07 18:12:37 +02:00
Mathieu d29f6d6e5d Make video close button more visible.
Adds a round black semi-transparent background to the white cross icon,
making it visible in any situation.
2021-08-04 20:13:06 +02:00
Juliusz Chroboczek c227b113f6 Use id for determining source of chat message.
We used to check the nick, which is not necessarily unique.
2021-07-31 17:22:09 +02:00
Juliusz Chroboczek b527c8757a Add chathistory message. 2021-07-31 14:42:26 +02:00
Juliusz Chroboczek 3b98e123e0 Send a message of kind "kicked" instead of "error". 2021-07-30 19:38:02 +02:00
Juliusz Chroboczek a25d46314a Fix documentation of onerror callback. 2021-07-30 17:40:15 +02:00
Juliusz Chroboczek 8178275164 Rename "Present" to "Enable". 2021-07-29 14:46:02 +02:00
Juliusz Chroboczek 82b10b2c10 Properly close the camera when changing parameters.
The trick of calling the onclose callback wasn't correct.
2021-07-17 00:38:26 +02:00
Juliusz Chroboczek b9c1968b48 Treat closing unknown streams as a warning. 2021-07-16 23:10:13 +02:00
Juliusz Chroboczek 7b4fd8932c Fix title display. 2021-07-16 23:03:36 +02:00
Juliusz Chroboczek eedfaccaff Add locked and displayName to public-groups.json. 2021-07-16 20:01:54 +02:00
Juliusz Chroboczek 52a26327d7 Implement group status.
We now inform clients of the status of a group (locked, etc.).  Also
cleans up the handling of administrative messages, which solves the
issue of receiving "user" before "joined".
2021-07-16 19:51:54 +02:00
Juliusz Chroboczek 0d2ca28ae1 Close camera on disconnect. 2021-07-16 01:40:42 +02:00
Juliusz Chroboczek 22585e9d10 Handle spatial scalability.
Maintain spatial layer information, and drop lower layers when
possible.  Yields a 20% saving with VP9.
2021-05-17 18:17:43 +02:00
Juliusz Chroboczek 781bdf8c74 Fix error handling in mainpage and stats. 2021-05-17 14:43:57 +02:00
Juliusz Chroboczek 91fa693709 Display max layer in stats. 2021-05-17 13:51:29 +02:00
Juliusz Chroboczek f12f776e03 Hide simulcast form when not allowed to send. 2021-05-15 11:36:04 +02:00
Juliusz Chroboczek 54cd546120 Request low-resolution video when the video is small. 2021-05-14 23:21:14 +02:00
Juliusz Chroboczek 2da8faa8cf Implement per-stream requests. 2021-05-14 23:21:14 +02:00
Juliusz Chroboczek 6f9d7fc306 Scalable video coding (SVC). 2021-05-14 23:21:14 +02:00
Juliusz Chroboczek 16bf4d6c95 Move call the setViewportHeight to start function.
This avoids issues with initialisation order.
2021-05-14 18:04:18 +02:00
Juliusz Chroboczek c18ec32c85 Protect against closed streams in recomputeUserStreams. 2021-05-13 04:09:56 +02:00
Juliusz Chroboczek 1212c7cb04 Run Firefox workaround unconditionally. 2021-05-12 02:59:12 +02:00
Juliusz Chroboczek 485b0c1b85 Disable simulcast on Firefox. 2021-05-10 02:53:22 +02:00
Juliusz Chroboczek be4ae56c14 Fix changing filter for a running stream. 2021-05-09 18:59:46 +02:00
Juliusz Chroboczek 627061f0de Rework statistics page. 2021-05-09 18:46:10 +02:00
Juliusz Chroboczek 32663dbf3f Don't enable simulcast when there are just two users.
If simulcast is set to auto, disable simulcast when there are just
two users in the group.
2021-05-09 17:49:35 +02:00
Juliusz Chroboczek 2f44961589 Add UI for simulcast control. 2021-05-08 21:25:22 +02:00
Juliusz Chroboczek 795a40ceaf Simulcast. 2021-05-08 21:12:29 +02:00
Juliusz Chroboczek f1a15f07db Factor out stream creation, implement replaceUpStream.
This avoids code duplication in the various addUpMedia functions,
and makes it possible to replace a stream without reopening the
stream's source.  This will be required in order to change the
simulcast envelope.
2021-05-08 18:52:36 +02:00
Juliusz Chroboczek 8ec0a44c09 Fix controls for down streams.
Now that down streams have labels, we need to distinguish on the
stream direction.
2021-05-08 14:19:46 +02:00
Juliusz Chroboczek ce0571cb7a Use stop video button on all streamed videos.
Delete the stop video button, it is now redundant.  Panic remains.
2021-05-08 02:51:52 +02:00
Juliusz Chroboczek a20741408c Fix hander for shared screen close button. 2021-05-07 02:44:04 +02:00
Juliusz Chroboczek 86b6c71ca0 Reformat stats display, protect against division by zero. 2021-05-07 02:23:10 +02:00