Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
25 commits
Select commit Hold shift + click to select a range
e380614
enable chat only when chat keys arrive
TamaraFinogina Nov 27, 2025
f6d71b4
update package-lock.json
TamaraFinogina Nov 27, 2025
348e8ef
move key check to the toggle function
TamaraFinogina Nov 27, 2025
9cff86c
update lib-jitsi-meet build
TamaraFinogina Nov 27, 2025
7d38045
add chat encryption flag to config, update lib-jitsi-meet hash
TamaraFinogina Nov 28, 2025
3bddb94
update lib-jitsi-meet hash
TamaraFinogina Nov 28, 2025
2cc9441
update lib-jitsi-meet hash
TamaraFinogina Nov 28, 2025
f54261f
update lib-jitsi-meet hash
TamaraFinogina Nov 28, 2025
b5b050f
update lib-jitsi-meet hash
TamaraFinogina Nov 28, 2025
94cf8db
update lib-jitsi-meet hash
TamaraFinogina Nov 28, 2025
74ffaf1
update hash
TamaraFinogina Dec 4, 2025
7322757
update yarn.loc
TamaraFinogina Dec 4, 2025
ec85360
update hash
TamaraFinogina Dec 4, 2025
66b5000
update hash
TamaraFinogina Dec 4, 2025
c068afb
update hash
TamaraFinogina Dec 4, 2025
f182064
update hash
TamaraFinogina Dec 4, 2025
75b88b0
update hash
TamaraFinogina Dec 4, 2025
830744e
update hash to the latest lib release
TamaraFinogina Dec 5, 2025
0cb7f1c
Merge remote-tracking branch 'origin/main' into add_chat_encryption
TamaraFinogina Dec 5, 2025
5d96486
remove crypto-js from dependencies
TamaraFinogina Dec 11, 2025
ae21d26
Merge pull request #148 from internxt/add_chat_encryption
TamaraFinogina Dec 11, 2025
9419459
Merge pull request #157 from internxt/remove_crypto_js
TamaraFinogina Dec 11, 2025
64e105c
Setting up release for lib-jitsi-meetv0.0.16
cePuerto Dec 12, 2025
2ecd5d5
Merge pull request #158 from internxt/lib-jitsi-meetv0.0.16
cePuerto Dec 16, 2025
f2499ca
chore(deps): bump qs from 6.14.0 to 6.14.1
dependabot[bot] Jan 1, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,6 @@
"clsx": "1.1.1",
"crypto": "npm:crypto-browserify",
"crypto-browserify": "^3.12.0",
"crypto-js": "4.1.1",
"dayjs": "1.11.13",
"dompurify": "3.2.6",
"dotenv": "^16.4.5",
Expand All @@ -87,7 +86,7 @@
"js-md5": "0.6.1",
"js-sha512": "0.8.0",
"jwt-decode": "2.2.0",
"lib-jitsi-meet": "https://github.com/internxt/lib-jitsi-meet/releases/download/v.0.0.13/lib-jitsi-meet-0.0.13.tgz",
"lib-jitsi-meet": "https://github.com/internxt/lib-jitsi-meet/releases/download/v.0.0.16/lib-jitsi-meet-0.0.16.tgz",
"lodash-es": "4.17.21",
"moment": "2.29.4",
"moment-duration-format": "2.2.2",
Expand Down
2 changes: 2 additions & 0 deletions react/features/base/conference/functions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -246,6 +246,8 @@ export function getConferenceOptions(stateful: IStateful) {
delete config.analytics?.amplitudeAPPKey;
}

options.isChatEncrypted = true; // Encrypted by default

