Page MenuHomePhabricator
Feed Advanced Search

Aug 1 2024

marcin added a comment to D12668: Implement peer notifications session creation as outbound on native.

I really don't like the idea (looking at this diff and the entire stack) of passing isKeyserverSession - notification crypto module should treat all devices the same regardless of whether this is a keyserver or client device, and we should only have senderID, because the current design makes it confusing. But given this is implemented and tested I believe we can proceed, you could create a follow-up task to improve it in future but for now LGTM.

Curious for @marcin's perspective on this, and how much time it might take to fix up

It would require us to implement migration for currently existing users from KEYSERVER prefixed key schema to DEVICE prefixed key schema. I initially thought that it will be easier to skip the migration and treat session separately.

Now I think that migration might not be that hard to implement. However I am worried that treating peer-based and keyserver-based notifications the same way will force us to use the same decryption function for both. Decryption function for peer-based notifications (D12750) is complex and might have bugs. Therefore the advantage of treating them separately is that we guarantee we won't break already existing and working functionality (keyserver-based notifications).

If we skip the work of unifying this logic now, we should at least create a follow-up task to address it later.

Aug 1 2024, 5:24 AM
marcin added a comment to D12673: Utilities to idempotently create content and notif sessions.

This diff looks confusing to me. We're introducing a new context PeerOlmSessionCreatorContext but it doesn't look like we're using it.

@marcin can you please respond to this? What is the point of this new PeerOlmSessionCreatorContext? Please explain things like this in diff descriptions, and please make sure you always document any offline discussions in response to diff comments on that diff.

Aug 1 2024, 5:14 AM
marcin added inline comments to D12882: Implement sending E2EE notification from the client.
Aug 1 2024, 4:56 AM

Jul 31 2024

marcin updated the diff for D12882: Implement sending E2EE notification from the client.

Address review

Jul 31 2024, 11:19 AM
marcin updated the diff for D12838: Implement web notifs session createion with race condition handling.

Fix keyserver based notifs

Jul 31 2024, 11:18 AM
marcin updated the diff for D12692: Migrate notification account to IndexedDB on web.

Address unaddressed comments

Jul 31 2024, 10:18 AM
marcin added a comment to D12692: Migrate notification account to IndexedDB on web.

Testing was executed on Safari

Jul 31 2024, 10:14 AM
marcin added inline comments to D12692: Migrate notification account to IndexedDB on web.
Jul 31 2024, 10:14 AM
marcin added a comment to D12882: Implement sending E2EE notification from the client.

After discussing it with @kamil and @tomek we concluded that changes necessary to be done in this diff include:

  1. Sequentially awaiting db ops processing before notifs processing.
  2. Put MessageData directly in DBOpsEntry.
Jul 31 2024, 6:32 AM
marcin added a comment to D12836: Patch localforage to support transactional multiple items retrieval/persistence.

PR: https://github.com/marcinwasowicz/localForage/pull/1

Jul 31 2024, 6:25 AM

Jul 30 2024

marcin updated the diff for D12836: Patch localforage to support transactional multiple items retrieval/persistence.

Update yarn.lock

Jul 30 2024, 7:30 AM
marcin updated the diff for D12882: Implement sending E2EE notification from the client.

Update phab

Jul 30 2024, 3:29 AM
marcin updated the diff for D12838: Implement web notifs session createion with race condition handling.

Update phab

Jul 30 2024, 3:29 AM
marcin updated the diff for D12837: Bump olm version.

Update phab

Jul 30 2024, 3:28 AM
marcin updated the diff for D12750: Implement inbound notif session creation from the NSE with race condition handling.

Update phab

Jul 30 2024, 3:28 AM
marcin updated the diff for D12728: Implement Android HTTP call to identity to get notifs inbound keys.

Update phab

Jul 30 2024, 3:27 AM
marcin updated the diff for D12703: Transfer CSAT to IndexedDB from service worker and implement call to identity to query for inbound keys.

Update phab

Jul 30 2024, 3:27 AM
marcin updated the diff for D12692: Migrate notification account to IndexedDB on web.

Update phab

Jul 30 2024, 3:26 AM
marcin updated the diff for D12836: Patch localforage to support transactional multiple items retrieval/persistence.

Update phab

Jul 30 2024, 3:26 AM
marcin updated the diff for D12677: Implement method to query identity service from the NSE.

Update phab

