Skip to content

Commit 5de92d8

Browse files
committed
Revert "fix(group): make MLS group thread safe #1349 (#1404)"
This reverts commit b5f3237.
1 parent b5f3237 commit 5de92d8

File tree

16 files changed

+616
-813
lines changed

16 files changed

+616
-813
lines changed

bindings_ffi/src/mls.rs

+9-50
Original file line numberDiff line numberDiff line change
@@ -1317,13 +1317,13 @@ impl FfiConversation {
13171317
Ok(())
13181318
}
13191319

1320-
pub async fn find_messages(
1320+
pub fn find_messages(
13211321
&self,
13221322
opts: FfiListMessagesOptions,
13231323
) -> Result<Vec<FfiMessage>, GenericError> {
13241324
let delivery_status = opts.delivery_status.map(|status| status.into());
13251325
let direction = opts.direction.map(|dir| dir.into());
1326-
let kind = match self.conversation_type().await? {
1326+
let kind = match self.conversation_type()? {
13271327
FfiConversationType::Group => None,
13281328
FfiConversationType::Dm => Some(GroupMessageKind::Application),
13291329
FfiConversationType::Sync => None,
@@ -1445,7 +1445,7 @@ impl FfiConversation {
14451445

14461446
pub fn group_image_url_square(&self) -> Result<String, GenericError> {
14471447
let provider = self.inner.mls_provider()?;
1448-
Ok(self.inner.group_image_url_square(&provider)?)
1448+
Ok(self.inner.group_image_url_square(provider)?)
14491449
}
14501450

14511451
pub async fn update_group_description(
@@ -1461,7 +1461,7 @@ impl FfiConversation {
14611461

14621462
pub fn group_description(&self) -> Result<String, GenericError> {
14631463
let provider = self.inner.mls_provider()?;
1464-
Ok(self.inner.group_description(&provider)?)
1464+
Ok(self.inner.group_description(provider)?)
14651465
}
14661466

14671467
pub async fn update_group_pinned_frame_url(
@@ -1593,9 +1593,9 @@ impl FfiConversation {
15931593
self.inner.added_by_inbox_id().map_err(Into::into)
15941594
}
15951595

1596-
pub async fn group_metadata(&self) -> Result<Arc<FfiConversationMetadata>, GenericError> {
1596+
pub fn group_metadata(&self) -> Result<Arc<FfiConversationMetadata>, GenericError> {
15971597
let provider = self.inner.mls_provider()?;
1598-
let metadata = self.inner.metadata(&provider).await?;
1598+
let metadata = self.inner.metadata(provider)?;
15991599
Ok(Arc::new(FfiConversationMetadata {
16001600
inner: Arc::new(metadata),
16011601
}))
@@ -1605,9 +1605,9 @@ impl FfiConversation {
16051605
self.inner.dm_inbox_id().map_err(Into::into)
16061606
}
16071607

1608-
pub async fn conversation_type(&self) -> Result<FfiConversationType, GenericError> {
1608+
pub fn conversation_type(&self) -> Result<FfiConversationType, GenericError> {
16091609
let provider = self.inner.mls_provider()?;
1610-
let conversation_type = self.inner.conversation_type(&provider).await?;
1610+
let conversation_type = self.inner.conversation_type(&provider)?;
16111611
Ok(conversation_type.into())
16121612
}
16131613
}
@@ -2104,9 +2104,6 @@ mod tests {
21042104
.await
21052105
.unwrap();
21062106

2107-
let conn = client.inner_client.context().store().conn().unwrap();
2108-
conn.register_triggers();
2109-
21102107
register_client(&ffi_inbox_owner, &client).await;
21112108
client
21122109
}
@@ -2598,8 +2595,6 @@ mod tests {
25982595
async fn test_can_stream_group_messages_for_updates() {
25992596
let alix = new_test_client().await;
26002597
let bo = new_test_client().await;
2601-
let alix_provider = alix.inner_client.mls_provider().unwrap();
2602-
let bo_provider = bo.inner_client.mls_provider().unwrap();
26032598

26042599
// Stream all group messages
26052600
let message_callbacks = Arc::new(RustStreamCallback::default());
@@ -2632,29 +2627,21 @@ mod tests {
26322627
.unwrap();
26332628
let bo_group = &bo_groups[0];
26342629
bo_group.sync().await.unwrap();
2635-
2636-
// alix published + processed group creation and name update
2637-
assert_eq!(alix_provider.conn_ref().intents_published(), 2);
2638-
assert_eq!(alix_provider.conn_ref().intents_deleted(), 2);
2639-
26402630
bo_group
26412631
.update_group_name("Old Name2".to_string())
26422632
.await
26432633
.unwrap();
26442634
message_callbacks.wait_for_delivery(None).await.unwrap();
2645-
assert_eq!(bo_provider.conn_ref().intents_published(), 1);
26462635

26472636
alix_group.send(b"Hello there".to_vec()).await.unwrap();
26482637
message_callbacks.wait_for_delivery(None).await.unwrap();
2649-
assert_eq!(alix_provider.conn_ref().intents_published(), 3);
26502638

26512639
let dm = bo
26522640
.conversations()
26532641
.create_dm(alix.account_address.clone())
26542642
.await
26552643
.unwrap();
26562644
dm.send(b"Hello again".to_vec()).await.unwrap();
2657-
assert_eq!(bo_provider.conn_ref().intents_published(), 3);
26582645
message_callbacks.wait_for_delivery(None).await.unwrap();
26592646

26602647
// Uncomment the following lines to add more group name updates
@@ -2663,8 +2650,6 @@ mod tests {
26632650
.await
26642651
.unwrap();
26652652
message_callbacks.wait_for_delivery(None).await.unwrap();
2666-
message_callbacks.wait_for_delivery(None).await.unwrap();
2667-
assert_eq!(bo_provider.conn_ref().intents_published(), 4);
26682653

26692654
assert_eq!(message_callbacks.message_count(), 6);
26702655

@@ -2708,11 +2693,9 @@ mod tests {
27082693

27092694
let bo_messages1 = bo_group1
27102695
.find_messages(FfiListMessagesOptions::default())
2711-
.await
27122696
.unwrap();
27132697
let bo_messages5 = bo_group5
27142698
.find_messages(FfiListMessagesOptions::default())
2715-
.await
27162699
.unwrap();
27172700
assert_eq!(bo_messages1.len(), 0);
27182701
assert_eq!(bo_messages5.len(), 0);
@@ -2724,11 +2707,9 @@ mod tests {
27242707

27252708
let bo_messages1 = bo_group1
27262709
.find_messages(FfiListMessagesOptions::default())
2727-
.await
27282710
.unwrap();
27292711
let bo_messages5 = bo_group5
27302712
.find_messages(FfiListMessagesOptions::default())
2731-
.await
27322713
.unwrap();
27332714
assert_eq!(bo_messages1.len(), 1);
27342715
assert_eq!(bo_messages5.len(), 1);
@@ -2847,13 +2828,11 @@ mod tests {
28472828
alix_group.sync().await.unwrap();
28482829
let alix_messages = alix_group
28492830
.find_messages(FfiListMessagesOptions::default())
2850-
.await
28512831
.unwrap();
28522832

28532833
bo_group.sync().await.unwrap();
28542834
let bo_messages = bo_group
28552835
.find_messages(FfiListMessagesOptions::default())
2856-
.await
28572836
.unwrap();
28582837
assert_eq!(bo_messages.len(), 9);
28592838
assert_eq!(alix_messages.len(), 10);
@@ -3037,19 +3016,15 @@ mod tests {
30373016
// Get the message count for all the clients
30383017
let caro_messages = caro_group
30393018
.find_messages(FfiListMessagesOptions::default())
3040-
.await
30413019
.unwrap();
30423020
let alix_messages = alix_group
30433021
.find_messages(FfiListMessagesOptions::default())
3044-
.await
30453022
.unwrap();
30463023
let bo_messages = bo_group
30473024
.find_messages(FfiListMessagesOptions::default())
3048-
.await
30493025
.unwrap();
30503026
let bo2_messages = bo2_group
30513027
.find_messages(FfiListMessagesOptions::default())
3052-
.await
30533028
.unwrap();
30543029

30553030
assert_eq!(caro_messages.len(), 5);
@@ -3105,11 +3080,9 @@ mod tests {
31053080

31063081
let alix_messages = alix_group
31073082
.find_messages(FfiListMessagesOptions::default())
3108-
.await
31093083
.unwrap();
31103084
let bo_messages = bo_group
31113085
.find_messages(FfiListMessagesOptions::default())
3112-
.await
31133086
.unwrap();
31143087

31153088
let alix_can_see_bo_message = alix_messages
@@ -3216,7 +3189,6 @@ mod tests {
32163189

32173190
let bo_messages = bo_group
32183191
.find_messages(FfiListMessagesOptions::default())
3219-
.await
32203192
.unwrap();
32213193
assert_eq!(bo_messages.len(), 0);
32223194

@@ -3232,12 +3204,8 @@ mod tests {
32323204

32333205
let bo_messages = bo_group
32343206
.find_messages(FfiListMessagesOptions::default())
3235-
.await
32363207
.unwrap();
3237-
assert_eq!(
3238-
bo_messages.first().unwrap().kind,
3239-
FfiConversationMessageKind::MembershipChange
3240-
);
3208+
assert!(bo_messages.first().unwrap().kind == FfiConversationMessageKind::MembershipChange);
32413209
assert_eq!(bo_messages.len(), 1);
32423210

32433211
let bo_members = bo_group.list_members().await.unwrap();
@@ -3295,7 +3263,6 @@ mod tests {
32953263

32963264
let bo_messages1 = bo_group
32973265
.find_messages(FfiListMessagesOptions::default())
3298-
.await
32993266
.unwrap();
33003267
assert_eq!(bo_messages1.len(), first_msg_check);
33013268

@@ -3308,7 +3275,6 @@ mod tests {
33083275

33093276
let alix_messages = alix_group
33103277
.find_messages(FfiListMessagesOptions::default())
3311-
.await
33123278
.unwrap();
33133279
assert_eq!(alix_messages.len(), second_msg_check);
33143280

@@ -3318,7 +3284,6 @@ mod tests {
33183284

33193285
let bo_messages2 = bo_group
33203286
.find_messages(FfiListMessagesOptions::default())
3321-
.await
33223287
.unwrap();
33233288
assert_eq!(bo_messages2.len(), second_msg_check);
33243289
assert_eq!(message_callbacks.message_count(), second_msg_check as u32);
@@ -4564,19 +4529,15 @@ mod tests {
45644529
// Get messages for both participants in both conversations
45654530
let alix_dm_messages = alix_dm
45664531
.find_messages(FfiListMessagesOptions::default())
4567-
.await
45684532
.unwrap();
45694533
let bo_dm_messages = bo_dm
45704534
.find_messages(FfiListMessagesOptions::default())
4571-
.await
45724535
.unwrap();
45734536
let alix_group_messages = alix_group
45744537
.find_messages(FfiListMessagesOptions::default())
4575-
.await
45764538
.unwrap();
45774539
let bo_group_messages = bo_group
45784540
.find_messages(FfiListMessagesOptions::default())
4579-
.await
45804541
.unwrap();
45814542

45824543
// Verify DM messages
@@ -4697,15 +4658,13 @@ mod tests {
46974658
.await
46984659
.unwrap()[0]
46994660
.find_messages(FfiListMessagesOptions::default())
4700-
.await
47014661
.unwrap();
47024662
let bo_dm_messages = client_b
47034663
.conversations()
47044664
.list(FfiListConversationsOptions::default())
47054665
.await
47064666
.unwrap()[0]
47074667
.find_messages(FfiListMessagesOptions::default())
4708-
.await
47094668
.unwrap();
47104669
assert_eq!(alix_dm_messages[0].content, "Hello in DM".as_bytes());
47114670
assert_eq!(bo_dm_messages[0].content, "Hello in DM".as_bytes());

bindings_node/src/conversation.rs

+10-12
Original file line numberDiff line numberDiff line change
@@ -161,7 +161,7 @@ impl Conversation {
161161
}
162162

163163
#[napi]
164-
pub async fn find_messages(&self, opts: Option<ListMessagesOptions>) -> Result<Vec<Message>> {
164+
pub fn find_messages(&self, opts: Option<ListMessagesOptions>) -> Result<Vec<Message>> {
165165
let opts = opts.unwrap_or_default();
166166
let group = MlsGroup::new(
167167
self.inner_client.clone(),
@@ -171,7 +171,6 @@ impl Conversation {
171171
let provider = group.mls_provider().map_err(ErrorWrapper::from)?;
172172
let conversation_type = group
173173
.conversation_type(&provider)
174-
.await
175174
.map_err(ErrorWrapper::from)?;
176175
let kind = match conversation_type {
177176
ConversationType::Group => None,
@@ -251,7 +250,7 @@ impl Conversation {
251250
);
252251

253252
let admin_list = group
254-
.admin_list(&group.mls_provider().map_err(ErrorWrapper::from)?)
253+
.admin_list(group.mls_provider().map_err(ErrorWrapper::from)?)
255254
.map_err(ErrorWrapper::from)?;
256255

257256
Ok(admin_list)
@@ -266,7 +265,7 @@ impl Conversation {
266265
);
267266

268267
let super_admin_list = group
269-
.super_admin_list(&group.mls_provider().map_err(ErrorWrapper::from)?)
268+
.super_admin_list(group.mls_provider().map_err(ErrorWrapper::from)?)
270269
.map_err(ErrorWrapper::from)?;
271270

272271
Ok(super_admin_list)
@@ -452,7 +451,7 @@ impl Conversation {
452451
);
453452

454453
let group_name = group
455-
.group_name(&group.mls_provider().map_err(ErrorWrapper::from)?)
454+
.group_name(group.mls_provider().map_err(ErrorWrapper::from)?)
456455
.map_err(ErrorWrapper::from)?;
457456

458457
Ok(group_name)
@@ -483,7 +482,7 @@ impl Conversation {
483482
);
484483

485484
let group_image_url_square = group
486-
.group_image_url_square(&group.mls_provider().map_err(ErrorWrapper::from)?)
485+
.group_image_url_square(group.mls_provider().map_err(ErrorWrapper::from)?)
487486
.map_err(ErrorWrapper::from)?;
488487

489488
Ok(group_image_url_square)
@@ -514,7 +513,7 @@ impl Conversation {
514513
);
515514

516515
let group_description = group
517-
.group_description(&group.mls_provider().map_err(ErrorWrapper::from)?)
516+
.group_description(group.mls_provider().map_err(ErrorWrapper::from)?)
518517
.map_err(ErrorWrapper::from)?;
519518

520519
Ok(group_description)
@@ -545,7 +544,7 @@ impl Conversation {
545544
);
546545

547546
let group_pinned_frame_url = group
548-
.group_pinned_frame_url(&group.mls_provider().map_err(ErrorWrapper::from)?)
547+
.group_pinned_frame_url(group.mls_provider().map_err(ErrorWrapper::from)?)
549548
.map_err(ErrorWrapper::from)?;
550549

551550
Ok(group_pinned_frame_url)
@@ -588,7 +587,7 @@ impl Conversation {
588587

589588
Ok(
590589
group
591-
.is_active(&group.mls_provider().map_err(ErrorWrapper::from)?)
590+
.is_active(group.mls_provider().map_err(ErrorWrapper::from)?)
592591
.map_err(ErrorWrapper::from)?,
593592
)
594593
}
@@ -605,16 +604,15 @@ impl Conversation {
605604
}
606605

607606
#[napi]
608-
pub async fn group_metadata(&self) -> Result<GroupMetadata> {
607+
pub fn group_metadata(&self) -> Result<GroupMetadata> {
609608
let group = MlsGroup::new(
610609
self.inner_client.clone(),
611610
self.group_id.clone(),
612611
self.created_at_ns,
613612
);
614613

615614
let metadata = group
616-
.metadata(&group.mls_provider().map_err(ErrorWrapper::from)?)
617-
.await
615+
.metadata(group.mls_provider().map_err(ErrorWrapper::from)?)
618616
.map_err(ErrorWrapper::from)?;
619617

620618
Ok(GroupMetadata { inner: metadata })

0 commit comments

Comments
 (0)