return options;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ const VideoParticipant = ({
)}
key={`video-${id}`}
// Set to false due to decoding issues and video lag
encodeVideo={false}
encodeVideo={true}
/>
) : (
<div className="w-full h-full flex items-center justify-center bg-gray-800">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ interface ConferenceControlsProps extends WithTranslation {
_screensharing: boolean;
_screenShareActive: boolean;
_chatOpen: boolean;
_chatKeysArrived: boolean;
}

const ConferenceControls = ({
Expand All @@ -40,6 +41,7 @@ const ConferenceControls = ({
_screensharing,
_screenShareActive,
_chatOpen,
_chatKeysArrived
}: ConferenceControlsProps) => {
const [isOpenInviteUser, setIsOpenInviteUser] = useState(false);

Expand All @@ -59,7 +61,13 @@ const ConferenceControls = ({
};

const handleToggleChat = () => {
dispatch(toggleChat());
if(_chatKeysArrived) {
console.log("Toggling chat.");
dispatch(toggleChat());
}
else {
console.log("Chat keys have not arrived yet.");
}
};

return (
Expand Down Expand Up @@ -120,6 +128,7 @@ function mapStateToProps(state: IReduxState) {
_screensharing: isScreenVideoShared(state),
_screenShareActive: screenShareParticipants.length > 0,
_chatOpen: state["features/chat"].isOpen,
_chatKeysArrived: state["features/chat"].isKeysArrived,
};
}

Expand Down
9 changes: 9 additions & 0 deletions react/features/chat/actionTypes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -172,3 +172,12 @@ export const SET_CHAT_IS_RESIZING = 'SET_CHAT_IS_RESIZING';
* }
*/
export const NOTIFY_PRIVATE_RECIPIENTS_CHANGED = 'NOTIFY_PRIVATE_RECIPIENTS_CHANGED';

/**
* The type of action makes the chat visiable.
*
* {
* type: CHAT_KEYS_ARRIVED
* }
*/
export const CHAT_KEYS_ARRIVED = 'CHAT_KEYS_ARRIVED';
14 changes: 14 additions & 0 deletions react/features/chat/middleware.ts
Original file line number Diff line number Diff line change
Expand Up @@ -405,6 +405,14 @@ function _addChatMsgListener(conference: IJitsiConference, store: IStore) {
}
);

conference.on(
JitsiConferenceEvents.E2EE_CHAT_KEY_RECEIVED,
() => {
_onKeyReceived(store);
}
);


conference.on(
JitsiConferenceEvents.PRIVATE_MESSAGE_RECEIVED,
(participantId: string, message: string, timestamp: number, messageId: string, displayName?: string, isFromVisitor?: boolean) => {
Expand Down Expand Up @@ -481,6 +489,12 @@ function _onReactionReceived(store: IStore, { participantId, reactionList, messa
store.dispatch(addMessageReaction(reactionPayload));
}

function _onKeyReceived(store: IStore) {
store.dispatch({
type: 'CHAT_KEYS_ARRIVED'
});
}

/**
* Handles a received gif message.
*
Expand Down
12 changes: 11 additions & 1 deletion react/features/chat/reducer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import { IVisitorChatParticipant } from '../visitors/types';
import {
ADD_MESSAGE,
ADD_MESSAGE_REACTION,
CHAT_KEYS_ARRIVED,
CLEAR_MESSAGES,
CLOSE_CHAT,
EDIT_MESSAGE,
Expand Down Expand Up @@ -40,14 +41,16 @@ const DEFAULT_STATE = {
width: {
current: CHAT_SIZE,
userSet: null
}
},
isKeysArrived: false
};

export interface IChatState {
focusedTab: ChatTabs;
groupChatWithPermissions: boolean;
isLobbyChatActive: boolean;
isOpen: boolean;
isKeysArrived: boolean;
isResizing: boolean;
lastReadMessage?: IMessage;
lobbyMessageRecipient?: {
Expand Down Expand Up @@ -184,6 +187,13 @@ ReducerRegistry.register<IChatState>('features/chat', (state = DEFAULT_STATE, ac
privateMessageRecipient: action.participant
};

case CHAT_KEYS_ARRIVED:
return {
...state,
isKeysArrived: true,
privateMessageRecipient: action.participant
};

case CLOSE_CHAT:
return {
...state,
Expand Down
17 changes: 6 additions & 11 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -7494,11 +7494,6 @@ crypto-browserify@^3.12.0:
randombytes "^2.1.0"
randomfill "^1.0.4"

[email protected]:
version "4.1.1"
resolved "https://registry.yarnpkg.com/crypto-js/-/crypto-js-4.1.1.tgz#9e485bcf03521041bd85844786b83fb7619736cf"
integrity sha512-o2JlM7ydqd3Qk9CA0L4NL6mTzU2sdx96a+oOfPu8Mkl/PK51vSyoi8/rQ8NknZtk44vq15lmhAj9CIAGwgeWKw==

"crypto@npm:crypto-browserify":
version "3.12.1"
resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.1.tgz#bb8921bec9acc81633379aa8f52d69b0b69e0dac"
Expand Down Expand Up @@ -11122,9 +11117,9 @@ levn@^0.4.1:
prelude-ls "^1.2.1"
type-check "~0.4.0"

"lib-jitsi-meet@https://github.com/internxt/lib-jitsi-meet/releases/download/v.0.0.13/lib-jitsi-meet-0.0.13.tgz":
version "0.0.13"
resolved "https://github.com/internxt/lib-jitsi-meet/releases/download/v.0.0.13/lib-jitsi-meet-0.0.13.tgz#8ec080d2c7f70fd78b769c49cce7515ec22a75c9"
"lib-jitsi-meet@https://github.com/internxt/lib-jitsi-meet/releases/download/v.0.0.16/lib-jitsi-meet-0.0.16.tgz":
version "0.0.16"
resolved "https://github.com/internxt/lib-jitsi-meet/releases/download/v.0.0.16/lib-jitsi-meet-0.0.16.tgz#2951a8f7e224dd8ac17bab27906bd6123c1c4b77"
dependencies:
"@hexagon/base64" "^2.0.4"
"@jitsi/js-utils" "^2.6.7"
Expand Down Expand Up @@ -13219,9 +13214,9 @@ punycode@^2.1.0, punycode@^2.1.1, punycode@^2.3.1:
integrity sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==

qs@^6.9.4, qs@~6.14.0:
version "6.14.0"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.0.tgz#c63fa40680d2c5c941412a0e899c89af60c0a930"
integrity sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w==
version "6.14.1"
resolved "https://registry.yarnpkg.com/qs/-/qs-6.14.1.tgz#a41d85b9d3902f31d27861790506294881871159"
integrity sha512-4EK3+xJl8Ts67nLYNwqw/dsFVnCf+qR7RgXSK9jEEm9unao3njwMDdmsdvoKBKHzxd7tCYz5e5M+SnMjdtXGQQ==
dependencies:
side-channel "^1.1.0"

Expand Down
Loading