Jul 30 2024, 3:25 AM
marcin updated the diff for D12676: Migrate notifications crypto account to MMKV on native.

Update phab

Jul 30 2024, 3:25 AM
marcin updated the diff for D12673: Utilities to idempotently create content and notif sessions.

Update phab

Jul 30 2024, 3:24 AM
marcin updated the diff for D12672: Implement utility functions to check if we have content or notif session with device.

Update phab

Jul 30 2024, 3:24 AM
marcin updated the diff for D12671: Implement notification encryption on web.

Update phab

Jul 30 2024, 3:23 AM
marcin updated the diff for D12670: Implement notification encryption on native.

Update phab

Jul 30 2024, 3:23 AM
marcin updated the diff for D12669: Implement peer notifications session creation as outbound on web and add notifs outbound session creator to OlmAPI.

Update phab

Jul 30 2024, 3:22 AM
marcin updated the diff for D12668: Implement peer notifications session creation as outbound on native.

Update phab

Jul 30 2024, 3:22 AM

Jul 29 2024

marcin updated the diff for D12838: Implement web notifs session createion with race condition handling.

Address review

Jul 29 2024, 1:53 PM
marcin updated the diff for D12692: Migrate notification account to IndexedDB on web.

Address review

Jul 29 2024, 1:52 PM
marcin updated the diff for D12836: Patch localforage to support transactional multiple items retrieval/persistence.

Use localforage from fork PR

Jul 29 2024, 1:51 PM
marcin added inline comments to D12838: Implement web notifs session createion with race condition handling.
Jul 29 2024, 9:38 AM
marcin added inline comments to D12692: Migrate notification account to IndexedDB on web.
Jul 29 2024, 8:50 AM
marcin accepted D12919: [terraform] Deploy Tunnelbroker 0.12 to staging.
Jul 29 2024, 7:27 AM
marcin closed D12900: Prevent desktop devices from presenting themselves as web to identity.
Jul 29 2024, 6:07 AM
marcin committed rCOMM523348e13633: Prevent desktop devices from presenting themselves as web to identity (authored by marcin).
Prevent desktop devices from presenting themselves as web to identity
Jul 29 2024, 6:07 AM
marcin closed D12899: Bump identity staging version to 0.34.
Jul 29 2024, 6:06 AM
marcin committed rCOMM6873800a2eac: Bump identity staging version to 0.34 (authored by marcin).
Bump identity staging version to 0.34
Jul 29 2024, 6:06 AM
marcin added inline comments to D12676: Migrate notifications crypto account to MMKV on native.
Jul 29 2024, 5:51 AM
marcin added inline comments to D12676: Migrate notifications crypto account to MMKV on native.
Jul 29 2024, 5:47 AM
marcin updated the diff for D12900: Prevent desktop devices from presenting themselves as web to identity.

Use Object.freeze for constants mapping from platform types to identity platform types. Rebase before landing

Jul 29 2024, 5:39 AM
marcin updated the diff for D12899: Bump identity staging version to 0.34.

Rebase before landing

Jul 29 2024, 5:35 AM
marcin added a comment to D12900: Prevent desktop devices from presenting themselves as web to identity.

now that we supply platform details as metadata, should we be sending the device type in the key upload at all? seems like we should just remove it? cc @bartek

Not entirely sure, but probably yes. Would be good to create a follow-up task to discuss this more.

Jul 29 2024, 5:32 AM

Jul 28 2024

marcin requested review of D12900: Prevent desktop devices from presenting themselves as web to identity.
Jul 28 2024, 2:39 AM
marcin requested review of D12899: Bump identity staging version to 0.34.
Jul 28 2024, 2:31 AM
marcin updated the diff for D12838: Implement web notifs session createion with race condition handling.

Fix desktop notifications

Jul 28 2024, 2:30 AM

Jul 26 2024

marcin requested review of D12882: Implement sending E2EE notification from the client.
Jul 26 2024, 7:44 AM
marcin accepted D12898: [identity] Fix saving majorDesktopVersion metadata.
Jul 26 2024, 7:18 AM

Jul 25 2024

marcin updated the diff for D12673: Utilities to idempotently create content and notif sessions.
  1. Use query to check notifications session for multiple devices at once and initilize crypto account in send utils instead of each time before encryption. it is huge performance improvement.
  2. Fix context cycle
Jul 25 2024, 9:47 AM
marcin updated the diff for D12672: Implement utility functions to check if we have content or notif session with device.

