Put all log prompts into new Logger class; Only log debugging logs to console if PairDrop is in debug mode; Implement activation of debug mode via URL argument (?debug=true)

This commit is contained in:
schlagmichdoch 2024-02-05 15:42:27 +01:00
parent b61de4eb87
commit 6de97e7ff1
8 changed files with 144 additions and 114 deletions

View file

@ -10,7 +10,7 @@ class BrowserTabsConnector {
}
_onMessage(e) {
console.log('Broadcast:', e.data)
Logger.debug('Broadcast:', e.data)
switch (e.data.type) {
case 'self-display-name-changed':
Events.fire('self-display-name-changed', e.data.detail);

View file

@ -67,7 +67,7 @@ class Localization {
Localization.$htmlRoot.setAttribute('lang', locale);
console.log("Page successfully translated",
Logger.debug("Page successfully translated",
`System language: ${Localization.systemLocale}`,
`Selected language: ${locale}`
);
@ -145,7 +145,7 @@ class Localization {
translation = translationObj[lastKey];
} catch (e) {
console.error(e);
Logger.error(e);
}
if (!translation) {
@ -179,7 +179,7 @@ class Localization {
}
catch (e) {
// Log warnings and help calls
console.warn(e);
Logger.warn(e);
Localization.logTranslationMissingOrBroken(key, attr, data, useDefault);
Localization.logHelpCallKey(key, attr);
Localization.logHelpCall();
@ -192,7 +192,7 @@ class Localization {
else {
// Is not default locale yet
// Get translation for default language with same arguments
console.log(`Using default language ${Localization.defaultLocale.toUpperCase()} instead.`);
Logger.debug(`Using default language ${Localization.defaultLocale.toUpperCase()} instead.`);
translation = this.getTranslation(key, attr, data, true);
}
}
@ -205,11 +205,11 @@ class Localization {
? Localization.defaultLocale.toUpperCase()
: Localization.locale.toUpperCase();
console.warn(`Missing or broken translation for language ${usedLocale}.\n`, 'key:', key, 'attr:', attr, 'data:', data);
Logger.warn(`Missing or broken translation for language ${usedLocale}.\n`, 'key:', key, 'attr:', attr, 'data:', data);
}
static logHelpCall() {
console.log("Help translating PairDrop: https://hosted.weblate.org/engage/pairdrop/");
Logger.warn("Help translating PairDrop: https://hosted.weblate.org/engage/pairdrop/");
}
static logHelpCallKey(key, attr) {
@ -219,7 +219,7 @@ class Localization {
? key
: `${key}_${attr}`;
console.warn(`Translate this string here: https://hosted.weblate.org/browse/pairdrop/pairdrop-spa/${locale}/?q=${keyComplete}`);
Logger.warn(`Translate this string here: https://hosted.weblate.org/browse/pairdrop/pairdrop-spa/${locale}/?q=${keyComplete}`);
}
static escapeHTML(unsafeText) {

View file

@ -1,3 +1,23 @@
class Logger {
static debug(message, ...optionalParams) {
if (window.debugMode) {
console.debug("DEBUG:", message, ...optionalParams);
}
}
static log(message, ...optionalParams) {
console.log("LOG:", message, ...optionalParams);
}
static warn(message, ...optionalParams) {
console.warn("WARN:", message, ...optionalParams);
}
static error(message, ...optionalParams) {
console.error("ERROR:", message, ...optionalParams);
}
}
class PairDrop {
constructor() {
@ -34,14 +54,14 @@ class PairDrop {
this.initialize()
.then(_ => {
console.log("Initialization completed.");
Logger.log("Initialization completed.");
});
}
async initialize() {
// Translate page before fading in
await this.localization.setInitialTranslation()
console.log("Initial translation successful.");
Logger.log("Initial translation successful.");
// Show "Loading..." until connected to WsServer
await this.footerUI.showLoading();
@ -56,16 +76,16 @@ class PairDrop {
await this.backgroundCanvas.fadeIn();
// Load deferred assets
console.log("Load deferred assets...");
Logger.log("Load deferred assets...");
await this.loadDeferredAssets();
console.log("Loading of deferred assets completed.");
Logger.log("Loading of deferred assets completed.");
console.log("Hydrate UI...");
Logger.log("Hydrate UI...");
await this.hydrate();
console.log("UI hydrated.");
Logger.log("UI hydrated.");
// Evaluate url params as soon as ws is connected
console.log("Evaluate URL params as soon as websocket connection is established.");
Logger.log("Evaluate URL params as soon as websocket connection is established.");
Events.on('ws-connected', _ => this.evaluateUrlParams(), {once: true});
}
@ -74,7 +94,7 @@ class PairDrop {
navigator.serviceWorker
.register('service-worker.js')
.then(serviceWorker => {
console.log('Service Worker registered');
Logger.log('Service Worker registered');
window.serviceWorker = serviceWorker
});
}
@ -133,10 +153,10 @@ class PairDrop {
return new Promise( async (resolve) => {
try {
await this.loadStyleSheet(url);
console.log(`Stylesheet loaded successfully: ${url}`);
Logger.log(`Stylesheet loaded successfully: ${url}`);
resolve();
} catch (error) {
console.error('Error loading stylesheet:', error);
Logger.error('Error loading stylesheet:', error);
}
});
}
@ -156,10 +176,10 @@ class PairDrop {
return new Promise( async (resolve) => {
try {
await this.loadScript(url);
console.log(`Script loaded successfully: ${url}`);
Logger.log(`Script loaded successfully: ${url}`);
resolve();
} catch (error) {
console.error('Error loading script:', error);
Logger.error('Error loading script:', error);
}
});
}
@ -229,12 +249,17 @@ class PairDrop {
this.publicRoomDialog._createPublicRoom();
}
}
else if (urlParams.has("debug") && urlParams.get("debug") === "true") {
window.debugMode = true;
}
if (!window.debugMode) {
// remove url params from url
const urlWithoutParams = getUrlWithoutArguments();
window.history.replaceState({}, "Rewrite URL", urlWithoutParams);
}
console.log("URL params evaluated.");
Logger.log("URL params evaluated.");
}
}

View file

@ -27,16 +27,16 @@ class ServerConnection {
}
_getConfig() {
console.log("Loading config...")
Logger.log("Loading config...")
return new Promise((resolve, reject) => {
let xhr = new XMLHttpRequest();
xhr.addEventListener("load", () => {
if (xhr.status === 200) {
// Config received
let config = JSON.parse(xhr.responseText);
console.log("Config loaded:", config)
this._config = config;
Events.fire('config', config);
Logger.log("Config loaded:", config)
window._config = config;
Events.fire('config-loaded');
resolve()
} else if (xhr.status < 200 || xhr.status >= 300) {
retry(xhr);
@ -86,7 +86,7 @@ class ServerConnection {
}
_onOpen() {
console.log('WS: server connected');
Logger.log('WS: server connected');
Events.fire('ws-connected');
if (this._isReconnect) {
Events.fire('notify-user', Localization.getTranslation("notifications.connected"));
@ -136,7 +136,9 @@ class ServerConnection {
_onMessage(message) {
const messageJSON = JSON.parse(message);
if (messageJSON.type !== 'ping' && messageJSON.type !== 'ws-relay') console.log('WS receive:', messageJSON);
if (messageJSON.type !== 'ping' && messageJSON.type !== 'ws-relay') {
Logger.debug('WS receive:', messageJSON);
}
switch (messageJSON.type) {
case 'ws-config':
this._setWsConfig(messageJSON.wsConfig);
@ -195,17 +197,19 @@ class ServerConnection {
Events.fire('ws-relay', {peerId: messageJSON.sender.id, message: message});
}
else {
console.log("WS receive: message type is for websocket fallback only but websocket fallback is not activated on this instance.")
Logger.warn("WS receive: message type is for websocket fallback only but websocket fallback is not activated on this instance.")
}
break;
default:
console.error('WS receive: unknown message type', messageJSON);
Logger.error('WS receive: unknown message type', messageJSON);
}
}
send(msg) {
if (!this._isConnected()) return;
if (msg.type !== 'pong' && msg.type !== 'ws-relay') console.log("WS send:", msg)
if (msg.type !== 'pong' && msg.type !== 'ws-relay') {
Logger.debug("WS send:", msg)
}
this._socket.send(JSON.stringify(msg));
}
@ -223,7 +227,7 @@ class ServerConnection {
.addPeerIdToLocalStorage()
.then(peerId => {
if (!peerId) return;
console.log("successfully added peerId to localStorage");
Logger.debug("successfully added peerId to localStorage");
// Only now join rooms
Events.fire('join-ip-room');
@ -239,8 +243,8 @@ class ServerConnection {
_endpoint() {
const protocol = location.protocol.startsWith('https') ? 'wss' : 'ws';
// Check whether the instance specifies another signaling server otherwise use the current instance for signaling
let wsServerDomain = this._config.signalingServer
? this._config.signalingServer
let wsServerDomain = window._config.signalingServer
? window._config.signalingServer
: location.host + location.pathname;
let wsUrl = new URL(protocol + '://' + wsServerDomain + 'server');
@ -264,7 +268,7 @@ class ServerConnection {
BrowserTabsConnector
.removePeerIdFromLocalStorage(peerId)
.then(_ => {
console.log("successfully removed peerId from localStorage");
Logger.debug("successfully removed peerId from localStorage");
});
if (!this._socket) return;
@ -277,7 +281,7 @@ class ServerConnection {
}
_onDisconnect() {
console.log('WS: server disconnected');
Logger.log('WS: server disconnected');
setTimeout(() => {
this._isReconnect = true;
Events.fire('ws-disconnected');
@ -303,7 +307,7 @@ class ServerConnection {
}
_onError(e) {
console.error(e);
Logger.error(e);
}
_reconnect() {
@ -385,7 +389,9 @@ class Peer {
PersistentStorage
.deleteRoomSecret(this._getPairSecret())
.then(deletedRoomSecret => {
if (deletedRoomSecret) console.log("Successfully deleted duplicate room secret with same peer: ", deletedRoomSecret);
if (deletedRoomSecret) {
Logger.debug("Successfully deleted duplicate room secret with same peer: ", deletedRoomSecret);
}
});
}
@ -398,7 +404,7 @@ class Peer {
&& this._isCaller) {
// increase security by initiating the increase of the roomSecret length
// from 64 chars (<v1.7.0) to 256 chars (v1.7.0+)
console.log('RoomSecret is regenerated to increase security')
Logger.debug('RoomSecret is regenerated to increase security')
Events.fire('regenerate-room-secret', this._getPairSecret());
}
}
@ -467,7 +473,7 @@ class Peer {
try {
dataUrl = await getThumbnailAsDataUrl(files[0], 400, null, 0.9);
} catch (e) {
console.error(e);
Logger.error(e);
}
}
@ -525,7 +531,7 @@ class Peer {
this._sendTransferAbortion();
return;
}
console.log("Resend requested from offset:", offset)
Logger.debug("Resend requested from offset:", offset)
this._chunker._resendFromOffset(offset);
}
@ -570,7 +576,7 @@ class Peer {
this._onDisplayNameChanged(message);
break;
default:
console.warn('RTC: Unknown message type:', message.type);
Logger.warn('RTC: Unknown message type:', message.type);
}
}
@ -681,7 +687,7 @@ class Peer {
let size = Math.round(10 * fileBlob.size / 1000000) / 10;
let speed = Math.round(100 * fileBlob.size / 1000000 / duration) / 100;
console.log(`File received.\n\nSize: ${size} MB\tDuration: ${duration} s\tSpeed: ${speed} MB/s`);
Logger.log(`File received.\n\nSize: ${size} MB\tDuration: ${duration} s\tSpeed: ${speed} MB/s`);
this._sendMessage({type: 'file-transfer-complete', success: true, size: size, duration: duration, speed: speed});
@ -715,12 +721,12 @@ class Peer {
this._chunker = null;
if (!message.success) {
console.warn('File could not be sent');
Logger.warn('File could not be sent');
Events.fire('set-progress', {peerId: this._peerId, progress: 0, status: null});
return;
}
console.log(`File sent.\n\nSize: ${message.size} MB\tDuration: ${message.duration} s\tSpeed: ${message.speed} MB/s`);
Logger.log(`File sent.\n\nSize: ${message.size} MB\tDuration: ${message.duration} s\tSpeed: ${message.speed} MB/s`);
if (this._filesQueue.length) {
this._dequeueFile();
@ -776,7 +782,7 @@ class Peer {
PersistentStorage
.updateRoomSecretDisplayName(roomSecret, message.displayName)
.then(roomSecretEntry => {
console.log(`Successfully updated DisplayName for roomSecretEntry ${roomSecretEntry.key}`);
Logger.debug(`Successfully updated DisplayName for roomSecretEntry ${roomSecretEntry.key}`);
})
}
@ -855,7 +861,7 @@ class RTCPeer extends Peer {
this._evaluatePendingInboundMessages()
.then((count) => {
if (count) {
console.log("Pending inbound messages evaluated.");
Logger.debug("Pending inbound messages evaluated.");
}
});
}
@ -874,36 +880,36 @@ class RTCPeer extends Peer {
}
async _onNegotiationNeeded() {
console.log('RTC: Negotiation needed');
Logger.debug('RTC: Negotiation needed');
if (this._isCaller) {
// Creating offer if required
console.log('RTC: Creating offer');
Logger.debug('RTC: Creating offer');
const description = await this._conn.createOffer();
await this._handleLocalDescription(description);
}
}
_onSignalingStateChanged() {
console.log('RTC: Signaling state changed:', this._conn.signalingState);
Logger.debug('RTC: Signaling state changed:', this._conn.signalingState);
}
_onIceConnectionStateChange() {
console.log('RTC: ICE connection state changed:', this._conn.iceConnectionState);
Logger.debug('RTC: ICE connection state changed:', this._conn.iceConnectionState);
}
_onIceGatheringStateChanged() {
console.log('RTC: ICE gathering state changed:', this._conn.iceConnectionState);
Logger.debug('RTC: ICE gathering state changed:', this._conn.iceConnectionState);
}
_onConnectionStateChange() {
console.log('RTC: Connection state changed:', this._conn.connectionState);
Logger.debug('RTC: Connection state changed:', this._conn.connectionState);
switch (this._conn.connectionState) {
case 'disconnected':
this._refresh();
break;
case 'failed':
console.warn('RTC connection failed');
Logger.warn('RTC connection failed');
// Todo: if error is "TURN server needed" -> fallback to WS if activated
this._refresh();
}
@ -914,7 +920,7 @@ class RTCPeer extends Peer {
}
_onIceCandidateError(error) {
console.error(error);
Logger.error(error);
}
_openMessageChannel() {
@ -944,7 +950,7 @@ class RTCPeer extends Peer {
}
_onChannelOpened(e) {
console.log(`RTC: Channel ${e.target.label} opened with`, this._peerId);
Logger.debug(`RTC: Channel ${e.target.label} opened with`, this._peerId);
// wait until all channels are open
if (!this._stable()) return;
@ -962,30 +968,30 @@ class RTCPeer extends Peer {
}
_onChannelClosed(e) {
console.log(`RTC: Channel ${e.target.label} closed`, this._peerId);
Logger.debug(`RTC: Channel ${e.target.label} closed`, this._peerId);
this._refresh();
}
_onChannelError(e) {
console.warn(`RTC: Channel ${e.target.label} error`, this._peerId);
console.error(e.error);
Logger.warn(`RTC: Channel ${e.target.label} error`, this._peerId);
Logger.error(e.error);
}
async _handleLocalDescription(localDescription) {
await this._conn.setLocalDescription(localDescription);
console.log("RTC: Sending local description");
Logger.debug("RTC: Sending local description");
this._sendSignal({ signalType: 'description', description: localDescription });
}
async _handleRemoteDescription(remoteDescription) {
console.log("RTC: Received remote description");
Logger.debug("RTC: Received remote description");
await this._conn.setRemoteDescription(remoteDescription);
if (!this._isCaller) {
// Creating answer if required
console.log('RTC: Creating answer');
Logger.debug('RTC: Creating answer');
const localDescription = await this._conn.createAnswer();
await this._handleLocalDescription(localDescription);
}
@ -994,7 +1000,7 @@ class RTCPeer extends Peer {
_handleLocalCandidate(candidate) {
if (this.localIceCandidatesSent) return;
console.log("RTC: Local candidate created", candidate);
Logger.debug("RTC: Local candidate created", candidate);
if (candidate === null) {
this.localIceCandidatesSent = true;
@ -1007,7 +1013,7 @@ class RTCPeer extends Peer {
async _handleRemoteCandidate(candidate) {
if (this.remoteIceCandidatesReceived) return;
console.log("RTC: Received remote candidate", candidate);
Logger.debug("RTC: Received remote candidate", candidate);
if (candidate === null) {
this.remoteIceCandidatesReceived = true;
@ -1021,7 +1027,7 @@ class RTCPeer extends Peer {
let inboundMessagesEvaluatedCount = 0;
while (this.pendingInboundMessages.length > 0) {
const message = this.pendingInboundMessages.shift();
console.log("Evaluate pending inbound message:", message);
Logger.debug("Evaluate pending inbound message:", message);
await this._onServerSignalMessage(message);
inboundMessagesEvaluatedCount++;
}
@ -1042,7 +1048,7 @@ class RTCPeer extends Peer {
await this._handleRemoteCandidate(message.candidate);
break;
default:
console.warn('Unknown signalType:', message.signalType);
Logger.warn('Unknown signalType:', message.signalType);
break;
}
}
@ -1115,7 +1121,7 @@ class RTCPeer extends Peer {
}
_sendViaMessageChannel(message) {
console.log('RTC Send:', message);
Logger.debug('RTC Send:', message);
this._messageChannel.send(JSON.stringify(message));
}
@ -1147,12 +1153,11 @@ class RTCPeer extends Peer {
}
_onMessage(message) {
// Todo: Test speed increase without prints? --> print only on debug mode via URL argument `?debug_mode=true`
console.log('RTC Receive:', JSON.parse(message));
Logger.debug('RTC Receive:', JSON.parse(message));
try {
message = JSON.parse(message);
} catch (e) {
console.warn("RTCPeer: Received JSON is malformed");
Logger.warn("RTCPeer: Received JSON is malformed");
return;
}
super._onMessage(message);
@ -1255,7 +1260,7 @@ class WSPeer extends Peer {
}
_onMessage(message) {
console.log('WS Receive:', message);
Logger.debug('WS Receive:', message);
super._onMessage(message);
}
@ -1273,7 +1278,7 @@ class WSPeer extends Peer {
message = JSON.parse(message).message;
}
catch (e) {
console.warn("WSPeer: Received JSON is malformed");
Logger.warn("WSPeer: Received JSON is malformed");
return;
}
@ -1383,7 +1388,7 @@ class PeersManager {
this.peers[peerId] = new WSPeer(this._server, isCaller, peerId, roomType, roomId);
}
else {
console.warn("Websocket fallback is not activated on this instance.\n" +
Logger.warn("Websocket fallback is not activated on this instance.\n" +
"Activate WebRTC in this browser or ask the admin of this instance to activate the websocket fallback.")
}
}
@ -1423,7 +1428,7 @@ class PeersManager {
_onPeerLeft(message) {
if (this._peerExists(message.peerId) && !this._webRtcSupported(message.peerId)) {
console.log('WSPeer left:', message.peerId);
Logger.debug('WSPeer left:', message.peerId);
}
if (message.disconnect === true) {
// if user actively disconnected from PairDrop server, disconnect all peer to peer connections immediately
@ -1436,7 +1441,7 @@ class PeersManager {
.removeOtherPeerIdsFromLocalStorage()
.then(peerIds => {
if (!peerIds) return;
console.log("successfully removed other peerIds from localStorage");
Logger.debug("successfully removed other peerIds from localStorage");
});
}
}
@ -1514,7 +1519,7 @@ class PeersManager {
PersistentStorage
.updateRoomSecret(message.oldRoomSecret, message.newRoomSecret)
.then(_ => {
console.log("successfully regenerated room secret");
Logger.debug("successfully regenerated room secret");
Events.fire("room-secrets", [message.newRoomSecret]);
})
}

View file

@ -7,19 +7,18 @@ class PersistentStorage {
const DBOpenRequest = window.indexedDB.open('pairdrop_store', 5);
DBOpenRequest.onerror = e => {
PersistentStorage.logBrowserNotCapable();
console.log('Error initializing database: ');
console.log(e)
Logger.error('Error initializing database:', e);
};
DBOpenRequest.onsuccess = _ => {
console.log('Database initialised.');
Logger.debug('Database initialised.');
};
DBOpenRequest.onupgradeneeded = async e => {
const db = e.target.result;
const txn = e.target.transaction;
db.onerror = e => console.log('Error loading database: ' + e);
db.onerror = e => Logger.error('Error loading database:', e);
console.log(`Upgrading IndexedDB database from version ${e.oldVersion} to version ${e.newVersion}`);
Logger.debug(`Upgrading IndexedDB database from version ${e.oldVersion} to version ${e.newVersion}`);
if (e.oldVersion === 0) {
// initiate v1
@ -54,7 +53,7 @@ class PersistentStorage {
}
static logBrowserNotCapable() {
console.log("This browser does not support IndexedDB. Paired devices will be gone after the browser is closed.");
Logger.log("This browser does not support IndexedDB. Paired devices will be gone after the browser is closed.");
}
static set(key, value) {
@ -66,7 +65,7 @@ class PersistentStorage {
const objectStore = transaction.objectStore('keyval');
const objectStoreRequest = objectStore.put(value, key);
objectStoreRequest.onsuccess = _ => {
console.log(`Request successful. Added key-pair: ${key} - ${value}`);
Logger.debug(`Request successful. Added key-pair: ${key} - ${value}`);
resolve(value);
};
}
@ -85,7 +84,7 @@ class PersistentStorage {
const objectStore = transaction.objectStore('keyval');
const objectStoreRequest = objectStore.get(key);
objectStoreRequest.onsuccess = _ => {
console.log(`Request successful. Retrieved key-pair: ${key} - ${objectStoreRequest.result}`);
Logger.debug(`Request successful. Retrieved key-pair: ${key} - ${objectStoreRequest.result}`);
resolve(objectStoreRequest.result);
}
}
@ -104,7 +103,7 @@ class PersistentStorage {
const objectStore = transaction.objectStore('keyval');
const objectStoreRequest = objectStore.delete(key);
objectStoreRequest.onsuccess = _ => {
console.log(`Request successful. Deleted key: ${key}`);
Logger.debug(`Request successful. Deleted key: ${key}`);
resolve();
};
}
@ -128,7 +127,7 @@ class PersistentStorage {
'auto_accept': false
});
objectStoreRequest.onsuccess = e => {
console.log(`Request successful. RoomSecret added: ${e.target.result}`);
Logger.debug(`Request successful. RoomSecret added: ${e.target.result}`);
resolve();
}
}
@ -145,7 +144,7 @@ class PersistentStorage {
for (let i = 0; i < roomSecrets.length; i++) {
secrets.push(roomSecrets[i].secret);
}
console.log(`Request successful. Retrieved ${secrets.length} room_secrets`);
Logger.debug(`Request successful. Retrieved ${secrets.length} room_secrets`);
return(secrets);
} catch (e) {
this.logBrowserNotCapable();
@ -182,13 +181,13 @@ class PersistentStorage {
objectStoreRequestKey.onsuccess = e => {
const key = e.target.result;
if (!key) {
console.log(`Nothing to retrieve. Entry for room_secret not existing: ${roomSecret}`);
Logger.debug(`Nothing to retrieve. Entry for room_secret not existing: ${roomSecret}`);
resolve();
return;
}
const objectStoreRequestRetrieval = objectStore.get(key);
objectStoreRequestRetrieval.onsuccess = e => {
console.log(`Request successful. Retrieved entry for room_secret: ${key}`);
Logger.debug(`Request successful. Retrieved entry for room_secret: ${key}`);
resolve({
"entry": e.target.result,
"key": key
@ -215,14 +214,14 @@ class PersistentStorage {
const objectStoreRequestKey = objectStore.index("secret").getKey(roomSecret);
objectStoreRequestKey.onsuccess = e => {
if (!e.target.result) {
console.log(`Nothing to delete. room_secret not existing: ${roomSecret}`);
Logger.debug(`Nothing to delete. room_secret not existing: ${roomSecret}`);
resolve();
return;
}
const key = e.target.result;
const objectStoreRequestDeletion = objectStore.delete(key);
objectStoreRequestDeletion.onsuccess = _ => {
console.log(`Request successful. Deleted room_secret: ${key}`);
Logger.debug(`Request successful. Deleted room_secret: ${key}`);
resolve(roomSecret);
}
objectStoreRequestDeletion.onerror = e => {
@ -245,7 +244,7 @@ class PersistentStorage {
const objectStore = transaction.objectStore('room_secrets');
const objectStoreRequest = objectStore.clear();
objectStoreRequest.onsuccess = _ => {
console.log('Request successful. All room_secrets cleared');
Logger.debug('Request successful. All room_secrets cleared');
resolve();
};
}
@ -287,7 +286,7 @@ class PersistentStorage {
const objectStoreRequestUpdate = objectStore.put(updatedRoomSecretEntry, roomSecretEntry.key);
objectStoreRequestUpdate.onsuccess = e => {
console.log(`Request successful. Updated room_secret: ${roomSecretEntry.key}`);
Logger.debug(`Request successful. Updated room_secret: ${roomSecretEntry.key}`);
resolve({
"entry": updatedRoomSecretEntry,
"key": roomSecretEntry.key

View file

@ -238,7 +238,7 @@ class FooterUI {
if (!displayName) return;
console.log("Retrieved edited display name:", displayName)
Logger.debug("Retrieved edited display name:", displayName)
Events.fire('self-display-name-changed', displayName);
}
@ -275,7 +275,7 @@ class FooterUI {
Events.fire('notify-user', Localization.getTranslation("notifications.display-name-changed-permanently"));
})
.catch(_ => {
console.log("This browser does not support IndexedDB. Use localStorage instead.");
Logger.debug("This browser does not support IndexedDB. Use localStorage instead.");
localStorage.setItem('edited_display_name', newDisplayName);
Events.fire('notify-user', Localization.getTranslation("notifications.display-name-changed-temporarily"));
})
@ -287,7 +287,7 @@ class FooterUI {
else {
PersistentStorage.delete('edited_display_name')
.catch(_ => {
console.log("This browser does not support IndexedDB. Use localStorage instead.")
Logger.debug("This browser does not support IndexedDB. Use localStorage instead.")
localStorage.removeItem('edited_display_name');
})
.finally(() => {

View file

@ -181,7 +181,7 @@ class PeersUI {
PersistentStorage
.updateRoomSecretDisplayName(roomSecret, displayName)
.then(roomSecretEntry => {
console.log(`Successfully updated DisplayName for roomSecretEntry ${roomSecretEntry.key}`);
Logger.debug(`Successfully updated DisplayName for roomSecretEntry ${roomSecretEntry.key}`);
})
}
@ -306,7 +306,7 @@ class PeersUI {
this.$shareModeImageThumb.removeAttribute('hidden');
} catch (e) {
console.error(e);
Logger.error(e);
this.$shareModeFileThumb.removeAttribute('hidden');
}
} else {
@ -338,7 +338,7 @@ class PeersUI {
this.shareMode.files = files;
this.shareMode.text = text;
console.log('Share mode activated.');
Logger.debug('Share mode activated.');
Events.fire('share-mode-changed', {
active: true,
@ -386,7 +386,7 @@ class PeersUI {
this.$shareModeEditBtn.removeEventListener('click', this._editShareTextCallback);
this.$shareModeEditBtn.setAttribute('hidden', true);
console.log('Share mode deactivated.')
Logger.debug('Share mode deactivated.')
Events.fire('share-mode-changed', { active: false });
}
@ -1062,7 +1062,7 @@ class ReceiveFileDialog extends ReceiveDialog {
this.$shareBtn.onclick = _ => {
navigator.share({files: files})
.catch(err => {
console.error(err);
Logger.error(err);
});
}
}
@ -1099,7 +1099,7 @@ class ReceiveFileDialog extends ReceiveDialog {
minutes = minutes.length < 2 ? "0" + minutes : minutes;
filenameDownload = `PairDrop_files_${year+month+date}_${hours+minutes}.zip`;
} catch (e) {
console.error(e);
Logger.error(e);
downloadZipped = false;
}
}
@ -1148,10 +1148,10 @@ class ReceiveFileDialog extends ReceiveDialog {
this.createPreviewElement(files[0])
.then(canPreview => {
if (canPreview) {
console.log('the file is able to preview');
Logger.debug('the file is able to preview');
}
else {
console.log('the file is not able to preview');
Logger.debug('the file is not able to preview');
}
})
.catch(r => console.error(r));
@ -2291,7 +2291,7 @@ class Base64Dialog extends Dialog {
this.$pasteBtn.addEventListener('click', _ => this._clickCallback());
}
else {
console.log("`navigator.clipboard.readText()` is not available on your browser.\nOn Firefox you can set `dom.events.asyncClipboard.readText` to true under `about:config` for convenience.")
Logger.log("`navigator.clipboard.readText()` is not available on your browser.\nOn Firefox you can set `dom.events.asyncClipboard.readText` to true under `about:config` for convenience.")
this.$pasteBtn.setAttribute('hidden', true);
this.$fallbackTextarea.setAttribute('placeholder', Localization.getTranslation("dialogs.base64-paste-to-send", null, {type: translateType}));
this.$fallbackTextarea.removeAttribute('hidden');
@ -2323,7 +2323,7 @@ class Base64Dialog extends Dialog {
}
catch(e) {
Events.fire('notify-user', Localization.getTranslation("notifications.clipboard-content-incorrect"));
console.log("Clipboard content is incorrect.")
Logger.warn("Clipboard content is incorrect.")
}
this.hide();
}
@ -2342,7 +2342,7 @@ class Base64Dialog extends Dialog {
}
catch (e) {
Events.fire('notify-user', Localization.getTranslation("notifications.text-content-incorrect"));
console.log("Text content incorrect.");
Logger.warn("Text content incorrect.");
}
this.hide();
@ -2357,7 +2357,7 @@ class Base64Dialog extends Dialog {
}
catch (e) {
Events.fire('notify-user', Localization.getTranslation("notifications.file-content-incorrect"));
console.log("File content incorrect.");
Logger.warn("File content incorrect.");
}
this.hide();
@ -2380,10 +2380,11 @@ class AboutUI {
this.$blueskyBtn = $('bluesky-btn');
this.$customBtn = $('custom-btn');
this.$privacypolicyBtn = $('privacypolicy-btn');
Events.on('config', e => this._onConfig(e.detail.buttons));
Events.on('config-loaded', _ => this._onConfigLoaded());
}
async _onConfig(btnConfig) {
async _onConfigLoaded() {
const btnConfig = window._config.buttons
await this._evaluateBtnConfig(this.$donationBtn, btnConfig.donation_button);
await this._evaluateBtnConfig(this.$twitterBtn, btnConfig.twitter_button);
await this._evaluateBtnConfig(this.$mastodonBtn, btnConfig.mastodon_button);
@ -2674,7 +2675,7 @@ class WebFileHandlersUI {
if (!"launchQueue" in window) return;
launchQueue.setConsumer(async launchParams => {
console.log("Launched with: ", launchParams);
Logger.log("Launched with: ", launchParams);
if (!launchParams.files.length) return;

View file

@ -539,7 +539,7 @@ function getThumbnailAsDataUrl(file, width = undefined, height = undefined, qual
let dataUrl = canvas.toDataURL("image/jpeg", quality);
resolve(dataUrl);
} catch (e) {
console.error(e);
Logger.error(e);
reject(new Error(`Could not create an image thumbnail from type ${file.type}`));
}
})