Page MenuHomePhabricator

D13146.id43603.diff
No OneTemporary

D13146.id43603.diff

diff --git a/lib/shared/dm-ops/dm-ops-queue-handler.react.js b/lib/shared/dm-ops/dm-ops-queue-handler.react.js
--- a/lib/shared/dm-ops/dm-ops-queue-handler.react.js
+++ b/lib/shared/dm-ops/dm-ops-queue-handler.react.js
@@ -2,6 +2,7 @@
import * as React from 'react';
+import { dmOperationSpecificationTypes } from './dm-op-utils.js';
import { useProcessDMOperation } from './process-dm-ops.js';
import { threadInfoSelector } from '../../selectors/thread-selectors.js';
import {
@@ -59,7 +60,13 @@
continue;
}
for (const dmOp of queuedOperations[threadID]) {
- void processDMOperation(dmOp.operation);
+ void processDMOperation({
+ type: dmOperationSpecificationTypes.INBOUND,
+ op: dmOp.operation,
+ // There is no metadata, because messages were confirmed when
+ // adding to the queue.
+ metadata: null,
+ });
}
dispatch({
diff --git a/lib/shared/dm-ops/process-dm-ops.js b/lib/shared/dm-ops/process-dm-ops.js
--- a/lib/shared/dm-ops/process-dm-ops.js
+++ b/lib/shared/dm-ops/process-dm-ops.js
@@ -5,15 +5,16 @@
import uuid from 'uuid';
import { dmOpSpecs } from './dm-op-specs.js';
-import type { OutboundDMOperationSpecification } from './dm-op-utils.js';
+import type {
+ OutboundDMOperationSpecification,
+ DMOperationSpecification,
+} from './dm-op-utils.js';
import { useLoggedInUserInfo } from '../../hooks/account-hooks.js';
import { useGetLatestMessageEdit } from '../../hooks/latest-message-edit.js';
import { useDispatchWithMessageSource } from '../../hooks/ops-hooks.js';
import { mergeUpdatesWithMessageInfos } from '../../reducers/message-reducer.js';
import { usePeerToPeerCommunication } from '../../tunnelbroker/peer-to-peer-context.js';
-import type { MessageSourceMetadata } from '../../types/db-ops-types.js';
import {
- type DMOperation,
processDMOpsActionType,
queueDMOpsActionType,
} from '../../types/dm-ops.js';
@@ -26,8 +27,7 @@
import { updateSpecs } from '../updates/update-specs.js';
function useProcessDMOperation(): (
- dmOp: DMOperation,
- metadata: ?MessageSourceMetadata,
+ dmOperationSpecification: DMOperationSpecification,
) => Promise<void> {
const fetchMessage = useGetLatestMessageEdit();
const threadInfos = useSelector(state => state.threadStore.threadInfos);
@@ -44,11 +44,13 @@
const loggedInUserInfo = useLoggedInUserInfo();
const viewerID = loggedInUserInfo?.id;
return React.useCallback(
- async (dmOp: DMOperation, metadata: ?MessageSourceMetadata) => {
+ async (dmOperationSpecification: DMOperationSpecification) => {
if (!viewerID) {
console.log('ignored DMOperation because logged out');
return;
}
+
+ const { op: dmOp, metadata } = dmOperationSpecification;
const processingCheckResult = dmOpSpecs[dmOp.type].canBeProcessed(
dmOp,
viewerID,
@@ -163,7 +165,7 @@
return React.useCallback(
async (dmOperationSpecification: OutboundDMOperationSpecification) => {
- await processDMOps(dmOperationSpecification.op);
+ await processDMOps(dmOperationSpecification);
await sendDMOperation(dmOperationSpecification);
},
[processDMOps, sendDMOperation],
diff --git a/lib/tunnelbroker/use-peer-to-peer-message-handler.js b/lib/tunnelbroker/use-peer-to-peer-message-handler.js
--- a/lib/tunnelbroker/use-peer-to-peer-message-handler.js
+++ b/lib/tunnelbroker/use-peer-to-peer-message-handler.js
@@ -22,6 +22,7 @@
verifyAndGetDeviceList,
removeDeviceFromDeviceList,
} from '../shared/device-list-utils.js';
+import { dmOperationSpecificationTypes } from '../shared/dm-ops/dm-op-utils.js';
import { useProcessDMOperation } from '../shared/dm-ops/process-dm-ops.js';
import { IdentityClientContext } from '../shared/identity-client-context.js';
import type { DeviceOlmInboundKeys } from '../types/identity-service-types.js';
@@ -121,9 +122,13 @@
userActionMessage.type === userActionsP2PMessageTypes.DM_OPERATION
) {
// inbound P2P message is removed in DBOpsHandler after processing
- await processDMOperation(userActionMessage.op, {
- messageID,
- senderDeviceID: senderInfo.deviceID,
+ await processDMOperation({
+ type: dmOperationSpecificationTypes.INBOUND,
+ op: userActionMessage.op,
+ metadata: {
+ messageID,
+ senderDeviceID: senderInfo.deviceID,
+ },
});
} else if (
userActionMessage.type === userActionsP2PMessageTypes.ACCOUNT_DELETION

File Metadata

Mime Type
text/plain
Expires
Sat, Oct 19, 5:45 PM (22 h, 24 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
2324277
Default Alt Text
D13146.id43603.diff (4 KB)

Event Timeline