Add additional method to check for presence of notifications session for multiple devices with one db query

Jul 25 2024, 9:45 AM

Jul 24 2024

marcin updated the diff for D12748: Expose function to get notifs inbound keys to C++.

Address review

Jul 24 2024, 5:56 AM
marcin updated the diff for D12703: Transfer CSAT to IndexedDB from service worker and implement call to identity to query for inbound keys.

Address review

Jul 24 2024, 5:55 AM
marcin updated the diff for D12836: Patch localforage to support transactional multiple items retrieval/persistence.

Addres review

Jul 24 2024, 5:55 AM
marcin updated the diff for D12677: Implement method to query identity service from the NSE.

Address review

Jul 24 2024, 5:54 AM
marcin updated the diff for D12676: Migrate notifications crypto account to MMKV on native.

Address review

Jul 24 2024, 5:54 AM
marcin updated the diff for D12673: Utilities to idempotently create content and notif sessions.

Address review

Jul 24 2024, 5:52 AM
marcin updated the diff for D12672: Implement utility functions to check if we have content or notif session with device.

Address review

Jul 24 2024, 5:48 AM
marcin updated the diff for D12670: Implement notification encryption on native.

Address review

Jul 24 2024, 5:45 AM
marcin updated the diff for D12669: Implement peer notifications session creation as outbound on web and add notifs outbound session creator to OlmAPI.

Address review

Jul 24 2024, 5:45 AM
marcin updated the diff for D12668: Implement peer notifications session creation as outbound on native.

Address review

Jul 24 2024, 5:44 AM
marcin added a comment to D12692: Migrate notification account to IndexedDB on web.

Right now two JS threads (shared worker and service worker) can concurrently modify the same key in IndexedDB. I think to make it safe we should use transactions to make sure this is safe.

Unfortunately, looks like locaforage is not supporting this: https://github.com/localForage/localForage/issues/582 and https://github.com/localForage/localForage/issues/17.

Could you do some research about whether it's safe or suggest an alternative solution?

(this could change most of the code so not reviewing details of this diff)

Jul 24 2024, 4:49 AM
marcin added a comment to D12836: Patch localforage to support transactional multiple items retrieval/persistence.

About to create fork with PR shortly

Jul 24 2024, 4:47 AM
marcin added a comment to D12677: Implement method to query identity service from the NSE.

The HTTP request-response logic looks good; it's analogous to the existing Blob GET request logic.

Accepting but please remember to fix that semicolon. Otherwise, release builds will fail.

Jul 24 2024, 4:46 AM
marcin added inline comments to D12670: Implement notification encryption on native.
Jul 24 2024, 3:54 AM
marcin added inline comments to D12672: Implement utility functions to check if we have content or notif session with device.
Jul 24 2024, 3:43 AM
marcin added a comment to D12668: Implement peer notifications session creation as outbound on native.

I really don't like the idea (looking at this diff and the entire stack) of passing isKeyserverSession - notification crypto module should treat all devices the same regardless of whether this is a keyserver or client device, and we should only have senderID, because the current design makes it confusing. But given this is implemented and tested I believe we can proceed, you could create a follow-up task to improve it in future but for now LGTM.

Curious for @marcin's perspective on this, and how much time it might take to fix up

Jul 24 2024, 2:48 AM

Jul 23 2024

marcin updated the test plan for D12838: Implement web notifs session createion with race condition handling.
Jul 23 2024, 11:12 AM
marcin updated the diff for D12838: Implement web notifs session createion with race condition handling.

Rebase

Jul 23 2024, 11:08 AM
marcin updated the diff for D12750: Implement inbound notif session creation from the NSE with race condition handling.

Use common C++ implementation on Android. It was tested the same way as iOS using latest staging Tunnelbroker release

Jul 23 2024, 11:07 AM
marcin updated the diff for D12692: Migrate notification account to IndexedDB on web.

Rebase

Jul 23 2024, 11:05 AM
marcin updated the diff for D12673: Utilities to idempotently create content and notif sessions.

Use the API in send-utils

Jul 23 2024, 11:04 AM
marcin updated the diff for D12671: Implement notification encryption on web.

Make encryptNotification a part of olmAPI. This change is ESSENTIAL on web since it makes encryptNotification run on shared worker. This enables us to deterministically handle race conditions.

