Sender Key: Prepare for testing in beta
This commit is contained in:
parent
c5de4c6284
commit
ab5a12fded
6 changed files with 34 additions and 18 deletions
|
@ -18,7 +18,6 @@ export type ConfigKeyType =
|
|||
| 'desktop.retryReceiptLifespan'
|
||||
| 'desktop.retryRespondMaxAge'
|
||||
| 'desktop.screensharing2'
|
||||
| 'desktop.sendSenderKey2'
|
||||
| 'desktop.storage'
|
||||
| 'desktop.storageWrite3'
|
||||
| 'desktop.worksAtSignal'
|
||||
|
|
|
@ -2312,9 +2312,7 @@ export async function startApp(): Promise<void> {
|
|||
announcementGroup: true,
|
||||
'gv2-3': true,
|
||||
'gv1-migration': true,
|
||||
senderKey: window.Signal.RemoteConfig.isEnabled(
|
||||
'desktop.sendSenderKey2'
|
||||
),
|
||||
senderKey: true,
|
||||
});
|
||||
} catch (error) {
|
||||
window.log.error(
|
||||
|
|
|
@ -748,10 +748,10 @@ export type CapabilitiesType = {
|
|||
senderKey: boolean;
|
||||
};
|
||||
export type CapabilitiesUploadType = {
|
||||
announcementGroup: boolean;
|
||||
'gv2-3': boolean;
|
||||
'gv1-migration': boolean;
|
||||
senderKey: boolean;
|
||||
announcementGroup: true;
|
||||
'gv2-3': true;
|
||||
'gv1-migration': true;
|
||||
senderKey: true;
|
||||
};
|
||||
|
||||
type StickerPackManifestType = any;
|
||||
|
@ -1478,7 +1478,7 @@ export function initialize({
|
|||
announcementGroup: true,
|
||||
'gv2-3': true,
|
||||
'gv1-migration': true,
|
||||
senderKey: false,
|
||||
senderKey: true,
|
||||
};
|
||||
|
||||
const { accessKey } = options;
|
||||
|
|
|
@ -7,7 +7,8 @@ import {
|
|||
} from '@signalapp/signal-client';
|
||||
import { isNumber } from 'lodash';
|
||||
|
||||
import { assert } from './assert';
|
||||
import { isBeta } from './version';
|
||||
import { strictAssert } from './assert';
|
||||
import { getSendOptions } from './getSendOptions';
|
||||
import { handleMessageSend } from './handleMessageSend';
|
||||
import { isGroupV2 } from './whatTypeOfConversation';
|
||||
|
@ -116,13 +117,11 @@ export async function onRetryRequest(event: RetryRequestEvent): Promise<void> {
|
|||
}
|
||||
|
||||
function maybeShowDecryptionToast(logId: string) {
|
||||
if (!RemoteConfig.isEnabled('desktop.internalUser')) {
|
||||
if (!isBeta(window.getVersion())) {
|
||||
return;
|
||||
}
|
||||
|
||||
window.log.info(
|
||||
`onDecryptionError/${logId}: Showing toast for internal user`
|
||||
);
|
||||
window.log.info(`onDecryptionError/${logId}: Showing decryption error toast`);
|
||||
window.Whisper.ToastView.show(
|
||||
window.Whisper.DecryptionErrorToast,
|
||||
document.getElementsByClassName('conversation-stack')[0]
|
||||
|
@ -434,7 +433,7 @@ async function requestResend(decryptionError: DecryptionErrorEventData) {
|
|||
// We believe that it could be successfully re-sent, so we'll add a placeholder.
|
||||
if (contentHint === ContentHint.RESENDABLE) {
|
||||
const { retryPlaceholders } = window.Signal.Services;
|
||||
assert(retryPlaceholders, 'requestResend: adding placeholder');
|
||||
strictAssert(retryPlaceholders, 'requestResend: adding placeholder');
|
||||
|
||||
window.log.info(`requestResend/${logId}: Adding placeholder`);
|
||||
|
||||
|
|
|
@ -18,7 +18,6 @@ import {
|
|||
SenderCertificateMode,
|
||||
SendLogCallbackType,
|
||||
} from '../textsecure/OutgoingMessage';
|
||||
import { isEnabled } from '../RemoteConfig';
|
||||
|
||||
import { isOlderThan } from './timestamp';
|
||||
import {
|
||||
|
@ -142,7 +141,6 @@ export async function sendContentMessageToGroup({
|
|||
const ourConversation = window.ConversationController.get(ourConversationId);
|
||||
|
||||
if (
|
||||
isEnabled('desktop.sendSenderKey2') &&
|
||||
ourConversation?.get('capabilities')?.senderKey &&
|
||||
isGroupV2(conversation.attributes)
|
||||
) {
|
||||
|
|
|
@ -206,9 +206,10 @@ Whisper.TapToViewExpiredOutgoingToast = Whisper.ToastView.extend({
|
|||
});
|
||||
|
||||
Whisper.DecryptionErrorToast = Whisper.ToastView.extend({
|
||||
className: 'toast toast-clickable',
|
||||
className: 'toast toast-clickable decryption-error',
|
||||
events: {
|
||||
click: 'onClick',
|
||||
keydown: 'onKeyDown',
|
||||
},
|
||||
render_attributes() {
|
||||
return {
|
||||
|
@ -218,6 +219,15 @@ Whisper.DecryptionErrorToast = Whisper.ToastView.extend({
|
|||
// Note: this is the same thing as ToastView, except it's missing the setTimeout, so it
|
||||
// will stick around until the user interacts with it.
|
||||
render() {
|
||||
const toasts = document.getElementsByClassName('decryption-error');
|
||||
if (toasts.length > 1) {
|
||||
window.log.info(
|
||||
'DecryptionErrorToast: We are second decryption error toast. Closing.'
|
||||
);
|
||||
this.close();
|
||||
return;
|
||||
}
|
||||
|
||||
this.$el.html(
|
||||
window.Mustache.render(
|
||||
window._.result(this, 'template', ''),
|
||||
|
@ -226,11 +236,23 @@ Whisper.DecryptionErrorToast = Whisper.ToastView.extend({
|
|||
);
|
||||
this.$el.attr('tabIndex', 0);
|
||||
this.$el.show();
|
||||
if (window.getInteractionMode() === 'keyboard') {
|
||||
setTimeout(() => {
|
||||
this.$el.focus();
|
||||
}, 1);
|
||||
}
|
||||
},
|
||||
onClick() {
|
||||
this.close();
|
||||
window.showDebugLog();
|
||||
},
|
||||
onKeyDown(event: KeyboardEvent) {
|
||||
if (event.key !== 'Enter' && event.key !== ' ') {
|
||||
return;
|
||||
}
|
||||
|
||||
this.onClick();
|
||||
},
|
||||
});
|
||||
|
||||
Whisper.FileSavedToast = Whisper.ToastView.extend({
|
||||
|
|
Loading…
Reference in a new issue