fix check whether peer is same browser

This commit is contained in:
schlagmichdoch 2023-05-11 21:04:10 +02:00
parent ae9909f596
commit 347f9b87c0
5 changed files with 213 additions and 167 deletions

View file

@ -169,8 +169,12 @@ class PeersUI {
return;
}
peer.sameBrowser = _ => BrowserTabsConnector.peerIsSameBrowser(peer.id);
peer.roomTypes = [roomType];
peer.roomSecret = roomSecret;
if (!(roomType === "secret" && peer.sameBrowser())) {
peer.roomTypes = [roomType];
peer.roomSecret = roomSecret;
}
this.peers[peer.id] = peer;
}
@ -1026,10 +1030,7 @@ class PairDeviceDialog extends Dialog {
_onWsConnected() {
this.$pairDeviceBtn.removeAttribute('hidden');
PersistentStorage.getAllRoomSecrets().then(roomSecrets => {
Events.fire('room-secrets', roomSecrets);
this._evaluateNumberRoomSecrets();
});
this._evaluateNumberRoomSecrets();
}
_pairDeviceInitiate() {
@ -1972,13 +1973,18 @@ class PersistentStorage {
}
static async getAllRoomSecrets() {
const roomSecrets = await this.getAllRoomSecretEntries();
let secrets = [];
for (let i=0; i<roomSecrets.length; i++) {
secrets.push(roomSecrets[i].secret);
try {
const roomSecrets = await this.getAllRoomSecretEntries();
let secrets = [];
for (let i = 0; i < roomSecrets.length; i++) {
secrets.push(roomSecrets[i].secret);
}
console.log(`Request successful. Retrieved ${secrets.length} room_secrets`);
return(secrets);
} catch (e) {
this.logBrowserNotCapable();
return false;
}
console.log(`Request successful. Retrieved ${secrets.length} room_secrets`);
return(secrets);
}
static getAllRoomSecretEntries() {
@ -2167,11 +2173,13 @@ class BrowserTabsConnector {
let peerIdsBrowser = [];
let peerIdsBrowserOld = JSON.parse(localStorage.getItem("peerIdsBrowser"));
if (peerIdsBrowserOld) peerIdsBrowser.push(...peerIdsBrowserOld);
peerIdsBrowser.push(peerId);
peerIdsBrowser = peerIdsBrowser.filter(onlyUnique);
localStorage.setItem("peerIdsBrowser", JSON.stringify(peerIdsBrowser));
return peerId;
return peerIdsBrowser;
}
static async removePeerIdFromLocalStorage(peerId) {
@ -2182,8 +2190,14 @@ class BrowserTabsConnector {
return peerId;
}
static removePeerIdsFromLocalStorage() {
localStorage.removeItem("peerIdsBrowser");
static async removeOtherPeerIdsFromLocalStorage() {
const peerId = sessionStorage.getItem("peerId");
if (!peerId) return false;
let peerIdsBrowser = [peerId];
localStorage.setItem("peerIdsBrowser", JSON.stringify(peerIdsBrowser));
return peerIdsBrowser;
}
}