diff --git a/docs/settings.md b/docs/settings.md
index 634196dbeac..29a78e0de30 100644
--- a/docs/settings.md
+++ b/docs/settings.md
@@ -140,7 +140,8 @@ Legend:
Features that can be toggled on-off with the `experiments_users` and `experiments_guests` bit flags:
-| Bit | Status | Introduced | Ended | Description |
-|-----|--------|----------------------------------|-------|-----------------------------------------------------------------------------------------------------------------------------|
-| 1 | Active | Web 21.1.0
Desktop 1.2.2-beta | - | Instead of refreshing the participant list repeatingly during calls, the data is generated from received signaling messages |
-| 2 | Active | Web 21.1.0
Desktop 1.2.2 | - | Make automatic attempts to recover suspended / expired signaling session to allow join the call without page reload |
+| Bit | Status | Introduced | Ended | Description |
+|-----|-----------|----------------------------------|-----------------------------|-----------------------------------------------------------------------------------------------------------------------------|
+| 1 | Completed | Web 21.1.0
Desktop 1.2.2-beta | Web 23.0.0
Desktop 2.x.x | Instead of refreshing the participant list repeatingly during calls, the data is generated from received signaling messages |
+| 2 | Completed | Web 21.1.0
Desktop 1.2.2 | Web 23.0.0
Desktop 2.x.x | Make automatic attempts to recover suspended / expired signaling session to allow join the call without page reload |
+| 4 | Active | Web 22.0.3
Desktop 2.0.4 | - | Send chat messages via the High performance-backend / websocket |
diff --git a/src/composables/useActiveSession.js b/src/composables/useActiveSession.js
index f0a17cf91f1..78e9530a321 100644
--- a/src/composables/useActiveSession.js
+++ b/src/composables/useActiveSession.js
@@ -5,8 +5,8 @@
import { computed, onBeforeMount, onBeforeUnmount, ref, watch } from 'vue'
import { useStore } from 'vuex'
-import { CONFIG, SESSION } from '../constants.ts'
-import { getTalkConfig, hasTalkFeature } from '../services/CapabilitiesManager.ts'
+import { SESSION } from '../constants.ts'
+import { hasTalkFeature } from '../services/CapabilitiesManager.ts'
import { setSessionState } from '../services/participantsService.js'
import { useTokenStore } from '../stores/token.ts'
import { useDocumentVisibility } from './useDocumentVisibility.ts'
@@ -15,8 +15,6 @@ import { useIsInCall } from './useIsInCall.js'
const INACTIVE_TIME_MS = 3 * 60 * 1000
-const experimentalRecoverSession = (getTalkConfig('local', 'experiments', 'enabled') ?? 0) & CONFIG.EXPERIMENTAL.RECOVER_SESSION
-
/**
* Check whether the current session is active or not:
* - tab or browser window was moved to background or minimized
@@ -80,7 +78,7 @@ export function useActiveSession() {
console.info('Session has been marked as active')
} catch (error) {
console.error(error)
- if (experimentalRecoverSession && error?.response?.status === 404) {
+ if (error?.response?.status === 404) {
// In case of 404 - participant did not have a session, block UI to join call
tokenStore.updateLastJoinedConversationToken('')
// Automatically try to join the conversation again
@@ -106,7 +104,7 @@ export function useActiveSession() {
console.info('Session has been marked as inactive')
} catch (error) {
console.error(error)
- if (experimentalRecoverSession && error?.response?.status === 404) {
+ if (error?.response?.status === 404) {
// In case of 404 - participant did not have a session, block UI to join call
tokenStore.updateLastJoinedConversationToken('')
// Automatically try to join the conversation again
diff --git a/src/composables/useGetParticipants.ts b/src/composables/useGetParticipants.ts
index 740afc22387..4949adb1067 100644
--- a/src/composables/useGetParticipants.ts
+++ b/src/composables/useGetParticipants.ts
@@ -14,8 +14,7 @@ import type {
import { createSharedComposable } from '@vueuse/core'
import { computed, nextTick, onBeforeUnmount, ref, watch } from 'vue'
import { useStore } from 'vuex'
-import { CONFIG, CONVERSATION } from '../constants.ts'
-import { getTalkConfig } from '../services/CapabilitiesManager.ts'
+import { CONVERSATION } from '../constants.ts'
import { EventBus } from '../services/EventBus.ts'
import { useActorStore } from '../stores/actor.ts'
import { useSessionStore } from '../stores/session.ts'
@@ -23,8 +22,6 @@ import { useDocumentVisibility } from './useDocumentVisibility.ts'
import { useGetToken } from './useGetToken.ts'
import { useIsInCall } from './useIsInCall.js'
-const experimentalUpdateParticipants = (getTalkConfig('local', 'experiments', 'enabled') ?? 0) & CONFIG.EXPERIMENTAL.UPDATE_PARTICIPANTS
-
let fetchingParticipants = false
let pendingChanges = true
let throttleFastUpdateTimeout: NodeJS.Timeout | undefined
@@ -57,19 +54,12 @@ function useGetParticipantsComposable(activeTab = ref('participants')) {
*/
function initialiseGetParticipants() {
EventBus.on('joined-conversation', onJoinedConversation)
- if (experimentalUpdateParticipants) {
- EventBus.on('signaling-users-in-room', handleUsersUpdated)
- EventBus.on('signaling-users-joined', handleUsersUpdated)
- EventBus.on('signaling-users-changed', handleUsersUpdated)
- EventBus.on('signaling-users-left', handleUsersLeft)
- EventBus.on('signaling-all-users-changed-in-call-to-disconnected', handleUsersDisconnected)
- EventBus.on('signaling-participant-list-updated', throttleUpdateParticipants)
- } else {
- // FIXME this works only temporary until signaling is fixed to be only on the calls
- // Then we have to search for another solution. Maybe the room list which we update
- // periodically gets a hash of all online sessions?
- EventBus.on('signaling-participant-list-changed', throttleUpdateParticipants)
- }
+ EventBus.on('signaling-users-in-room', handleUsersUpdated)
+ EventBus.on('signaling-users-joined', handleUsersUpdated)
+ EventBus.on('signaling-users-changed', handleUsersUpdated)
+ EventBus.on('signaling-users-left', handleUsersLeft)
+ EventBus.on('signaling-all-users-changed-in-call-to-disconnected', handleUsersDisconnected)
+ EventBus.on('signaling-participant-list-updated', throttleUpdateParticipants)
EventBus.on('signaling-users-changed', checkCurrentUserPermissions)
}
@@ -94,7 +84,7 @@ function useGetParticipantsComposable(activeTab = ref('participants')) {
* @param payload."0" - users list
*/
async function checkCurrentUserPermissions([users]: [StandaloneSignalingUpdateSession[]]) {
- // TODO: move logic to sessionStore once experimental flag is dropped
+ // TODO: move logic to sessionStore
const currentUser = users.find((user) => {
return user.userId ? user.userId === actorStore.userId : user.actorId === actorStore.actorId
})
@@ -151,11 +141,7 @@ function useGetParticipantsComposable(activeTab = ref('participants')) {
* Trigger participants list update upon joining
*/
async function onJoinedConversation() {
- if (isOneToOneConversation.value || experimentalUpdateParticipants) {
- cancelableGetParticipants()
- } else {
- nextTick(() => throttleUpdateParticipants())
- }
+ cancelableGetParticipants()
}
/**