diff --git a/_locales/en/messages.json b/_locales/en/messages.json
index d9ee7c355..70572d747 100644
--- a/_locales/en/messages.json
+++ b/_locales/en/messages.json
@@ -1,5 +1,4 @@
{
- "privacyPolicy": "Terms & Privacy Policy",
"copyErrorAndQuit": "Copy error and quit",
"unknown": "Unknown",
"databaseError": "Database Error",
@@ -17,7 +16,6 @@
"editMenuCut": "Cut",
"editMenuCopy": "Copy",
"editMenuPaste": "Paste",
- "editMenuPasteAndMatchStyle": "Paste and Match Style",
"editMenuDelete": "Delete",
"editMenuDeleteContact": "Delete Contact",
"editMenuDeleteGroup": "Delete Group",
@@ -25,7 +23,6 @@
"windowMenuClose": "Close Window",
"windowMenuMinimize": "Minimize",
"windowMenuZoom": "Zoom",
- "windowMenuBringAllToFront": "Bring All to Front",
"viewMenuResetZoom": "Actual Size",
"viewMenuZoomIn": "Zoom In",
"viewMenuZoomOut": "Zoom Out",
diff --git a/app/config.js b/app/config.js
index 695dce47f..6c784183f 100644
--- a/app/config.js
+++ b/app/config.js
@@ -7,7 +7,6 @@ let environment;
// In production mode, NODE_ENV cannot be customized by the user
if (isDevelopment) {
environment = process.env.NODE_ENV || 'development';
- process.env.LOKI_DEV = 1;
} else {
environment = 'production';
}
diff --git a/app/menu.js b/app/menu.js
index 80aa3aaaa..d83edc2a6 100644
--- a/app/menu.js
+++ b/app/menu.js
@@ -54,10 +54,6 @@ exports.createTemplate = (options, messages) => {
role: 'paste',
label: messages.editMenuPaste,
},
- {
- role: 'pasteandmatchstyle',
- label: messages.editMenuPasteAndMatchStyle,
- },
{
role: 'delete',
label: messages.editMenuDelete,
@@ -242,13 +238,6 @@ function updateForMac(template, messages, options) {
label: messages.show,
click: showWindow,
},
- {
- type: 'separator',
- },
- {
- role: 'front',
- label: messages.windowMenuBringAllToFront,
- },
];
return template;
diff --git a/app/spell_check.js b/app/spell_check.js
index 7dd49890a..a6c7f52be 100644
--- a/app/spell_check.js
+++ b/app/spell_check.js
@@ -65,13 +65,6 @@ exports.setup = (browserWindow, messages) => {
template.push({ label: messages.editMenuPaste, role: 'paste' });
}
- if (editFlags.canPaste) {
- template.push({
- label: messages.editMenuPasteAndMatchStyle,
- role: 'pasteAndMatchStyle',
- });
- }
-
// Only enable select all in editors because select all in non-editors
// results in all the UI being selected
if (editFlags.canSelectAll && params.isEditable) {
diff --git a/debug_log.html b/debug_log.html
index f0b7b0262..8932956d4 100644
--- a/debug_log.html
+++ b/debug_log.html
@@ -1,7 +1,8 @@
-
-
-
-
-
-
-
-
+
-
-
-
-
-
+
+
+ {{ reportIssue }}
+
+
+
+
+
+
+
diff --git a/fix_broken_perms.sh b/fix_broken_perms.sh
index dd2cf97e0..a48d1f6d8 100755
--- a/fix_broken_perms.sh
+++ b/fix_broken_perms.sh
@@ -1,4 +1,4 @@
set -e
find release/linux -type d | xargs chmod 755
find release/linux -type f | xargs chmod 644
-chmod +x release/linux/loki-messenger*
+chmod +x release/linux/session-desktop*
diff --git a/js/modules/signal.js b/js/modules/signal.js
index 716f8d528..2b87017bb 100644
--- a/js/modules/signal.js
+++ b/js/modules/signal.js
@@ -19,9 +19,6 @@ const { SessionInboxView } = require('../../ts/components/SessionInboxView');
// Types
const SettingsType = require('../../ts/types/Settings');
-// Views
-const Initialization = require('./views/initialization');
-
exports.setup = () => {
Data.init();
@@ -35,10 +32,6 @@ exports.setup = () => {
Settings: SettingsType,
};
- const Views = {
- Initialization,
- };
-
return {
Components,
Crypto,
@@ -49,6 +42,5 @@ exports.setup = () => {
Settings,
Types,
Util,
- Views,
};
};
diff --git a/js/modules/views/initialization.js b/js/modules/views/initialization.js
deleted file mode 100644
index 1f70e32da..000000000
--- a/js/modules/views/initialization.js
+++ /dev/null
@@ -1,47 +0,0 @@
-/* eslint-env browser */
-
-/* global i18n: false */
-
-const DISPLAY_THRESHOLD = 3000; // milliseconds
-const SELECTOR = '.app-loading-screen .message';
-
-let timeout;
-let targetString;
-let didTimeout = false;
-
-const clear = () => {
- if (timeout) {
- clearTimeout(timeout);
- timeout = null;
- }
-};
-
-const setMessage = loadingText => {
- const message = document.querySelector(SELECTOR);
- if (!message) {
- return clear;
- }
-
- targetString = loadingText || i18n('optimizingApplication');
-
- message.innerText = didTimeout ? targetString : i18n('loading');
-
- if (timeout) {
- return clear;
- }
-
- timeout = setTimeout(() => {
- didTimeout = true;
- const innerMessage = document.querySelector(SELECTOR);
- if (!innerMessage) {
- return;
- }
- innerMessage.innerText = targetString;
- }, DISPLAY_THRESHOLD);
-
- return clear;
-};
-
-module.exports = {
- setMessage,
-};
diff --git a/main.js b/main.js
index 6bb540edf..395fbb4cf 100644
--- a/main.js
+++ b/main.js
@@ -28,7 +28,7 @@ const {
systemPreferences,
} = electron;
-// FIXME Hardcoding appId to prevent build failrues on release.
+// FIXME Hardcoding appId to prevent build failures on release.
// const appUserModelId = packageJson.build.appId;
const appUserModelId = 'com.loki-project.messenger-desktop';
console.log('Set Windows Application User Model ID (AUMID)', {
@@ -986,7 +986,7 @@ ipc.on('set-call-media-permissions', (event, value) => {
event.sender.send('set-success-call-media-permissions', null);
});
-// Loki - Auto updating
+// Session - Auto updating
ipc.on('get-auto-update-setting', event => {
const configValue = userConfig.get('autoUpdate');
// eslint-disable-next-line no-param-reassign
diff --git a/preload.js b/preload.js
index 46fc3ea07..8bf26f368 100644
--- a/preload.js
+++ b/preload.js
@@ -28,7 +28,7 @@ window.isDev = () => config.environment === 'development';
window.getCommitHash = () => config.commitHash;
window.getNodeVersion = () => config.node_version;
-window.lokiFeatureFlags = {
+window.sessionFeatureFlags = {
useOnionRequests: true,
useMessageRequests: false,
useCallMessage: true,
diff --git a/ts/components/conversation/ConversationHeader.tsx b/ts/components/conversation/ConversationHeader.tsx
index 93d0118d1..eeaf14580 100644
--- a/ts/components/conversation/ConversationHeader.tsx
+++ b/ts/components/conversation/ConversationHeader.tsx
@@ -214,7 +214,7 @@ const CallButton = () => {
isMe ||
!selectedConvoKey ||
isBlocked ||
- !window.lokiFeatureFlags.useCallMessage
+ !window.sessionFeatureFlags.useCallMessage
) {
return null;
}
diff --git a/ts/components/leftpane/LeftPaneMessageSection.tsx b/ts/components/leftpane/LeftPaneMessageSection.tsx
index 0eaccd5ed..5459aaa4d 100644
--- a/ts/components/leftpane/LeftPaneMessageSection.tsx
+++ b/ts/components/leftpane/LeftPaneMessageSection.tsx
@@ -110,7 +110,7 @@ export class LeftPaneMessageSection extends React.Component {
return (
- {window.lokiFeatureFlags.useMessageRequests ? (
+ {window.sessionFeatureFlags.useMessageRequests ? (
{
window.inboxStore?.dispatch(setOverlayMode('message-requests'));
diff --git a/ts/components/leftpane/overlay/OverlayMessageRequest.tsx b/ts/components/leftpane/overlay/OverlayMessageRequest.tsx
index 98e6b4f5b..374b40e7d 100644
--- a/ts/components/leftpane/overlay/OverlayMessageRequest.tsx
+++ b/ts/components/leftpane/overlay/OverlayMessageRequest.tsx
@@ -21,7 +21,7 @@ import useKey from 'react-use/lib/useKey';
*/
async function handleBlockAllRequestsClick(messageRequestSetting: boolean) {
const messageRequestsEnabled =
- messageRequestSetting && window?.lokiFeatureFlags?.useMessageRequests;
+ messageRequestSetting && window?.sessionFeatureFlags?.useMessageRequests;
if (!messageRequestsEnabled) {
return;
diff --git a/ts/components/settings/section/CategoryPrivacy.tsx b/ts/components/settings/section/CategoryPrivacy.tsx
index 64f2c5c05..d0bab0ab8 100644
--- a/ts/components/settings/section/CategoryPrivacy.tsx
+++ b/ts/components/settings/section/CategoryPrivacy.tsx
@@ -57,7 +57,7 @@ export const SettingsCategoryPrivacy = (props: {
const forceUpdate = useUpdate();
const dispatch = useDispatch();
- const hasMessageRequestFlag = window.lokiFeatureFlags.useMessageRequests;
+ const hasMessageRequestFlag = window.sessionFeatureFlags.useMessageRequests;
if (props.hasPassword !== null) {
return (
@@ -71,7 +71,7 @@ export const SettingsCategoryPrivacy = (props: {
description={window.i18n('mediaPermissionsDescription')}
active={Boolean(window.getSettingValue('media-permissions'))}
/>
- {window.lokiFeatureFlags.useCallMessage && (
+ {window.sessionFeatureFlags.useCallMessage && (
{
await toggleCallMediaPermissions(forceUpdate);
diff --git a/ts/models/conversation.ts b/ts/models/conversation.ts
index f2a0dc02d..8bc6073b0 100644
--- a/ts/models/conversation.ts
+++ b/ts/models/conversation.ts
@@ -1438,7 +1438,7 @@ export class ConversationModel extends Backbone.Model {
if (
isMe &&
- window.lokiFeatureFlags.useMessageRequests &&
+ window.sessionFeatureFlags.useMessageRequests &&
window.inboxStore?.getState().userConfig.messageRequests
) {
await this.setIsApproved(true);
@@ -1491,7 +1491,7 @@ export class ConversationModel extends Backbone.Model {
return false;
}
const msgRequestsEnabled =
- window.lokiFeatureFlags.useMessageRequests &&
+ window.sessionFeatureFlags.useMessageRequests &&
window.inboxStore?.getState().userConfig.messageRequests;
// if msg requests are unused, we have to send typing (this is already a private active unblocked convo)
diff --git a/ts/receiver/configMessage.ts b/ts/receiver/configMessage.ts
index d82d9ba63..1a9fbabc6 100644
--- a/ts/receiver/configMessage.ts
+++ b/ts/receiver/configMessage.ts
@@ -141,7 +141,7 @@ const handleContactReceived = async (
}
if (
- window.lokiFeatureFlags.useMessageRequests &&
+ window.sessionFeatureFlags.useMessageRequests &&
window.inboxStore?.getState().userConfig.messageRequests
) {
if (contactReceived.isApproved) {
diff --git a/ts/receiver/contentMessage.ts b/ts/receiver/contentMessage.ts
index d69929c42..c0265c2d5 100644
--- a/ts/receiver/contentMessage.ts
+++ b/ts/receiver/contentMessage.ts
@@ -428,7 +428,7 @@ export async function innerHandleSwarmContentMessage(
if (content.unsendMessage) {
await handleUnsendMessage(envelope, content.unsendMessage as SignalService.Unsend);
}
- if (content.callMessage && window.lokiFeatureFlags?.useCallMessage) {
+ if (content.callMessage && window.sessionFeatureFlags?.useCallMessage) {
await handleCallMessage(envelope, content.callMessage as SignalService.CallMessage);
}
} catch (e) {
diff --git a/ts/receiver/queuedJob.ts b/ts/receiver/queuedJob.ts
index a8f0e8a21..8569cd6d9 100644
--- a/ts/receiver/queuedJob.ts
+++ b/ts/receiver/queuedJob.ts
@@ -253,7 +253,7 @@ async function handleRegularMessage(
if (type === 'outgoing') {
await handleSyncedReceipts(message, conversation);
- if (window.lokiFeatureFlags.useMessageRequests) {
+ if (window.sessionFeatureFlags.useMessageRequests) {
// assumes sync receipts are always from linked device outgoings
await conversation.setIsApproved(true);
}
diff --git a/ts/session/apis/seed_node_api/SeedNodeAPI.ts b/ts/session/apis/seed_node_api/SeedNodeAPI.ts
index 0c66dac08..6769a9866 100644
--- a/ts/session/apis/seed_node_api/SeedNodeAPI.ts
+++ b/ts/session/apis/seed_node_api/SeedNodeAPI.ts
@@ -48,7 +48,7 @@ export async function fetchSnodePoolFromSeedNodeWithRetries(
return fetchSnodePool;
} catch (e) {
window?.log?.warn(
- 'LokiSnodeAPI::fetchSnodePoolFromSeedNodeWithRetries - error',
+ 'SessionSnodeAPI::fetchSnodePoolFromSeedNodeWithRetries - error',
e.code,
e.message
);
diff --git a/ts/session/apis/snode_api/SNodeAPI.ts b/ts/session/apis/snode_api/SNodeAPI.ts
index 3709bb3c0..c1617e8cf 100644
--- a/ts/session/apis/snode_api/SNodeAPI.ts
+++ b/ts/session/apis/snode_api/SNodeAPI.ts
@@ -1,4 +1,4 @@
-import { snodeRpc } from './lokiRpc';
+import { snodeRpc } from './sessionRpc';
import {
getRandomSnode,
@@ -86,7 +86,7 @@ async function requestSnodesForPubkeyWithTargetNodeRetryable(
});
if (!result) {
window?.log?.warn(
- `LokiSnodeAPI::requestSnodesForPubkeyWithTargetNodeRetryable - lokiRpc on ${targetNode.ip}:${targetNode.port} returned falsish value`,
+ `SessionSnodeAPI::requestSnodesForPubkeyWithTargetNodeRetryable - sessionRpc on ${targetNode.ip}:${targetNode.port} returned falsish value`,
result
);
throw new Error('requestSnodesForPubkeyWithTargetNodeRetryable: Invalid result');
@@ -103,7 +103,7 @@ async function requestSnodesForPubkeyWithTargetNodeRetryable(
if (!json.snodes) {
// we hit this when snode gives 500s
window?.log?.warn(
- `LokiSnodeAPI::requestSnodesForPubkeyRetryable - lokiRpc on ${targetNode.ip}:${targetNode.port} returned falsish value for snodes`,
+ `SessionSnodeAPI::requestSnodesForPubkeyRetryable - sessionRpc on ${targetNode.ip}:${targetNode.port} returned falsish value for snodes`,
result
);
throw new Error('Invalid json (empty)');
@@ -176,7 +176,7 @@ export async function requestSnodesForPubkey(pubKey: string): Promise edKeys.indexOf(x.pubkey_ed25519) !== -1);
if (guardNodes.length < edKeys.length) {
window?.log?.warn(
- `LokiSnodeAPI::getGuardNodeOrSelectNewOnes - could not find some guard nodes: ${guardNodes.length}/${edKeys.length} left`
+ `SessionSnodeAPI::getGuardNodeOrSelectNewOnes - could not find some guard nodes: ${guardNodes.length}/${edKeys.length} left`
);
}
}
@@ -444,7 +444,7 @@ export async function getGuardNodeOrSelectNewOnes() {
async function buildNewOnionPathsWorker() {
return pRetry(
async () => {
- window?.log?.info('LokiSnodeAPI::buildNewOnionPaths - building new onion paths...');
+ window?.log?.info('SessionSnodeAPI::buildNewOnionPaths - building new onion paths...');
// get an up to date list of snodes from cache, from db, or from the a seed node.
let allNodes = await SnodePool.getSnodePoolFromDBOrFetchFromSeed();
@@ -459,7 +459,9 @@ async function buildNewOnionPathsWorker() {
// be sure to fetch again as that list might have been refreshed by selectGuardNodes
allNodes = await SnodePool.getSnodePoolFromDBOrFetchFromSeed();
- window?.log?.info(`LokiSnodeAPI::buildNewOnionPaths, snodePool length: ${allNodes.length}`);
+ window?.log?.info(
+ `SessionSnodeAPI::buildNewOnionPaths, snodePool length: ${allNodes.length}`
+ );
// get all snodes minus the selected guardNodes
if (allNodes.length <= SnodePool.minSnodePoolCount) {
throw new Error('Too few nodes to build an onion path. Even after fetching from seed.');
diff --git a/ts/state/selectors/conversations.ts b/ts/state/selectors/conversations.ts
index 563d55d88..3a665f979 100644
--- a/ts/state/selectors/conversations.ts
+++ b/ts/state/selectors/conversations.ts
@@ -334,7 +334,7 @@ export const _getLeftPaneLists = (
let unreadCount = 0;
for (const conversation of sortedConversations) {
const excludeUnapproved =
- isMessageRequestEnabled && window.lokiFeatureFlags?.useMessageRequests;
+ isMessageRequestEnabled && window.sessionFeatureFlags?.useMessageRequests;
if (conversation.activeAt !== undefined && conversation.type === ConversationTypeEnum.PRIVATE) {
directConversations.push(conversation);
@@ -422,7 +422,7 @@ const _getConversationRequests = (
isMessageRequestEnabled?: boolean
): Array => {
const pushToMessageRequests =
- isMessageRequestEnabled && window?.lokiFeatureFlags?.useMessageRequests;
+ isMessageRequestEnabled && window?.sessionFeatureFlags?.useMessageRequests;
return _.filter(sortedConversations, conversation => {
return pushToMessageRequests && !conversation.isApproved && !conversation.isBlocked;
});
@@ -439,7 +439,7 @@ const _getPrivateContactsPubkeys = (
isMessageRequestEnabled?: boolean
): Array => {
const pushToMessageRequests =
- (isMessageRequestEnabled && window?.lokiFeatureFlags?.useMessageRequests) ||
+ (isMessageRequestEnabled && window?.sessionFeatureFlags?.useMessageRequests) ||
!isMessageRequestEnabled;
return _.filter(sortedConversations, conversation => {
diff --git a/ts/test/session/unit/sending/MessageSender_test.ts b/ts/test/session/unit/sending/MessageSender_test.ts
index 41cea977e..f347014b3 100644
--- a/ts/test/session/unit/sending/MessageSender_test.ts
+++ b/ts/test/session/unit/sending/MessageSender_test.ts
@@ -28,11 +28,11 @@ describe('MessageSender', () => {
// tslint:disable-next-line: max-func-body-length
describe('send', () => {
const ourNumber = '0123456789abcdef';
- let lokiMessageAPISendStub: sinon.SinonStub;
+ let sessionMessageAPISendStub: sinon.SinonStub;
let encryptStub: sinon.SinonStub<[PubKey, Uint8Array, EncryptionType]>;
beforeEach(() => {
- lokiMessageAPISendStub = sandbox.stub(MessageSender, 'TEST_sendMessageToSnode').resolves();
+ sessionMessageAPISendStub = sandbox.stub(MessageSender, 'TEST_sendMessageToSnode').resolves();
sandbox.stub(Data, 'getMessageById').resolves();
@@ -58,29 +58,29 @@ describe('MessageSender', () => {
encryptStub.throws(new Error('Failed to encrypt.'));
const promise = MessageSender.send(rawMessage, 3, 10);
await expect(promise).is.rejectedWith('Failed to encrypt.');
- expect(lokiMessageAPISendStub.callCount).to.equal(0);
+ expect(sessionMessageAPISendStub.callCount).to.equal(0);
});
it('should only call lokiMessageAPI once if no errors occured', async () => {
await MessageSender.send(rawMessage, 3, 10);
- expect(lokiMessageAPISendStub.callCount).to.equal(1);
+ expect(sessionMessageAPISendStub.callCount).to.equal(1);
});
it('should only retry the specified amount of times before throwing', async () => {
// const clock = sinon.useFakeTimers();
- lokiMessageAPISendStub.throws(new Error('API error'));
+ sessionMessageAPISendStub.throws(new Error('API error'));
const attempts = 2;
const promise = MessageSender.send(rawMessage, attempts, 10);
await expect(promise).is.rejectedWith('API error');
// clock.restore();
- expect(lokiMessageAPISendStub.callCount).to.equal(attempts);
+ expect(sessionMessageAPISendStub.callCount).to.equal(attempts);
});
it('should not throw error if successful send occurs within the retry limit', async () => {
- lokiMessageAPISendStub.onFirstCall().throws(new Error('API error'));
+ sessionMessageAPISendStub.onFirstCall().throws(new Error('API error'));
await MessageSender.send(rawMessage, 3, 10);
- expect(lokiMessageAPISendStub.callCount).to.equal(2);
+ expect(sessionMessageAPISendStub.callCount).to.equal(2);
});
});
@@ -102,7 +102,7 @@ describe('MessageSender', () => {
await MessageSender.send(rawMessage, 3, 10);
- const args = lokiMessageAPISendStub.getCall(0).args;
+ const args = sessionMessageAPISendStub.getCall(0).args;
expect(args[0]).to.equal(device.key);
// expect(args[3]).to.equal(visibleMessage.timestamp); the timestamp is overwritten on sending by the network clock offset
expect(args[2]).to.equal(visibleMessage.ttl());
@@ -120,7 +120,7 @@ describe('MessageSender', () => {
sandbox.stub(SNodeAPI, 'getLatestTimestampOffset').returns(offset);
await MessageSender.send(rawMessage, 3, 10);
- const data = lokiMessageAPISendStub.getCall(0).args[1];
+ const data = sessionMessageAPISendStub.getCall(0).args[1];
const webSocketMessage = SignalService.WebSocketMessage.decode(data);
expect(webSocketMessage.request?.body).to.not.equal(
undefined,
@@ -163,7 +163,7 @@ describe('MessageSender', () => {
const rawMessage = await MessageUtils.toRawMessage(device, visibleMessage);
await MessageSender.send(rawMessage, 3, 10);
- const data = lokiMessageAPISendStub.getCall(0).args[1];
+ const data = sessionMessageAPISendStub.getCall(0).args[1];
const webSocketMessage = SignalService.WebSocketMessage.decode(data);
expect(webSocketMessage.request?.body).to.not.equal(
undefined,
diff --git a/ts/types/LocalizerKeys.ts b/ts/types/LocalizerKeys.ts
index ecb234e34..9f7d8abfd 100644
--- a/ts/types/LocalizerKeys.ts
+++ b/ts/types/LocalizerKeys.ts
@@ -18,7 +18,6 @@ export type LocalizerKeys =
| 'noContactsForGroup'
| 'originalMessageNotAvailable'
| 'linkVisitWarningMessage'
- | 'editMenuPasteAndMatchStyle'
| 'anonymous'
| 'viewMenuZoomOut'
| 'dialogClearAllDataDeletionFailedDesc'
@@ -236,7 +235,6 @@ export type LocalizerKeys =
| 'audioPermissionNeeded'
| 'timestamp_h'
| 'add'
- | 'windowMenuBringAllToFront'
| 'messageRequests'
| 'show'
| 'cannotMixImageAndNonImageAttachments'
diff --git a/ts/window.d.ts b/ts/window.d.ts
index a89d6ecc1..9c6d0f8a4 100644
--- a/ts/window.d.ts
+++ b/ts/window.d.ts
@@ -20,7 +20,7 @@ declare global {
CONSTANTS: any;
Events: any;
Lodash: any;
- LokiSnodeAPI: any;
+ SessionSnodeAPI: any;
Session: any;
Signal: SignalInterface;
StubAppDotNetApi: any;
@@ -36,12 +36,12 @@ declare global {
i18n: LocalizerType;
libsignal: LibsignalProtocol;
log: any;
- lokiFeatureFlags: {
+ sessionFeatureFlags: {
useOnionRequests: boolean;
useMessageRequests: boolean;
useCallMessage: boolean;
};
- lokiSnodeAPI: LokiSnodeAPI;
+ SessionSnodeAPI: SessionSnodeAPI;
onLogin: any;
persistStore?: Persistor;
restart: any;