Jul 23 2024, 11:03 AM
marcin added inline comments to D12843: [SQLite] add method for message search to SQLiteQueryExecutor for both web and native.
Jul 23 2024, 7:15 AM

Jul 22 2024

marcin updated the diff for D12838: Implement web notifs session createion with race condition handling.

Improvement: use the same functions to fetch and persist olm data regardless of notification type (keyserver/peer device)

Jul 22 2024, 11:55 AM
marcin updated the diff for D12692: Migrate notification account to IndexedDB on web.

Use transactional write when creating outbound session

Jul 22 2024, 11:54 AM
marcin updated the diff for D12838: Implement web notifs session createion with race condition handling.

A couple of changes

Jul 22 2024, 7:49 AM
marcin added a comment to D12836: Patch localforage to support transactional multiple items retrieval/persistence.

If the patch file appears cumbersome to review I will create fork of localforage with PR containing those changes.

Jul 22 2024, 7:35 AM
marcin requested review of D12838: Implement web notifs session createion with race condition handling.
Jul 22 2024, 7:34 AM
marcin requested review of D12837: Bump olm version.
Jul 22 2024, 7:31 AM
marcin requested review of D12836: Patch localforage to support transactional multiple items retrieval/persistence.
Jul 22 2024, 7:28 AM

Jul 19 2024

marcin accepted D12802: [terraform] Deploy Tunnelbroker 0.11 to staging.
Jul 19 2024, 7:22 AM
marcin accepted D12772: [lib] implement sending FCM notifs using Tunnelbroker.
Jul 19 2024, 5:40 AM
marcin accepted D12770: [Tunnelbroker][lib] add FCM notif message type.
Jul 19 2024, 5:40 AM
marcin added inline comments to D12795: [native] Add message search store.
Jul 19 2024, 3:32 AM
marcin accepted D12796: [native] Add CommCoreModule code for inserting into the search table.
Jul 19 2024, 3:29 AM
marcin accepted D12794: [native] Add MessageSearchStoreOperations.
Jul 19 2024, 3:27 AM

Jul 18 2024

marcin closed D12784: Make client notif generation code operate on thick threads only.
Jul 18 2024, 1:41 AM
marcin committed rCOMMd8e292b74d30: Make client notif generation code operate on thick threads only (authored by marcin).
Make client notif generation code operate on thick threads only
Jul 18 2024, 1:41 AM
marcin updated the diff for D12784: Make client notif generation code operate on thick threads only.

Rebase before landing

Jul 18 2024, 1:39 AM

Jul 17 2024

marcin updated the diff for D12784: Make client notif generation code operate on thick threads only.

Rebase before landing

Jul 17 2024, 10:57 AM
marcin closed D12785: Add keyserverID to unencrypted notification and display to staff info about notification failure.
Jul 17 2024, 10:56 AM
marcin committed rCOMM46beed0710f4: Add keyserverID to unencrypted notification and display to staff info about… (authored by marcin).
Add keyserverID to unencrypted notification and display to staff info about…
Jul 17 2024, 10:56 AM
marcin updated the diff for D12784: Make client notif generation code operate on thick threads only.

Rebase before landing

Jul 17 2024, 10:33 AM
marcin updated the diff for D12785: Add keyserverID to unencrypted notification and display to staff info about notification failure.

Log information about notification encryption failure regardless of user staff member status.

Jul 17 2024, 10:30 AM
marcin requested review of D12784: Make client notif generation code operate on thick threads only.
Jul 17 2024, 6:21 AM

Jul 16 2024

marcin updated the diff for D12673: Utilities to idempotently create content and notif sessions.

Remove TODO

Jul 16 2024, 7:19 AM
marcin updated the diff for D12673: Utilities to idempotently create content and notif sessions.

Fix race condition by exposing olm session creation via context

Jul 16 2024, 7:10 AM
marcin closed D12774: [terraform] bump staging identity to 0.30-staging.
Jul 16 2024, 3:41 AM
marcin committed rCOMMb13871d5c6a9: [terraform] bump staging identity to 0.30-staging (authored by marcin).
[terraform] bump staging identity to 0.30-staging
Jul 16 2024, 3:41 AM
marcin published D12774: [terraform] bump staging identity to 0.30-staging for review.
Jul 16 2024, 3:32 AM

Jul 15 2024

marcin added inline comments to D12750: Implement inbound notif session creation from the NSE with race condition handling.
Jul 15 2024, 8:26 AM